The simplest Hadoop image that you can ever imagine
258
namename, sửa command của service đó từ hdfs namenode thành hdfs namenode -formatdocker-compose up, sau một vài giây đến khi chương trình ngừngname lại thành hdfs namenodedocker-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)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)Ctrl + C để tắt docker-compose, comment lại hoặc xóa luôn service adminer và bỏ comment các service sau:
zookeeperhivehive từ hiveserver2 thành schematool -dbType mysql -initSchema rồi bật lên bằng docker-compose up | grep hadoop_hive_hadoop_hive_1 dừng lại thì Ctrl + C để dừng docker-compose lạihive lại thành hiveserver2docker-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.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ó):
/app/hadoop/etc/app/hive/conf/app/hbase/conf/app/kylin/confTấ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.
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:docker exec -it <tên container zookeeper> zkCli.shmeta-region-server: rmr /hbase/meta-region-serverCtrl + Cdocker-compose restart hbase-master hbase-regionserverLúc này HBase sẽ chạy bình thường trở lại.
Content type
Image
Digest
Size
562.2 MB
Last updated
over 6 years ago
docker pull aperture147/hadoop