Cài đặt và triển khai Hadoop Single Node | Share
Mỗi ngành công nghiệp lớn đang triển khai Apache Hadoop là khung tiêu chuẩn để xử lý và lưu trữ dữ liệu lớn. Hadoop được thiết kế để được triển khai trên một mạng lưới hàng trăm hoặc thậm chí hàng ngàn máy chủ chuyên dụng. Tất cả các máy này làm việc cùng nhau để đối phó với khối lượng lớn và nhiều bộ dữ liệu khổng lồ.
Xem thêm : Cài đặt và triển khai Spark standalone
Hadoop mạnh mẽ và hữu dụng chỉ khi được cài đặt và khai thác nó trên nhiều node, tuy nhiên với người bắt đầu thì Hadoop Single node là sự khởi đầu tuyệt vời để làm quen với hadoop. Bài viết này mình sẽ hướng dẫn các bạn triển khai Hadoop trên 1 node ( Hadoop Single node).
Điều kiện trước khi cài :
- Máy bạn phải có Openjdk ( bản 8, 11 hay 15 đều được), nếu chưa có thì bạn có thể cài theo câu lệnh sau :
sudo apt-get install openjdk-11-jdk -y
- Máy có SSH client và SSH server, nếu chưa có thì bạn có thể cài theo câu lệnh sau :
sudo apt-get install openssh-server openssh-client -y
Thiết lập User cho Hadoop
Thường mình thấy một nhiều trang hướng dẫn các bạn tạo một user mới trên Ubuntu và cài Hadoop trên đó nhưng qua trải nhiệm của mình thì cài Single Node chúng ta có thể cài trên bất cứ tài khoản nào, bạn có thể cài đặt ngay trên tài khoản admin mà bạn đang dùng hiện tại.
Tạo cặp khóa SSH và xác định vị trí sẽ được lưu trữ :
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
Hệ thống sẽ tiến hành tạo và lưu cặp khóa SSH :
Sử dụng lệnh cat để lưu public key vào authorized_keys trong thư mục của SSH:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Phân quyền cho người dùng với lệnh chmod :
chmod 0600 ~/.ssh/authorized_keys
Xác minh mọi thứ được thiết lập chính xác bằng cách ssh đến localhost:
ssh localhost
Download và Cài đặt Hadoop trên Ubuntu
Tải về một phiên bản Hadoop trên trang phân phối chính thức của Hadoop tại : https://hadoop.apache.org/releases.html
Ấn vào phần binary trong Binary download
Bây giờ để file nén mà bạn vừa tải về vào bất kì chỗ nào và giải nén nó ra bằng lệnh :
tar xvzf hadoop-3.2.2.tar.gz
Cấu hình và triển khai Hadoop Single Node (Pseudo-Distributed Mode)
Để cấu hình Hadoop cho chế độ phân phối giả chúng ta sẽ chỉnh sửa các tập file cấu hình của Hadoop trong đường dẫn etc/hadoop và trong file cấu hình môi trường gồm các file sau :
- .bashrc
- hadoop-env.sh
- core-site.xml
- hdfs-site.xml
- mapred-site.xml
- yarn-site.xml
Cấu hình biến môi trường Hadoop ( file .bashrc)
Mở file của .bashrc của bạn bằng trình soạn thảo nano :
sudo nano ~/.bashrc
Xác định biến mỗi trường Hadoop bằng cách thêm các biến sau vào cuối file ( nhớ chỉnh sửa đường dẫn $HADOOP_HOME cho đúng với đường dẫn mà bạn đã đặt hadoop)
#Hadoop Related Options
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_HOME=/opt/myapp/hadoop-3.2.2
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
Áp dụng các thay đổi trên bằng cách thực hiện lệnh sau :
source ~/.bashrc
Chỉnh sửa file hadoop-env.sh
Mở file hadoop-env.sh bằng trình soạn thảo nano :
sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
Tìm tới vị trí như hình bên dưới, bỏ comment ( bỏ dấu #) phần JAVA_HOME và thêm vào đầy đủ đường dẫn Openjdk trên máy của bạn :
Chỉnh sửa file core-site.xml
Mở file core-site.xml bằng trình soạn thảo nano :
sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml
Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau :
<configuration><property><name>hadoop.tmp.dir</name><value>/opt/myapp/hadoop-3.2.2/tmpdata</value></property><property><name>fs.default.name</name><value>hdfs://localhost:9001</value></property></configuration>
Chỉnh sửa file hdfs-site.xml
Mở file core-site.xml bằng trình soạn thảo nano :
sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml
Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau :
<configuration><property><name>dfs.data.dir</name><value>/opt/myapp/hadoop-3.2.2/dfsdata/namenode</value></property><property><name>dfs.data.dir</name><value>/opt/myapp/hadoop-3.2.2/dfsdata/datanode</value></property><property><name>dfs.replication</name><value>2</value></property></configuration>
Chỉnh sửa file mapred-site.xml
Mở file core-site.xml bằng trình soạn thảo nano :
sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau :
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
Chỉnh sửa file yarn-site.xml
Mở file core-site.xml bằng trình soạn thảo nano :
sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau :
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.resourcemanager.hostname</name><value>127.0.0.1</value></property><property><name>yarn.acl.enable</name><value>0</value></property><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value></property></configuration>
Format HDFS namenode
Các bạn phải định dạng lại namenode trước khi bắt đầu các dịch vụ đầu tiên :
hdfs namenode -format
Start Hadoop Cluster
Tại thư mục sbin, thực hiện các lệnh sau để chạy và khởi động Hadoop :
./start-all.sh
Chạy lệnh jsp để kiểm tra các trình daemon đang chạy :
jps
Nếu kết quả ra 6 trình daemon như sau thì bạn đã cấu hình đúng :
Truy cập Hadoop UI từ trình duyệt
Các bạn có thể kiểm tra Hadoop đã được cài đặt thành công hay chưa tại cổng mặc định của namenode là 9870 :
localhost:9870
Kiểm tra datanode tại cổng mặc định 9864 :
localhost:9864
Kiểm tra Yarn resource manager tại cổng 8088 :
locahost:8088
hadoop giờ tích hợp vào HDP rồi bạn ơi, dùng cái đó cho tiện (nếu muốn vọc thì dùng bản HDP Sandbox), có nhiều dịch vụ hơn như Spark, Kerberos, .... Doanh nghiệp giờ họ cũng dùng HDP hết rồi chứ ko cài hadoop như này nữa đâu
ReplyDeleteChào bạn, blog mình đang nói về xoay quanh các môn học của trường ĐHBK và các vấn đề liên quan là chủ yếu, trong môn lưu trữ và xử lý dữ liệu lớn mọi người sẽ được học và có lab là cài Hadoop vì vậy mình viết bài viết hướng dẫn cài Hadoop Single Node.
DeleteBiết là doanh nghiệp không sử dụng vậy nhưng trong bài viết mình có nêu rõ Hadoop Single node là một sự khởi đầu tuyệt vời để làm quen với Hadoop như cách cấu hình, HDFS command,... Và không có những cái cơ bản như vậy làm sao có được những cái nâng cao.
Cuối cùng mình vẫn cảm ơn sự góp ý của bạn, chúc bạn ngày mới tuyệt vời.
Có thể là bạn master nhưng khi bạn nói lại cho người khác thì phải đặt mình vào vị thế của người khác nữa bạn. Master nói chuyện với các master thì sẽ khác nhưng những người ở đây đa số là chưa biết gì.
DeleteVới lại Intern Bigdata ở VC Corp mọi người vẫn phải cài Hadoop Single Node trước nha, 1 phần là để thực hiện các task còn lại trên chính con Hadoop này, 1 phần là để vọc vạch cài đặt cho quen.
Cảm ơn ad rất nhiều vì bài viết này. Mình đã cài được Hadoop nhờ nó nhưng khi kiểm tra JPS thì thiếu mất cái dịch vụ cuối là XML Server Launcher, không biết sai ở đâu ạ
Deletecó 6 cái daemon bên trên thôi nha bạn, những cái khác sinh ra khi ban chạy chương trình và cái XMLServerLauncher cũng thế =)))
DeleteAd ơi, có thể làm thêm bài viết về Kafka Streaming, kiến thức về HDFS, sử dụng SparkSQL không ạ
ReplyDeletehttps://demanejar.github.io/ bạn có thể theo dõi blog chuyên môn này nha.
Delete