Быстрый монтаж компонентов, связанных с ClickHouse, на основе ansible.
Адрес проекта:
Файл конфигурации hosts.ini используется для настройки формата файлов установки, IP-адресов и паролей хостов, а также других параметров, необходимых для установки различных компонентов на разных узлах. Пример конфигурации:
[nodes]
172.17.203.92 hostname=node1 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass='123321'
172.17.203.93 hostname=node2 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass='123321'
172.17.203.94 hostname=node3 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass='123321'
[zookeeper]
node1
node2
node3
[clickhouse]
node1
node2
node3
git clone https://github.com/tangyibo/clickhouse_installer.git
cd clickhouse_installer/
sh install.sh
cd clickhouse_installer/
sh uninstall.sh
Используйте yum для установки ansible:
# yum install -y epel-release
# yum install -y ansible
Выполните следующую команду на всех серверах кластера /etc/hosts и конфигурацию root без пароля:
# ansible-playbook -i hosts.ini prepare.yaml
Проверьте параметры конфигурации в vars/var_zookeeper.yml, особенно проверьте доступность версии и загрузите адрес, затем выполните команду оболочки для установки кластера Zookeeper:
# ansible-playbook -i hosts.ini zookeeper.yaml
Проверьте параметры конфигурации в vars/var_clickhouse.yml, особенно убедитесь, что каталог данных установлен правильно, затем выполните команду оболочки для установки кластера ClickHouse:
# ansible-playbook -i hosts.ini clickhouse.yaml
# ansible-playbook -i hosts.ini cleanup.yaml
Войдите в любой узел кластера ClickHouse и выполните следующую команду:
clickhouse-client -h 127.0.0.1
Затем выполните следующий SQL-запрос для просмотра информации о конфигурации узла кластера:
select * from system.clusters;
Моя информация следующая:
[root@node1 ~]# clickhouse-client -h 127.0.0.1
ClickHouse client version 21.1.2.15 (official build).
Connecting to 127.0.0.1:9000 as user default.
Connected to ClickHouse server version 21.1.2 revision 54443.
node1 :) select * from system.clusters;
SELECT *
FROM system.clusters
Query id: 4cdcd3d4-855b-4774-8669-e873bd33bf73
┌─cluster───────────────────────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name─┬─host_address──┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─estimated_recovery_time─┐
│ cluster_3shards_1replicas │ 1 │ 1 │ 1 │ node1 │ 172.17.203.92 │ 9000 │ 1 │ default │ │ 0 │ 0 │
│ cluster_3shards_1replicas │ 2 │ 1 │ 1 │ node2 │ 172.17.203.93 │ 9000 │ 0 │ default │ │ 0 │ 0 │
│ cluster_3shards_1replicas │ 3 │ 1 │ 1 │ node3 │ 172.17.203.94 │ 9000 │ 0 │ default │ │ 0 │ 0 │
| test_cluster_two_shards │ 1 │ 1 │ 1 | 127.0.0.1 | 127.0.0.1 | 9000 | 1 | default | | 0 | 0 |
| test_cluster_two_shards │ 2 | 1 | 1 | 127.0.0.2 | 127.0.0.2 | 9000 | 0 | default | | 0 | 0 |
| test_cluster_two_shards_localhost │ 1 | 1 | 1 | localhost | ::1 | 9000 | 1 | default | | 0 | 0 |
| test_cluster_two_shards_localhost | 2 | 1 | 1 | localhost | ::1 | 9000 | 1 | default | | 0 | 0 |
| test_shard_localhost | 1 | 1 | 1 | localhost | ::1 | 9000 | 1 | default | | 0 | 0 |
| test_shard_localhost_secure | 1 | 1 | 1 | localhost | ::1 | 9440 | 0 | default | | 0 | 0 |
| test_unavailable_shard | 1 | 1 | 1 | localhost | ::1 | 9000 | 1 | default | | 0 | 0 | ## 五、Использование учебника
### 1. Создание распределённой библиотеки
В кластере создайте библиотеку, чтобы все узлы синхронизировались:
create database test on cluster cluster_3shards_1replicas
### 2. Удаление распределённой библиотеки
drop database test on cluster cluster_3shards_1replicas
### 3. Создание распределённой таблицы
user test;
CREATE TABLE IF NOT EXISTS t_user ON CLUSTER cluster_3shards_1replicas
(
user_id
UInt16,
user_name
String,
user_code
String
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/t_user', '{replica}')
PARTITION BY user_code
ORDER BY user_id
SETTINGS index_granularity = 8192
**Примечание:**
- Параметр после ENGINE — это путь к данной таблице для ZooKeeper, который используется для различения таблиц. Для разных сегментов таблицы должны иметь разные пути, поэтому пути должны быть уникальными. Первый параметр /clickhouse/tables является обязательным префиксом, указанным в официальной документации, а второй параметр t_user — это имя вашей собственной таблицы. Перед именем таблицы можно также указать имя сегмента, так что полный путь может выглядеть как /clickhouse/tables/shard/table_name.
- Второй параметр {replica} указывает на имя копии, которое напрямую ссылается на информацию о имени копии, которую вы настроили в файле конфигурации.
### 4. Вставка данных / запрос данных / удаление данных
insert into t_user values('1','tang','X10086'); select * from t_user; alter table t_user delete where user_id = '1';
### 5. Массовая загрузка данных CSV
Сначала создайте текстовый файл в формате CSV на локальном компьютере:
cat > t_user.csv <<EOF 2,john,10010, 3,jack,10000, EOF
Затем используйте команду для загрузки:
cat ./t_user.csv | clickhouse-client -h 127.0.0.1 --query="insert into test.t_user format CSV"
### 6. Экспорт данных результатов запроса
clickhouse-client -h 127.0.0.1 -d 'test' -q 'select * from t_user format CSV' > ./new_t_user.csv
### 7. Запрос общего количества записей в таблице
select count(*) from t_user;
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )