クリックハウスが頻繁にリリースされるため、現在のバージョンは20.7であり、mysqlとの同期をサポートしていないため、gitの最新バージョン20200909がコンパイルされます(バージョン番号は20.9)。
環境情報
系统版本:Red Hat Enterprise Linux Server release 7.7 (Maipo)
uname -a:3.10.0-1062.el7.x86_64服务器配置:32c 250g 1T(使用8c16g虚拟机编译失败,原因为内存不足导致编译进程OOM)
mysql版本:8.0.19
gcc版本:9.3.0
cmake版本:3.14.5
ninja版本:1.9.0
1.インストール前に確認してください
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
2.依存パッケージをインストールします
yum install git cmake ninja-build libicu-devel clang libicu-devel readline-devel mysql-devel openssl-devel unixODBC_devel bzip2 -y
3.ソースコードの取得
git clone --recursive https://github.com/ClickHouse/ClickHouse
4.高バージョンのgccをインストールします
インストールパッケージをダウンロードする
ftp://gnu.mirror.iweb.com/gcc/gcc-9.3.0/gcc-9.3.0.tar.xz
解凍する
tar xvf gcc-9.3.0.tar.xz
インストール
cd gcc-9.3.0
./contrib/download_prerequisites
この手順では、依存関係パッケージをダウンロードします。外部ネットワークに接続できない場合は、リンクからダウンロードできます。
链接:https://pan.baidu.com/s/1JHv1WAS43S89LXA6PkevTg 提取码:nb35
パッケージ名は以下の通りです
gmp-6.1.0.tar.bz2mpfr-3.1.4.tar.bz2
mpc-1.0.3.tar.gzisl-0.18.tar.bz2
使用法:パッケージcpをgcc-9.3.0ディレクトリに配置するだけです
次に実行します
./contrib/download_prerequisites ---与上一步相同无需重复执行
mkdir build
cd build../configure --prefix=/opt/gcc9 --enable-languages=c,c++ --disable-multilib
export THREADS=$(grep -c ^processor /proc/cpuinfo)
make -j $THREADS
make install
compile =に時間がかかります。=
その後の操作では、gccのアップグレード後に次のようなエラーが発生します
ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ninja)
解決策は次のとおりです
find / -name "libstdc++.so.6*"
以前のインストールディレクトリなど、システム内で最も高いバージョンのgccディレクトリを見つけます
/opt/gcc9/lib64/libstdc++.so.6.0.28
/opt/gcc9/lib64/libstdc++.so.6
/opt/gcc9/lib64/libstdc++.so.6.0.28-gdb.py
エラーを報告したlibstdc ++。soをバックアップします
mv /lib64/libstdc++.so.6 /lib64/libstdc++.so.6_bak
libstdc ++の上位バージョンを/ lib64ディレクトリにコピーします
cp /opt/gcc9/lib64/libstdc++.so.6 /lib64/libstdc++.so.6
ln -s /opt/gcc9/lib64/libstdc++.so.6.0.28 /lib64/libstdc++.so.6 ----(一般执行上一步就可以了)
検証
[root@mini test]# ./ninja --version
1.9.0
5. cmake3バージョンをインストールします
cmake 3をインストールし、交換システムのデフォルトの準備ソフトウェアを保持します
wget https://cmake.org/files/v3.14/cmake-3.14.5-Linux-x86_64.tar.gz
tar zxvf cmake-3.14.5-Linux-x86_64.tar.gz -C /opt
ln -s cmake-3.14.5-Linux-x86_64 cmake
環境変数を追加する
vim /etc/profile
export CMAKE_HOME=/opt/cmake
export PATH=$CMAKE_HOME/bin:$PATH
source /etc/profile
検証
[root@mini test]# cmake --version
cmake version 3.14.5
CMake suite maintained and supported by Kitware (kitware.com/cmake).
6.ninja-1.9.0をインストールします
ダウンロード
wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip
unzip ninja-linux.zip -d /usr/local/bin/
環境変数を追加する
テストバージョン:
# ninja --version
1.9.0
エラー処理:
[root@mini test]# ./ninja
./ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./ninja)
./ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./ninja)
処理方法を参照してください:gcc9.3.0コンパイルしてインストール
セブン。ソースインストールクリックハウス
cd ClickHouse
mkdir build
cd build
export CC=gcc-9
export CXX=g++-9
cmake ..ninja
このプロセスには約3時間かかります
インストールが成功したら、clickhouseコマンドとパラメータファイルを指定されたディレクトリにコピーします
mkdir -p /usr/local/clickhouse/etccd /tools/ClickHouse/programs/server ---其中/tools/ClickHouse 为clickhouse git文件根目录
cp config.xml /usr/local/clickhouse/etc
cp users.xml /usr/local/clickhouse/etc
クリックハウス実行ファイルを/ usr / local / clickhouse / binにコピーします
mkdir -p /usr/local/clickhouse/bin
cp /tools/ClickHouse/build/programs/clickhouse /usr/local/clickhouse/bin
環境変数を構成する
vim /etc/profile添加:/usr/local/clickhouse/bin
source /etc/profiel
clickhouse-serverを起動し、起動する前に構成ファイルにPATHディレクトリを設定するように注意してください(クリックハウスデータディレクトリと対応するディレクトリへの権限の割り当て)
nohup clickhouse server --config-file=/usr/local/clickhouse/etc/config.xml > /tmp/clickhouse.log 2>&1 &
クライアントを起動します
clickhouse client
出力:
ClickHouse client version 20.9.1.1.
Connecting to localhost:9000 as user default.
to ClickHouse server version 20.9.1 revision 54439.
XXXXXXXX :)
この時点で、クリックハウスのコンパイルとインストールが完了しました。以下は、mysqlレプリケーションを構築するプロセスです。
クリックハウスサーバーとのスムーズなネットワークを持つmysqlのセットを準備します。この記事で使用されているMySQLバージョンは8.0.19です。
1.コピーユーザーを作成します(必要な最小限の権限はテストされていません)
mysql> create user clickhouse@'%' identified WITH mysql_native_password by 'rpl_user';
mysql> grant ALL PRIVILEGES on *.* to clickhouse@'%';
2.クリックハウスパラメータを調整します
clickhouse :) SET allow_experimental_database_materialize_mysql=1;
Clickhouseはレプリケーションを作成します(現在、データベース内で1つの単位としてレプリケートされ、異なるデータベースは異なるMySQLマスターから取得できるため、複数のMySQLソースデータを1つのClickHouseに同期してOLAP分析を行うことができます)。
CREATE DATABASE sbtest ENGINE = MaterializeMySQL(
'MYSQL_IP:MYSQL_PORT', 'DATABASE_NAME', 'USER_NAME', 'PASSWORD');
CREATE DATABASE sbtest ENGINE = MaterializeMySQL(
'XXXXXXXX:3306', 'clickhouse', 'clickhous', 'rpl_user');
エラーが報告された場合
Received exception from server (version 20.9.1):Code: 537. DB::Exception: Received from localhost:9000. DB::Exception: Illegal MySQL variables, the MaterializeMySQL engine requires default_authentication_plugin='mysql_native_password'.
MYSQL側のパラメーターを調整し、再起動します(読み取り専用パラメーター)default_authentication_plugin = 'mysql_native_password'
3.データベースとテーブルを作成し、データを書き込みます
mysql> create database clickhouse;
mysql> use clickhouse;mysql> CREATE TABLE `sbtest1` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`k` int(10) unsigned NOT NULL DEFAULT '0',
`c` char(120) NOT NULL DEFAULT '',
`pad` char(60) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `k_1` (`k`))
ENGINE = InnoDB AUTO_INCREMENT = 5000001 DEFAULT CHARSET = utf8mb4 MAX_ROWS = 1000000;
mysql> INSERT INTO `sbtest1` VALUES (1,49929,...; ---sysbench数据
clickhouse> use sbtest;
clickhouse> show tables;SHOW TABLES
┌─name────┐
│ sbtest1 │
└─────────┘
1 rows in set. Elapsed: 0.002 sec.
clickhouse>select * from sbtest1;
SELECT *
FROM sbtest1
┌─id─┬─────k─┬─c───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─pad─────────────────────────────────────────────────────────┐
│ 12 │ 48776 │ 06636928111-91412549319-87017689961-79500497523-29051692073-64380774874-78643769852-73373361096-34215043106-34370178281 │ 89292458800-98111883088-45119613990-18776802947-72334127545 │
.......略
20 rows in set. Elapsed: 0.004 sec.
同期サイトを表示する
ClickHouseの同期サイトを見てください
cat /var/lib/clickhouse/metadata/clickhouse/.metadata
Version: 2
Binlog File: bin.000004
Executed GTID: 45b22def-f329-11ea-acf1-3497f600d5bb:1-69:1000068
Binlog Position: 10006
これまでのところ、スレーブは正常に構築されています。
|作者について
Zhao Zizhou |現在、データベースエンジニアのSweet Orange Finance(China Telecom Yipay)で働いています。
主に、MySQL、Redis、MongoDB、TIDB、およびその他の関連するオープンソースデータベースの運用と保守を担当します。
テクノロジーを学び、共有し、みんなと一緒に向上するのが好きです!
全文は終わりました。
ClickHouseをお楽しみください:)
Zhishutangブティックコース、MySQL、SQL最適化、Python、Elasticなど。
MySQLコースは完全にMySQL8.0にアップグレードされたので、電車に乗るのにちょうどいいです。MySQL8.0の旅を始めましょう。
Zhishutangに参加する
500,000 +年俸に挑戦!
Zhishutangの「MySQLPracticalOptimization Class」は、Tencent Classroomを正式に立ち上げ、コードをスキャンしてグループに参加し、コースの詳細を確認します。また、アシスタントの指導には割引があります。