Posts Cài đặt và triển khai Hadoop single node
Post
Cancel

Cài đặt và triển khai Hadoop single node

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 : Giới thiệu tổng quan Hadoop

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ó jdk ( bản 8, 11 hay 15 đều được, lưu ý nếu bạn dùng hadoop 3.1.4 thì có thể dùng bản jdk8, còn nếu dùng hadoop 3.2.2 trở lên thì hãy sử dụng java11 trở lên), nếu chưa có thì bạn có thể cài theo câu lệnh sau :
    1
    
    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 :
    1
    
    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ữ :

1
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:

1
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Phân quyền cho người dùng với lệnh chmod :

1
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:

1
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 :

1
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

Lưu ý: Trong phần cài đặt dưới đây, Hadoop của mình được đặt trong thư mục /opt/myapp, các bạn có thể để Hadoop ở bất cứ đâu cũng được, không nhất thiết phải để giống như mình.

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 :

1
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)

1
2
3
4
5
6
7
8
9
10
11
#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

Mở file hadoop-env.sh bằng trình soạn thảo nano :

1
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 :

1
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 :

1
2
3
4
5
6
7
8
9
10
<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:9000</value>
</property>
</configuration>

fs.default.name cấu hình địa chỉ của HDFS, nếu không cấu hình mặc định nó sẽ được đặt tại cổng 9000, nếu bị trùng cổng thì hãy thay đổi nó sang cổng khác để Hadoop có thể hoạt động bình thường.

Chỉnh sửa file hdfs-site.xml

Mở file hdfs-site.xml bằng trình soạn thảo nano :

1
sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Thêm vào giữa 2 thẻ configuration để được nội dung đầy đủ như sau :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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>

dfs.replication cấu hình số bản sao, thường thì 3 là con số thường được chọn tuy nhiên khi cài single node chỉ mang tính chất học là chủ yếu thì bạn để bao nhiêu cũng được.

Chỉnh sửa file mapred-site.xml

Mở file mapred-site.xml bằng trình soạn thảo nano :

1
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 :

1
2
3
4
5
6
<configuration>
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
</configuration>

Chỉnh sửa file yarn-site.xml

Mở file yarn-site.xml bằng trình soạn thảo nano :

1
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 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<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 :

1
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 :

1
./start-all.sh

Chạy lệnh jsp để kiểm tra các trình daemon đang chạy:

1
jps

Nếu kết quả ra 6 trình daemon như sau thì bạn đã cấu hình đúng (các bạn để ý tới 6 daemon bên trên thôi nha, XMLServerLauncher các bạn không cần quan tâm tới nó):

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 :

1
localhost:9870

Kiểm tra datanode tại cổng mặc định 9864 :

1
localhost:9864

Kiểm tra Yarn resource manager tại cổng 8088 :

1
locahost:8088

Tham khảo : https://phoenixnap.com/

This post is licensed under CC BY 4.0 by the author.