You are on page 1of 12

I.

Mục tiêu của Demo

Xây dựng hệ thống HDFS trên Ubuntu bao gồm 1 master và 2 slave node

II. Tài nguyên hệ thống

Hadoop job client submit job (file jar, file thực thi) và các thiết lập cho
JobTracker. Sau đó, master sẽ phân phối tác vụ đến các máy slave để theo dõi và
quản lý tiến trình các máy này, đồng thời cung cấp thông tin về tình trạng liên quan
đến job-client.

TaskTracker trên các node khác nhau thực thi tác vụ MapReduce và trả về kết
quả output được lưu trong hệ thống file.

Khi “chạy Hadoop” có nghĩa là chạy một tập các trình nền – daemon, hoặc các
chương trình thường trú, trên các máy chủ khác nhau trên mạng của bạn. Những trình
có vai trò cụ thể, một số chỉ tồn tại trên một máy chủ, một số có thể tồn tại trên nhiều
máy chủ.

Các daemon bao gồm:

- NameNode

- DataNode

- SecondaryNameNode

- JobTracker

- TaskTracker
III. Cài đặt Hadoop - HDFS

Thêm người dùng tên là hdoop

$ sudo adduser hdoop

Chuyển qua người dùng hdoop:

$ su - hdoop

Cài đặt ssh

$ sudo apt install ssh


Cài đặt PDSH

$ sudo apt install pdsh

Cấu hình file ~/.bashrc

$ echo "export PDSH_RCMD_TYPE=ssh" >> ~/.bashrc


$ source ~/.bashrc

Tạo khóa cho ssh và cho phép truy cập tới máy cục bộ

$ ssh-keygen -t rsa -P ""

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


Cài đặt java version 8

$ sudo apt install openjdk-8-jdk

Kiểm tra phiên bản java

Tải hadoop

$ wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.1/hadoop-
3.2.1.tar.gz

Giải nén:

$ tar xzf hadoop-3.2.1.tar.gz

Và đổi tên hadoop-3.2.1.tar.gz => hadoop

Cấu hình file hadoop-env.sh

$ vim ~/hadoop/etc/hadoop/hadoop-env.sh

Và thêm vào: $ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64


Di chuyển thư mục hadoop qua usr/local/hadoop

$ sudo mv hadoop /usr/local/hadoop

Mở file environment

$ sudo vim /etc/environment

Thêm cấu hình

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/
usr/local/games:/usr/local/hadoop/bin:/usr/local/hadoop/sbin"
dùng để xác định nơi hệ thống sẽ tìm kiếm các chương trình thực thi khi gõ
một lệnh trong dòng lệnh.

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre"

Tạo 2 máy salve từ máy master: salve1 và salve2

Cấu hình hostname cho master và 2 máy salve

Máy chạy master node đặt tên là master - hadoop


Hai máy chạy data node đặt tên là salve1 và salve2

Kiểm tra ip của các máy

$ hostname -I

Master: 192.168.10.128

Salve1: 192.168.10.133
Salve2: 192.168.10.134

Thêm địa chỉ ip của các máy vào cấu hình mạng trên máy hadoop-master

Tạo SSH cho các máy kết nối tới nhau

Tạo khóa ssh:

$ ssh-keygen -t rsa
Sao chép khóa SSH cho các user

$ ssh-copy-id hdoop@hadoop-master
$ ssh-copy-id hdoop@salve1
$ ssh-copy-id hdoop@salve2

Cấu hình file trên hadoop-master

$ sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml

Thêm vào cuối file


<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-master:9000</value>
</property>
</configuration>
$ sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml

Thêm vào cuối file


<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/nameNode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/dataNode</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
$ sudo vim /usr/local/hadoop/etc/hadoop/workers

Thêm
salve1
salve2

Sao chép cấu hình máy master cho các máy salve

$ scp /usr/local/hadoop/etc/hadoop/* salve1:/usr/local/hadoop/etc/hadoop/

$ scp /usr/local/hadoop/etc/hadoop/* salve2:/usr/local/hadoop/etc/hadoop/

Định dạng lại file HDFS

$ source /etc/environment

$ hdfs namenode -format

Chạy file HDFS

$ start-dfs.sh

kiểm tra kết nối

Truy cập địa chỉ hadoop-master:9870


Vậy kết nối giữa master và 2 máy salve đã thành công

IV. Cấu hình YARN

Mở file ~/.bashrc, và thêm vào cuối file:

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export 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"
export PDSH_RCMD_TYPE=ssh

Mở file yarn-site.xml

$ sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml


Máy master

Thêm vào cuối file yarn-site.xml

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-master</value>
</property>
</configuration>

Máy salve1

Thêm vào cuối file

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-master</value>
</property>
</configuration>

Máy salve2

Thêm vào cuối file

<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-master</value>
</property>
</configuration>
Chạy file yarn

$ start-yarn.sh

Kiểm tra lại kết nối với 2 máy salve

Mở trình duyệt -> http://hadoop-master:8088/cluster

You might also like