Apache Kudu và Impala hỗ trợ tích hợp liền mạch để thực hiện các thao tác đọc/ghi dữ liệu bằng cú pháp SQL trên bảng Kudu thông qua công cụ truy vấn phân tán của Impala;
Cài đặt Impala
Lập kế hoạch triển khai
1: Dịch vụ catalog của Impala sẽ đồng bộ hóa thay đổi metadata sang các node trong cụm
2: Statestore của Impala giám sát trạng thái hoạt động của các daemon Impala
Thực thi lệnh cài đặt trên node chính hadoop01
yum install impala -y
yum install impala-server -y
yum install impala-state-store -y
yum install impala-catalog -y
yum install impala-shell -y
Cài đặt dịch vụ server trên các node phụ hadoop02 và hadoop03
yum install impala-server -y
yum install impala -y
Cấu hình toàn bộ node
Cập nhật hive-site.xml
Vì Impala phụ thuộc vào Hive nên cần điều chỉnh cấu hình tương ứng;
Thực hiện sửa đổi file hive-site.xml trên hadoop01
Cấu hình hive-site.xml
vim /opt/cdh/hive-1.1.0-cdh5.14.0/conf/hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop01</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://hadoop01:9083</value>
</property>
<property>
<name>hive.metastore.client.socket.timeout</name>
<value>3600</value>
</property>
</configuration>
View Code### Thêm thư viện JDBC MySQL vào thư mục lib của Hive
(Sao chép tệp kết nối MySQL vào thư mục lib của Hive)
Truyền bản cài đặt Hive sang hadoop02 và hadoop03
Thực hiện lệnh sau trên hadoop01
cd /opt/cdh/
scp -r hive-1.1.0-cdh5.14.0/ hadoop02:$PWD
scp -r hive-1.1.0-cdh5.14.0/ hadoop03:$PWD
Khởi động dịch vụ metastore của Hive
Khởi chạy dịch vụ metastore của Hive (Nếu Impala báo lỗi thì khởi động toàn bộ dịch vụ Hive)
Khởi động dịch vụ metastore trên hadoop01
cd /opt/cdh/hive-1.1.0-cdh5.14.0
nohup bin/hive --service metastore &
Lưu ý: Đảm bảo MySQL đang chạy trước khi khởi động dịch vụ metastore
Tạo thư mục và cập nhật hdfs-site.xml trên toàn bộ node
Tạo thư mục trên tất cả node
mkdir -p /var/run/hdfs-sockets
Sửa đổi hdfs-site.xml và thêm cấu hình sau, sau đó restart HDFS để áp dụng
vim /opt/cdh/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hdfs-site.xml
<configuration>
<!-- Thiết lập số bản sao HDFS -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop01:50090</value>
</property>
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
<property>
<name>dfs.domain.socket.path</name>
<value>/var/run/hdfs-sockets/dn</value>
</property>
<property>
<name>dfs.client.file-block-storage-locations.timeout.millis</name>
<value>10000</value>
</property>
<property>
<name>dfs.datanode.hdfs-blocks-metadata.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
View CodeLưu ý: Người dùng root không cần bước này. Trong môi trường sản xuất, người dùng thường phải thực hiện thiết lập quyền
Tạo thư mục /var/run/hadoop-sockets/
Gán quyền cho thư mục (ví dụ: nếu dùng tài khoản angel)
chown -R angel:angel /var/run/hadoop-sockets/
Trong trường hợp dùng root thì không cần gán quyền
Khởi động lại hệ thống HDFS
Thực hiện restart HDFS từ hadoop01
cd /opt/cdh/hadoop-2.6.0-cdh5.14.0/
sbin/stop-dfs.sh
sbin/start-dfs.sh
Liên kết các tệp cấu hình cần thiết
Thư mục cấu hình Impala là /etc/impala/conf
Sử dụng liên kết mềm để ánh xạ các tệp cấu hình sau:
Thực hiện lệnh sau trên tất cả node
ln -s /opt/cdh/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml /etc/impala/conf/core-site.xml
ln -s /opt/cdh/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hdfs-site.xml /etc/impala/conf/hdfs-site.xml
ln -s /opt/cdh/hive-1.1.0-cdh5.14.0/conf/hive-site.xml /etc/impala/conf/hive-site.xml
Cấu hình mặc định cho Impala
Sửa đổi tệp cấu hình /etc/default/impala trên toàn bộ node
vim /etc/default/impala
IMPALA_CATALOG_SERVICE_HOST=hadoop01
IMPALA_STATE_STORE_HOST=hadoop01
Tạo liên kết JDBC MySQL
Thực hiện lệnh sau trên tất cả node
ln -s /opt/cdh/hive-1.1.0-cdh5.14.0/lib/mysql-connector-java-5.1.25.jar /usr/share/java/mysql-connector-java.jar
Cập nhật đường dẫn Java
Chỉnh sửa JAVA_HOME trong tệp bigtop-utils
vim /etc/default/bigtop-utils
export JAVA_HOME=/opt/cdh/jdk1.8.0_181
Khởi động dịch vụ Impala
Khởi động 3 tiến trình chính trên hadoop01
service impala-state-store start
service impala-catalog start
service impala-server start
service impala-state-store stop
service impala-catalog stop
service impala-server stop
Khởi động impala-server trên các node phụ
service impala-server start|stop
Kiểm tra tiến trình Impala
ps -ef | grep impala
Lưu ý: Tất cả log của Impala được lưu tại /var/log/impala. Node hadoop01 có 3 tiến trình, các node khác có 1 tiến trình. Nếu số lượng tiến trình không khớp, kiểm tra log trong thư mục tương ứng
Truy cập giao diện quản lý
Giao diện impalad: http://hadoop01:25000/
Giao diện statestored: http://hadoop01:25010/
Tích hợp với Kudu
Thêm cấu hình sau vào tệp /etc/default/impala trên tất cả node
vim /etc/default/impala
Thêm tham số dưới đây vào IMPALA_SERVER_ARGS: -kudu_master_hosts=hadoop01:7051,hadoop02:7051,hadoop03:7051