前面我们在初识篇里讲了介绍了clickhouse ,以及clickhouse的特性,这一节我们部署一下clickhouse,部署完成之后我们再来体验一下clickhouse。SEO靠我
我们不需要在服务器端部署clickhouse-client,所以我们在客户端机器上执行docker pull yandex/clickhouse-client
如果拉取镜像太慢,SEO靠我则设置一下国内的镜像源
{ "debug": true, "experimental": true, "registry-mirrors": [ SEO靠我 "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://reSEO靠我gistry.docker-cn.com" ] } https://registry.docker-cn.com 官方的http://hub-mirrSEO靠我or.c.163.com 网易的 启动server端直接启动
docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse yandSEO靠我ex/clickhouse-server我们可以看到我们的容器已经在运行中了
需要注意的是,如果直接启动,这样的话我们的数据文件当容器销毁的时候就没有了所以我们可以在本地创建一个数据文件目录,然后挂在上SEO靠我去
## 创建数据文件目录 mkdir /Users/liuwenqiang/workspace/tmp/clickhouse/db ## 启动,需要注意的是我们需要停止SEO靠我并且删除前面的容器 docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse --volume=/Users/liuwenqiSEO靠我ang/workspace/tmp/clickhouse/db:/var/lib/clickhouse yandex/clickhouse-server 启动clickhouse-cSEO靠我lient这里我们在另外一台机器上部署clickhouse-client, 因为我们的clickhouse-server一般是部署在服务器端的,我们的clickhouse-client 是部署在客户端SEO靠我的,所以我们先拉去镜像docker pull yandex/clickhouse-client
docker run --name ck-client -it --rm --link clickhousSEO靠我e yandex/clickhouse-client --host 192.168.1.103 --port 9000 --user root --password www1234因为客户端每次使用完SEO靠我不用一直常驻所以这里使用–rm 参数 在使用exit 命令退出 ck-client容器后就会直接删除这个容器,下次启动重新创建就可以了
docker --link 主要解决了以下两个问题
link可以通过SEO靠我容器名互相通信,容器间共享环境变量。link主要用来解决两个容器通过ip地址连接时容器ip地址会变的问题这里我们主要就是要通信,因为我们要使用客户端去服务器端查数据,--link 后面就是我们要连接的SEO靠我容器的名称
这里有点麻烦的是要做docker 跨主机通信,如果你觉得麻烦的话或者单纯学习clickhouse的话,就在同一台机器上部署也可以
连接进去后我们创建了一个数据库bzhan
使用dbeaver连接SEO靠我下面我们使用dbeaver进行连接,如下所示步骤
需要注意的是如果你是第一次连接clickhouse,需要下载一些驱动文件,这里都是自动下载的你直接点击确定就行,然后我们输入相关信即可
需要注意的是由于我SEO靠我们的clickhouse目前并没有设置用户名密码,所以这里我们不需要填写,然后点击测试连接,测试通过则点击完成即可
到这一步我们的数据库已经连上了
设置用户名和密码—登陆设置这里我们是连接到我们的容器上进SEO靠我行用户名密码的设置,
docker exec -it 02e52e00502b /bin/bash然后进入到 clickhouse-server 目录 cd /etc/clickhouse-serverSEO靠我
由于我们的容器上还没有编辑器,我们这里先安装一下vim
apt-get update apt-get install vim -y修改 clickhouse 的用户密码需要在 usersSEO靠我.xml 中配置<users> </users> 标签下面就是所以的用户的配置,默认有一个default 用户
<!-- Users and ACL. --> <users> SEO靠我 <!-- If user name was not specified, default user is used. --> <default> <passworSEO靠我d></password> <networks> <ip>::/0</ip> </networks> <profile>default<SEO靠我/profile> <!-- Quota for user. --> <quota>default</quota> </default> SEO靠我 </users>我们找到<password></password>标签,这里有加密和明文两种形式,加密可以把<password> 换成<password_sha256_hex>,标签内容就是加密后的SEO靠我密码
<password_sha256_hex>941785b4c29a2cb9bb6bb190c12edef9c8182041b382fe371dbe50e06ff8f6ad</password_shSEO靠我a256_hex>这里我们就用明文吧
<password>www1234</password>保存退出, 接下来重启容器,docker restart 02e52e00502b
我们就发现我们的dbeavSEO靠我er连接不上了,这里我们编辑链接输入帐密就可以了
设置用户名和密码—挂载设置其实设置密码的方法还是有点问题就是我们的容器如果没了我们的账户信息也没了,不方便运维,所以我们可以把帐密信息也存储的本地机器上SEO靠我,然后像挂载数据目录一样挂在上去。
我们可以先把容器里的信息拷贝一份到本地,然后修改,先创建一个存放配置文件的目录mkdir -p /Users/liuwenqiang/workspace/tmp/clSEO靠我ickhouse/config
## 切换目录 cd /Users/liuwenqiang/workspace/tmp/clickhouse/config ## 将容器内SEO靠我config.xml拷贝至主机config目录 docker cp clickhouse:/etc/clickhouse-server/config.xml ./config.xml SEO靠我 ## 将容器内users.xml拷贝至主机config目录 docker cp clickhouse-:/etc/clickhouse-server/users.xmlSEO靠我 ./users.xml这里我们创建一个新的用户root ,所以我们需要创建一个<root> 标签,添加到<users> 下,和 <default> 同级
<root> <passworSEO靠我d>www1234</password> <networks><ip>::/0</ip></networks> <profile>default</profile> SEO靠我 <quota>default</quota> </root>停止掉并删除前面的容器,然后重新运行下面的命令
docker run -d \ --name cSEO靠我lickhouse \ -p 8123:8123 \ -p 9000:9000 \ -v /Users/liuwenqiang/workspace/tmSEO靠我p/clickhouse/db:/var/lib/clickhouse:rw \ -v /Users/liuwenqiang/workspace/tmp/clickhouse/confSEO靠我ig/config.xml:/etc/clickhouse-server/config.xml \ -v /Users/liuwenqiang/workspace/tmp/clickhSEO靠我ouse/config/users.xml:/etc/clickhouse-server/users.xml \ yandex/clickhouse-server启动之后我们就可以使用SEO靠我root 用户来连接了
今天主要介绍了一下clickhouse 的docker 部署,不过建议真实环境下还是不要用docker 部署
网站备案号:浙ICP备17034767号-2