Cài đặt và cấu hình Hadoop Cluster

Cài đặt và cấu hình Hadoop Cluster

Bài viết này sẽ hướng dẫn cách cài đặt và cấu hình Hadoop Cluster.

Hadoop là một dự án Apache mã nguồn mở cho phép tạo các ứng dụng xử lý song song trên các tập dữ liệu lớn, được phân phối trên các nodes được kết nối mạng. Nó bao gồm Hadoop Distributed File System (HDFS™) xử lý khả năng mở rộng và dự phòng dữ liệu giữa các nodes và Hadoop YARN, một khuôn khổ để lập lịch thực hiện các tác vụ xử lý dữ liệu trên tất cả các nodes.

Kiến trúc hadoop cluster

Kiến trúc Hadoop Cluster gồm 2 loại node chính:

  • Master node: lưu giữ thông tin về hệ thống file phân tán, tương đương với bảng inode của ext3, ngoài ra còn có nhiệm vụ lên kế hoạch phân bổ tài nguyên. Trong guide này, node master có 2 nhiệm vụ chính:
    • Name node: quản lý hệ thống file phân tán, nắm thông tin block dữ liệu nào nằm ở đâu trong cluster.
    • ResourceManager: quản lý các job của YARN và quản lý các job được xếp lịch chạy trên các node slave.
  • Worker nodes: lưu dữ liệu thực và cung cấp sức mạnh phần cứng để chạy các job, trong lab này là node1 và node2:
    • Datanode: quản lý các block dữ liệu về mặt vật lý.
    • Nodemanager: quản lý thực hiện các task trên node.

Cài đặt hadoop cluster:

Chuẩn bị:

Với bài hướng dẫn này sẽ được tiến hành cài đặt trên 3 VPS OS Ubuntu 20 LTS hoặc 3 Server OS Ubuntu 20 LTS với IP lần lượt là :

  • 10.124.11.53
  • 10.124.11.16
  • 10.124.11.23

Trong đó  VPS có IP 10.124.11.53 sẽ đóng vai trò là master trong cụm cluster.

Phần môi trường cần cài đặt trên 3 máy: java jdk 1.8 trở lên. Nếu như các node chúng ta chưa có cài đặt java jdk chúng ta có thể thực thi lệnh sau:

apt-get update && apt-get upgrade

Thêm Hadoop vào PATH của chúng ta cho shell. Thực hiện chỉnh sửa file “.bashrc” và thêm các dòng sau:
export HADOOP_HOME=/home/hadoop/hadoop
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

Cấu hình Master Node

Thiết lập JAVA_HOME

Tìm vị trí cài đặt java, mặc định ở /usr/java/java-8-openjdk-amd64
Có thể tìm bằng cách:

update-alternatives --display java
java - auto mode
link best version is /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
link currently points to /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
link java is /usr/bin/java
slave java.1.gz is /usr/share/man/man1/java.1.gz
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - priority 1081
slave java.1.gz: /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz

Chỉnh sửa file “~/hadoop/etc/hadoop/hadoop-env.sh” và thay thế dòng này:

export JAVA_HOME=${JAVA_HOME}

sang dòng sau:

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

Lưu ý: Thuộc tính cuối cùng, dfs.replication cho biết số lần dữ liệu được sao chép trong cluster. Chúng có thể đặt 2 để có tất cả dữ liệu được nhân đôi trên hai node. Không nhập giá trị cao hơn số node thực tế.

Thiết lập Yarn làm Job Scheduler

Chỉnh sửa tệp mapred-site.xml, đặt YARN làm khung mặc định cho các hoạt động MapReduce:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
</property>
</configuration>

Cấu hình YARN

Chỉnh sửa fiber-site.xml, chứa các tùy chọn cấu hình cho YARN. Trong trường giá trị cho fiber.resourcemanager.hostname, hãy thay thế bằng địa chỉ IP public của node-master:

<configuration>
<property>
<name>yarn.acl.enable</name>
<value>0</value>
</property><property>
<name>yarn.resourcemanager.hostname</name>
<value>IP PUBLIC</value>
</property><property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

Cấu hình Workers

Các Workers file được sử dụng bởi các tập lệnh khởi động để bắt đầu các daemon cần thiết trên tất cả các node. Chỉnh sửa “~/hadoop/etc/hadoop/worker” để bao gồm cả hai nút:

node1
node2

Cấu hình phân bổ RAM

Việc phân bổ ram có thể làm để những node có ram thấp có thể chạy được. Các giá trị mặc định được thiết kế cho các máy 8GB ram trở lên. Dưới đây là những tuỳ chỉnh cho những node 2GB Ram.

Một Yarn job được chạy với 2 loại:

  • Một application manager: chịu trách nhiệm giám sát ứng dụng và phối hợp để phân phối excecutor trong cluster (phân phối xem node nào sẽ thực hiện job).
  • Một số executor được tạo bởi application manager chạy các job. Đối với các mapredure job, chúng thực hiện các tiến trình map và redure song song.
  • Cả 2 app trên chạy trên slave node. Mỗi slave node chạy một NodeManager dạng deamon, chịu trách nhiệm đối với việc tạo container trên mỗi node. Toàn bộ cluster chịu sự quản lý của ResourceManager, lên kế hoạch phân bổ các container trên toàn bộ slavenode, dựa trên nhu cầu cần thiết cho mỗi action hiện tại.

Cấu hình cho node 2GB RAM

Property Value
yarn.nodemanager.resource.memory-mb 1536
yarn.scheduler.maximum-allocation-mb 1536
yarn.scheduler.minimum-allocation-mb 128
yarn.app.mapreduce.am.resource.mb 512
mapreduce.map.memory.mb 256
mapreduce.reduce.memory.mb 25

Sửa file /home/hadoop/hadoop/etc/hadoop/yarn-site.xml và thêm các dòng sau:

Tagged:

Rate This Article