Sign inSign up

aperture147/hadoop

By aperture147

Updated over 6 years ago

The simplest Hadoop image that you can ever imagine

Image
0

258

aperture147/hadoop repository overview

Hệ thống logging/datawarehouse House3D

I. Chạy cluster mẫu:

Bước 1: Khởi tạo HDFS:

  • Mở file docker-compose.yml, comment lại tất cả các service (mục volume giữ nguyên), trừ service name
  • Ở service name, sửa command của service đó từ hdfs namenode thành hdfs namenode -format
  • Lưu lại và thoát ra, tại directory chứa file docker-compose, chạy docker-compose up, sau một vài giây đến khi chương trình ngừng
  • Sau khi ngừng, mở file docker-compose ra và sửa command của service name lại thành hdfs namenode

Bước 2: Khởi tạo Hive:

  • Bỏ comment các service sau:
    • mysql
    • adminer (tùy chọn)
    • data
  • Chạy docker-compose up, truy cập adminer thông qua địa chỉ localhost:8080 hoặc vào trực tiếp container của mysql, tạo một database có tên metastore, đặt collation bắt đầu bằng utf8 hoặc utf8mb4 (hoặc các collation khác cũng được, nhưng utf8 phổ biến nhất)
  • Sau khi tạo xong database, vào giao diện của hadoop thông qua địa chỉ localhost:9870, vào mục Utilities > Browse the filesystem, tạo các directory sau bằng nút Create directory cạnh nút Go!:
    • /tmp
    • /user/hive/warehouse (nhập full directory, hdfs tự tạo các thư mục con)
    • /user/hdfs (nhập full directory, hdfs tự tạo các thư mục con)
    • /kylin (tạo luôn lúc này lúc sau không phải quay lại nữa)
  • Sau khi tạo xong các thư mục, ấn Ctrl + C để tắt docker-compose, comment lại hoặc xóa luôn service adminer và bỏ comment các service sau:
    • zookeeper
    • hive
  • Sửa command của service hive từ hiveserver2 thành schematool -dbType mysql -initSchema rồi bật lên bằng docker-compose up | grep hadoop_hive_
  • Chạy lệnh trên và đợi đến khi tiến trình hadoop_hive_1 dừng lại thì Ctrl + C để dừng docker-compose lại
  • Sửa command của service hive lại thành hiveserver2

Bước 3: Khởi chạy các dịch vụ còn lại:

  • Bỏ comment tất cả các dịch vụ còn lại (trừ adminer, nếu không dùng fluent thì cũng đừng bỏ comment), chạy docker-compose up để bật tất cả các service lên. Quá trình bật có thể mất từ 3 đến 5 phút.

Sử dụng:

Sử dụng file config của bạn:

Thư mục chứa chương trình trong image luôn nằm ở vị trí /app, ví dụ như các chương trình hadoop sẽ nằm ở /app/hadoop, kylin sẽ nằm ở /app/kylin, tương tự như vậy với các chương trình còn lại. Mỗi chương trình sẽ có cấp trúc thư mục lưu trữ log khác nhau. Sau đây là liệt kê các vị trí lưu log của các image (bạn có thể đoán được vị trí của nó):

  • Hadoop: /app/hadoop/etc
  • Hive: /app/hive/conf
  • HBase: /app/hbase/conf
  • Kylin: /app/kylin/conf

Logging:

Tất cả các chương trình ở trên đều có log, trong ví dụ trong file docker-compose.yml không mount thư mục log của chúng ra, và sẽ tự biến mất nếu container bị tắt. Nếu cần lưu log của chương trình để tiện cho việc debug, mount thư mục của bạn vào với thư mục /app/{tên-image}/logs. Ví dụ, bạn cần mount log của namenode của hadoop ra thư mục /var/log/hadoop, khi chạy trong docker-compose, bạn thêm dòng này vào mục volumes:

- /var/log/hadoop:/app/hadoop/logs

Nhớ rằng bạn cần phải đổi permission của thư mục đó thành 777 do vấn đề user trong docker, nếu không container sẽ chết do không có quyền ghi log. Nếu bạn không thích việc đổi permission của thư mục, bạn nên dùng docker volume, cách này cũng được khuyến khích hơn.

Các vấn đề hay gặp phải:

Về HBase

  1. HBase master server trả về log hbase:meta,,1.1588230740 is NOT online; state={1588230740 state=OPEN, ts=1583393934248, server=hadoop_hbase-regionserver_1.hadoop_default,16020,1583338318774}; ServerCrashProcedures=true. Master startup cannot progress, in holding-pattern until region onlined., kylin cũng không chạy do không kết nối được tới HBase: Đây là lỗi nằm ở hbase và zookeeper. Hbase không tìm thấy regionserver thông qua zookeeper nên chết. Đây là các bước phục hồi:
  • Chạy docker exec -it <tên container zookeeper> zkCli.sh
  • Chạy lệnh sau để xóa danh sách meta-region-server: rmr /hbase/meta-region-server
  • Thoát bằng tổ hợp phím Ctrl + C
  • Restart master server và region server của hbase bằng lệnh: docker-compose restart hbase-master hbase-regionserver

Lúc này HBase sẽ chạy bình thường trở lại.

Tag summary

Content type

Image

Digest

Size

562.2 MB

Last updated

over 6 years ago

docker pull aperture147/hadoop