1.設置環境
本次安装使用clikchouse用户来安装,安装环境为CetOS7。其余linux也可适用(略有变动)
Clickhouseの環境要件の公式Webサイトでも紹介されています。
つまり、CHはLinuxのみをサポートし、4.2SSE命令をサポートする必要があります。他の環境でCHを構築する場合は、dockerを使用するか、オンラインクラウドサービスを使用できます。
System requirements for pre-built packages: Linux, x86_64 with SSE 4.2.
システムがSSE4.2をサポートしているかどうかを確認します
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
ファイアウォールをオフにします
# 关闭防火墙
systemctl stop firewalld.service
# 禁止开机启动防火墙
systemctl disable firewalld.service
2.バージョンの選択とダウンロード
インストールパッケージをダウンロードするためのディレクトリを作成します
mkdir -p /bigdata/software/clickhouse
最新の安定バージョンを入手し、インストールパッケージをダウンロードします
export LATEST_VERSION=$(curl -s https://repo.clickhouse.tech/tgz/stable/ | \
grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -V -r | head -n 1)
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-common-static-dbg-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-server-$LATEST_VERSION.tgz
curl -O https://repo.clickhouse.tech/tgz/stable/clickhouse-client-$LATEST_VERSION.tgz
3、インストール
インストールパッケージを解凍してインストールします
tar -xzvf clickhouse-common-static-$LATEST_VERSION.tgz
sudo clickhouse-common-static-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-common-static-dbg-$LATEST_VERSION.tgz
sudo clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-server-$LATEST_VERSION.tgz
sudo clickhouse-server-$LATEST_VERSION/install/doinst.sh
tar -xzvf clickhouse-client-$LATEST_VERSION.tgz
sudo clickhouse-client-$LATEST_VERSION/install/doinst.sh
コアディレクトリ構造の概要
- / etc / clickhouse-server:サーバー構成ファイルのディレクトリ
- / etc / clickhouse-client:クライアント構成ファイルのディレクトリ
- / var / lib / clickhouse:デフォルトのデータストレージディレクトリ
- / var / log / clickhouse-server:デフォルトのログ保存場所
プロフィール紹介
- /etc/security/limits.d/clickhouse.conf:Clickhouseファイルハンドル番号の構成
- /etc/cron.d/clickhouse-server:cronタイミングタスクの構成。例外のために中断されたClickhouseサービスを復元するために使用されます。デフォルトでは10分ごとに実行され、クリックハウスサービスが実行されているかどうかを確認し、実行されていない場合は開始操作を実行します。
*/10 * * * * root (which service > /dev/null 2>&1 && (service clickhouse-server condstart ||:)) || /etc/init.d/clickhouse-server condstart > /dev/null 2>&1
- / usr / binパス内の実行可能ファイル
- clickhouse:clikchouseメインプログラムの実行可能ファイル
- clickhouse-client:クライアント接続に使用されるClickhouse実行可能ファイルへのソフト接続
- clickhouse-server:サーバーの起動に使用されるClickhouse実行可能ファイルへのソフトリンク
- clickhouse-compressor:データの圧縮と解凍に使用できる組み込みの圧縮ツール
3、サービスを開始します
1)ディスクストレージ構成
デフォルトのデータストレージパスを変更します。実際に使用するとデータ量が比較的多くなるため、このパスを大容量ディスクに切り替える必要があります。
<path>/ch/data/</path>
<tmp_path>/ch/data/tmp/</tmp_path>
<user_files_path>/ch/data/user_files/</user_files_path>
ファイルディレクトリのアクセス許可を変更する
chown -R clickhouse:clickhouse /ch/daata/
複数のディスクがある場合は、複数のディスクのパスを設定し、ファイルconfig.xmlを変更する必要があります
<storage_configuration>
...
<disks>
<sdc> <!-- disk name -->
<path>/datac/clickhouse/</path>
</sdc>
<sdd> <!-- disk name -->
<path>/datad/clickhouse/</path>
</sdd>
<sde> <!-- disk name -->
<path>/datae/clickhouse/</path>
</sde>
...
</disks>
...
</storage_configuration>
デフォルトでは、クリックハウスは設定したデフォルトのアドレスにのみデータを書き込むため、新しいストレージ戦略を設定する必要があります。config.xmlファイルを変更します。
<storage_configuration>
...
<policies>
...
<!-- 该策略为数据平均写到所有磁盘上 -->
<hdd_in_order> <!-- 策略名称 -->
<volumes>
<single>
<disk>default</disk> <!-- 磁盘名称 -->
<disk>sdc</disk> <!-- 磁盘名称 -->
...
</single>
<volumes>
</hadd_in_order>
...
</policies>
...
</storage_configuration>
この時点でクリックハウスクエリテーブルsystem.storage_policiesを再起動すると、新しく設定したストレージルールをクエリできます。
2)
zk構成およびクラスター構成クリックハウスでクラスターモードを使用するには、zookeeperを統合する必要があります。ここではzookeeperのインストールは省略されています。クリックハウスは、metrika.xmlファイルを変更して追加する必要があります。
<zookeeper-servers>
<node index="1">
<host>xxxx1</host>
<port>2181</port>
</node>
<node index="2">
<host>xxxx2</host>
<port>2181</port>
</node>
<node index="3">
<host>xxxx3</host>
<port>2181</port>
</node>
</zookeeper-servers>
クリックハウスクラスター内の各ノードは相互に交差していないため、metrika.xmlにすべてのノードのクラスター情報を追加する必要があります。
<clickhouse_remote_servers>
<report_shards_replicas>
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>host1</host>
<port>9005</port>
<user>default</user>
<password>xxxx</password>
</replica>
<!-- 若有多个分片则继续往下配replica -->
<replica>
<host>host4</host>
<port>9005</port>
<user>default</user>
<password>xxxx</password>
</replica>
</shard>
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>host2</host>
<port>9005</port>
<user>default</user>
<password>xxxx</password>
</replica>
</shard>
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>host3</host>
<port>9005</port>
<user>default</user>
<password>xxxx</password>
</replica>
</shard>
</report_shards_replicas>
</clickhouse_remote_servers>
<!-- 配置macros是为了方便后续创建分布式表的时候可以用动态参数指定表在zk上的路径 -->
<macros>
<!-- layer可不配置,若只有一套集群 -->
<layer>01</layer>
<shard>01</shard>
<replica>cluster01-01-1</replica>
</macros>
- ユーザー権限を構成する
<?xml version="1.0"?>
<yandex>
<profiles>
<!-- 读写用户配置 -->
<default>
<!-- 单查询最大内存使用 -->
<max_memory_usage>10000000000</max_memory_usage>
<!-- 是否使用未压缩格式存储缓存(一般不建议) -->
<use_uncompressed_cache>0</use_uncompressed_cache>
<!-- 分配模式下选择副本的方式 -->
<load_balancing>random</load_balancing>
</default>
<!-- 只读用户配置 -->
<readonly>
<max_memory_usage>10000000000</max_memory_usage>
<use_uncompressed_cache>0</use_uncompressed_cache>
<load_balancing>random</load_balancing>
<readonly>1</readonly>
</readonly>
</profiles>
<!-- 用户和访问权限控制 -->
<users>
<!-- default为用户么,可以自己指定 -->
<default>
<!-- 密码可以用SHA256加密 -->
<password_sha256_hex>967f3bf355dddfabfca1c9f5cab39352b2ec1cd0b05f9e1e6b8f629705fe7d6e</password_sha256_hex>
<!-- 访问权限设置。
任何地方都能读取:
<ip>::/0</ip>
只能从本地读取:
<ip>::1</ip>
<ip>127.0.0.1</ip>
可以用正则表达式去表示。
-->
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<!-- profile 指定标签 -->
<profile>default</profile>
<!-- Quota 指定标签 -->
<quota>default</quota>
</default>
<!-- 只读用户(个人创建) -->
<ck>
<password_sha256_hex>967f3bf355dddfabfca1c9f5cab39352b2ec1cd0b05f9e1e6b8f629705fe7d6e</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>readonly</profile>
<quota>default</quota>
</ck>
</users>
<!-- 资源限额 -->
<quotas>
<!-- 资源限额的名字. -->
<default>
<!-- 用于限制一定时间间隔内的资源使用量 -->
<interval>
<!-- 时间间隔 -->
<duration>3600</duration>
<!-- 下面配置为无限制 -->
<queries>0</queries>
<errors>0</errors>
<result_rows>0</result_rows>
<read_rows>0</read_rows>
<execution_time>0</execution_time>
</interval>
</default>
</quotas>
</yandex>
フォローアップでは、config.xmlとmetrika.xmlの他の構成があります。詳細については、私の別の記事を参照してください。
https://blog.csdn.net/sileiH/article/details/113404907
4)clickhouse-service
を開始して、各ノードで実行します。
sudo /etc/init.d/clickhouse-server start
CHクライアントにログインします:
ローカルでログインします。
clickhouse-client -u username --password pwd
リモートログイン:
clickhouse-client -h host --port port -u username --password pwd