En raison de la publication fréquente de clickhouse, la version actuelle est 20.7 et ne prend pas en charge la synchronisation avec mysql, donc la dernière version 20200909 sur git est compilée - le numéro de version est 20.9.
Informations environnementales
系统版本: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. Vérifiez avant l'installation
grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
2. Installez les packages dépendants
yum install git cmake ninja-build libicu-devel clang libicu-devel readline-devel mysql-devel openssl-devel unixODBC_devel bzip2 -y
3. Acquisition du code source
git clone --recursive https://github.com/ClickHouse/ClickHouse
4. Installez la version haute de gcc
Téléchargez le package d'installation
ftp://gnu.mirror.iweb.com/gcc/gcc-9.3.0/gcc-9.3.0.tar.xz
Décompressez
tar xvf gcc-9.3.0.tar.xz
installation
cd gcc-9.3.0
./contrib/download_prerequisites
Cette étape téléchargera le package dépendant, si vous ne pouvez pas vous connecter au réseau externe, vous pouvez le télécharger via le lien
链接:https://pan.baidu.com/s/1JHv1WAS43S89LXA6PkevTg 提取码:nb35
Le nom du package est le suivant
gmp-6.1.0.tar.bz2mpfr-3.1.4.tar.bz2
mpc-1.0.3.tar.gzisl-0.18.tar.bz2
Utilisation: il suffit de mettre le paquet cp dans le répertoire gcc-9.3.0
Puis exécutez
./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
La compilation de =. =
Les opérations suivantes provoqueront une erreur similaire à la suivante après la mise à niveau de gcc
ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ninja)
La solution est la suivante
find / -name "libstdc++.so.6*"
Recherchez le répertoire gcc avec la version la plus élevée du système, comme le répertoire d'installation précédent
/opt/gcc9/lib64/libstdc++.so.6.0.28
/opt/gcc9/lib64/libstdc++.so.6
/opt/gcc9/lib64/libstdc++.so.6.0.28-gdb.py
Sauvegardez libstdc ++ afin que les erreurs signalées
mv /lib64/libstdc++.so.6 /lib64/libstdc++.so.6_bak
Copiez la version supérieure de libstdc ++ dans le répertoire / 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 ----(一般执行上一步就可以了)
vérification
[root@mini test]# ./ninja --version
1.9.0
5. Installez la version cmake 3
Installez cmake 3, conservez le logiciel de préparation par défaut du système de remplacement
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
Ajouter des variables d'environnement
vim /etc/profile
export CMAKE_HOME=/opt/cmake
export PATH=$CMAKE_HOME/bin:$PATH
source /etc/profile
vérification
[root@mini test]# cmake --version
cmake version 3.14.5
CMake suite maintained and supported by Kitware (kitware.com/cmake).
6. Installez ninja-1.9.0
Télécharger
wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip
unzip ninja-linux.zip -d /usr/local/bin/
Ajouter des variables d'environnement
version de test:
# ninja --version
1.9.0
La gestion des erreurs:
[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)
Voir la méthode de traitement: gcc 9.3.0 compiler et installer
7. Installation de la source Clickhouse
cd ClickHouse
mkdir build
cd build
export CC=gcc-9
export CXX=g++-9
cmake ..ninja
Le processus prend environ 3 heures
Une fois l'installation réussie, copiez la commande clickhouse et le fichier de paramètres dans le répertoire spécifié
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
Copiez le fichier d'exécution clickhouse dans / usr / local / clickhouse / bin
mkdir -p /usr/local/clickhouse/bin
cp /tools/ClickHouse/build/programs/clickhouse /usr/local/clickhouse/bin
Configurer les variables d'environnement
vim /etc/profile添加:/usr/local/clickhouse/bin
source /etc/profiel
Démarrez clickhouse-server, faites attention à définir le répertoire PATH dans le fichier de configuration avant de démarrer (répertoire de données clickhouse et attribuez les droits au répertoire correspondant)
nohup clickhouse server --config-file=/usr/local/clickhouse/etc/config.xml > /tmp/clickhouse.log 2>&1 &
Démarrez le client
clickhouse client
Production:
ClickHouse client version 20.9.1.1.
Connecting to localhost:9000 as user default.
to ClickHouse server version 20.9.1 revision 54439.
XXXXXXXX :)
À ce stade, la compilation et l'installation de clickhouse sont terminées, voici le processus de création de la réplication mysql
Préparez un ensemble de mysql disposant d'un réseau fluide avec le serveur Clickhouse. La version MySQL utilisée dans cet article est la 8.0.19
1. Créez un utilisateur de copie (les autorisations minimales requises ne sont pas testées)
mysql> create user clickhouse@'%' identified WITH mysql_native_password by 'rpl_user';
mysql> grant ALL PRIVILEGES on *.* to clickhouse@'%';
2. Ajustez les paramètres de Clickhouse
clickhouse :) SET allow_experimental_database_materialize_mysql=1;
Clickhouse crée une réplication (actuellement réplique dans la base de données en tant qu'unité, différentes bases de données peuvent provenir de différents maîtres MySQL, de sorte que plusieurs données sources MySQL peuvent être synchronisées avec un ClickHouse pour l'analyse 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');
Si une erreur est signalée
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'.
Ajustez les paramètres côté MYSQL et redémarrez (paramètre read_only) default_authentication_plugin = 'mysql_native_password'
3. Créer une base de données et une table, et écrire des données
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.
Afficher les sites de synchronisation
Regardez le site de synchronisation de 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
Jusqu'à présent, l'esclave est construit avec succès.
| À propos de l'auteur
Zhao Zizhou | Travaille actuellement chez Sweet Orange Finance (China Telecom Yipay), ingénieur en bases de données.
Principalement responsable de l'exploitation et de la maintenance de MySQL, Redis, MongoDB, TIDB et d'autres bases de données open source connexes.
Aime apprendre et partager la technologie, et s'améliorer avec tout le monde!
Le texte intégral est terminé.
Profitez de ClickHouse :)
Cours boutique Zhishutang, MySQL, optimisation SQL, Python, Elastic, etc.
Le cours MySQL a été entièrement mis à jour vers MySQL 8.0, et maintenant il est juste de prendre le train. Commençons par MySQL 8.0.
Rejoignez Zhishutang
Challenge 500000 + salaire annuel!
Zhishutang "MySQL Practical Optimization Class" a officiellement lancé Tencent Classroom, scanne le code pour rejoindre le groupe pour en savoir plus sur les détails du cours, et il existe des réductions pour les assistants d'enseignement.