从零开始实施推荐系统的落地部署——24.推荐系统案例(十四)ClickHouse的概述和搭建
之前在大数据群里有人讨论过关于Click House,没怎么关注。前天看到华为云MRS2.0升级到MRS3.0,增加了ClickHouse。突然我就对ClickHouse感兴趣,它是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。采用Local attached storage作为存储,这样整个IO可能就没有Hadoop那一套的局限。它的系统在生产环境中可以应用到比较大的规模,因为它的线性扩展能力和可靠性保障能够原生支持shard+replication这种解决方案。它还提供了一些SQL直接接口,有比较丰富的原生client。
当我看到click house的特点实时性强,支持kafka导入,就对框架部署都是经过kafka后,再通过sparkstreaming或flink接入到clickhouse,而不是通过kafka直接导入到clickhouse产生疑惑。经大数据群的西窗挂浪解惑,加了sparkstreaming或flink是做ETL。而我考虑的是clickhouse查询速度快,做数据挖掘直接从clickhouse调用即可。犯了忘记导入前要做数据处理的低级错误。
开始部署clickhouse:
1. mas2:编辑etc/security/limits.conf 和 /etc/security/limits.d/20-nproc.conf文件的末尾加入以下内容:
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
修改完成后,把配置文档同步到mas3,mas4,mas5。
2. 给mas2到mas5主机安装依赖包。
sudo yum install -y libtool
sudo yum install -y *unixODBC*
3. 安装clickhouse
下载网址:https://packagecloud.io/Altinity/clickhouse/ 在这个网址下载的RPM有点问题,下载下来的RPM安装clickhouse出现rpm -ivh clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm错误:clickhouse-server-common-20.8.3.18-1.el7.x86_64.rpm: 不是 rpm 软件包 (或者没有manifest):
有大数据群里有朋友共享clickhouse的RPM,下载下来安装即可。
4. 编辑 sudo vi /etc/clickhouse-server/config.xml
<!-- Listen specified host. use :: (wildcard IPv6 address), if you want to accept connections both with IPv4 and IPv6 from everywhere. -->
<listen_host>::</listen_host>
<!-- Same for hosts with disabled ipv6: -->
5. 集群配置(使用mas3,mas4,mas5搭建集群,但是因为笔记本的硬件配置有限,简单搭建测试步骤),在mas3上编辑/etc/clickhouse-server/config.d目录下创建一个名为xml的配置文件,内容如下:
编辑/etc/clickhouse-server/config.d/metrika.xml
<?xml version="1.0"?>
<yandex>
<zookeeper-servers>
<node index="1">
<host>mas3.wuyi.com</host>
<port>2181</port>
</node>
<node index="2">
<host>mas4.wuyi.com</host>
<port>2181</port>
</node>
<node index="3">
<host>mas5.wuyi.com</host>
<port>2181</port>
</node>
</zookeeper-servers>
</yandex>
把配置好的metrika.xml同步到mas4,mas5里。
6. 编辑 sudo vi /etc/clickhouse-server/config.xml
<zookeeper incl="zookeeper-servers" optional="true" />
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
把配置好的config.xml同步到mas4,mas5里。
7. 启动 zookeeper 集群
cd /opt/modules/zookeeper/
bin/zkServer.sh start
启动clickhouse(mas3,mas4,mas5)
sudo systemctl start clickhouse-server
可以进入zookeeper里查看:
看到clickhouse说明成功。
8. 搭建完成后,可以设置副本做clickhouse的高可用,也可以做分片集群提高clickhouse的性能。不使用集群,是怕hadoop的使用资源跟clickhouse有冲突,导致各种问题的出现。在mas2启动clickhouse的单机版本时。要注意关闭canal,Elasticsearch和kibana。防止双方抢占资源,所以只能二选一,要么选择canal,Elasticsearch和kibana,要么选择kafka,sparkstreaming和clickhouse和echarts。我选择第二种,虽然难度比第一种难,涉及的知识方面要广,但是我还是选择第二种,因为完成后展示的可视化效果会比kibana的效果好。
- 点赞
- 收藏
- 关注作者
评论(0)