Hướng dẫn cài đặt hadoop

Tạo tài khoản người dùng mới hduser với phân quyền Administrator (bạn phải cấp quyền root cho user này)

System Settings... > User Accounts

2. Tạo SSH key

Từ tài khoản chính của mỗi máy (không phải user hduser vừa tạo) chạy các lệnh terminal sau để tạo SSH key cho hduser:

user@TenMay:~$ su - hduser

Dòng lệnh tiếp theo dùng để tạo ra RSA key pair với password rỗng. Điều này nghe có vẻ không an toàn nhưng bạn sẽ không cần phải nhập passphrase mỗi khi Hadoop thao tác với node này.

hduser@TenMay:$ ssh-keygen -t rsa -P "" Generating public/private rsa key pair. Enter file in which to save the key (/home/hduser/.ssh/id_rsa): Created directory '/home/hduser/.ssh'. Your identification has been saved in /home/hduser/.ssh/id_rsa. Your public key has been saved in /home/hduser/.ssh/id_rsa.pub. The key fingerprint is: 9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hduser@ubuntu The key's randomart image is: [...snipp...] hduser@TenMay:$

Tiếp theo chúng ta tạo ra file authorized_keys để các máy trong mạng có thể thông qua file này truy cập vào máy tính của mình.

hduser@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

3. Khai báo địa chỉ IP

Bước này chúng ta sẽ thực hiện các khai báo để các máy tính trong cùng một cluster có thể nhận dạng ra nhau.

Lấy địa chỉ IP của tất cả các máy và điền vào file /etc/hosts theo mẫu sau:

192.168.32.102    TenMayChinh 192.168.32.103    TenMayTram01 192.168.32.104    TenMayTram02 192.168.32.105    TenMayTram03

Lưu ý các bạn phải khai báo tên máy phải trùng với thực tế thì mới kết nối được với nhau.

4. Kết nối các máy tính trong cùng cluster

Khai báo để hduser ở máy chính có thể login vào điều khiển các máy trạm trong cluster. Bạn sẽ phải thêm public key của máy chính (được lưu ở file $HOME/.ssh/id_rsa.pub) vào file $HOME/.ssh/authorized_keys ở các máy trạm. Thực hiện bằng câu lệnh sau:

hduser@TenMayChinh:~$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@TenMayTram01

Cuối cùng từ máy chính chúng ta sẽ thử kết nối vào máy chính và các máy trạm. Bước này giúp lưu fingerprint của các máy trạm vào file known_hosts của hduser tại máy chính.

hduser@TenMayChinh:~$ ssh TenMayChinh The authenticity of host ' TenMayChinh (192.168.32.102)' can't be established. RSA key fingerprint is 3b:21:b3:c0:21:5c:7c:54:2f:1e:2d:96:79:eb:7f:95. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'TenMayChinh' (RSA) to the list of known hosts. Linux master 2.6.20-16-386

2 Thu Jun 7 20:16:13 UTC 2007 i686

... hduser@TenMayChinh:$ exit hduser@TenMayChinh:$ ssh TenMayTram01 The authenticity of host 'TenMayTram01 (192.168.32.103)' can't be established. RSA key fingerprint is 74:d7:61:86:db:86:8f:31:90:9c:68:b0:13:88:52:72. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'TenMayTram01' (RSA) to the list of known hosts. Ubuntu 10.04 ... hduser@TenMayTram01:~$ exit

Login vào user hduser và thực hiện tiếp các bước còn lại.

5. Bước 5

Giải nén file Hadoop tải về và tạo thư mục yarn tại đường dẫn /home/hduser/. Copy thư mục Hadoop vào yarn.

Thực hiện các câu lệnh sau:

$ cd /home/hduser/yarn $ sudo chown -R hduser hadoop-2.2.0

6. Thêm vào file ~/.bashrc

$ sudo apt-get install openssh-server

0

7. Sửa những file thiết lập môi trường trong Hadoop

Xác định JAVA_HOME bằng lệnh terminal sau:

$ sudo apt-get install openssh-server

1

Thêm biến JAVA_HOME vào các file sau:

Thêm những dòng sau vào vị trí bắt đầu mã lệnh trong file libexec/hadoop-config.sh :

$ sudo apt-get install openssh-server

2

Thêm những dòng sau vào vị trí bắt đầu mã lệnh trong file etc/hadoop/yarn-env.sh :

$ sudo apt-get install openssh-server

3

Sửa lại đường dẫn tùy theo môi trường trong máy của bạn.

8. Thêm thuộc tính vào các file configuration

Có thể chỉnh sửa tại một máy rồi sau đó copy ra các máy khác (không sửa lại)

$HADOOP_CONF_DIR/core-site.xml

$ sudo apt-get install openssh-server

4

$HADOOP_CONF_DIR/hdfs-site.xml :

$ sudo apt-get install openssh-server

5

$HADOOP_CONF_DIR/mapred-site.xml :

$ sudo apt-get install openssh-server

6

$HADOOP_CONF_DIR/yarn-site.xml :

Thuộc tính mapreduce_shuffle trong Hadoop version 2.2.0 đã thay đổi so với các version trước từ mapreduce.shuffle thành mapreduce_shuffle

$ sudo apt-get install openssh-server

7

9. Tạo thư mục định dạng HDFS trong HADOOP_HOME

Tạo thư mục như đã khai báo trong core-site.xml thuộc tính hadoop.tmp.dir

$ sudo apt-get install openssh-server

8

Các bước từ 10 đến 12 chỉ thực hiện trên máy chính

10. Thêm tên các máy trạm vào file slaves

Thêm tên các máy trạm vào file $HADOOP_CONF_DIR/slaves trên máy chính:

$ sudo apt-get install openssh-server

9

Nếu muốn máy chính cũng làm một datanode thì thêm tên máy chính vào.

Khi khởi động những prcess của Hadoop thì chỉ những máy có tên trong file slaves mới được gọi process datanode và node manager.

11. Format thư mục HDFS thông qua namenode

System Settings... > User Accounts

0

12. Start Hadoop Daemons

System Settings... > User Accounts

1

Lưu ý: Với datanode và nodemanager, chúng ta gọi file *-daemons.sh chứ không phải là *-daemon.sh. Vìdaemon.sh không đọc file slaves và do đó, nó chỉ start các process trên máy chính mà thôi.

13. Check installation

Kiểm tra jps output trên cả máy chính và các máy trạm.

Với máy chính (trường hợp máy chính cũng làm một datanode):

System Settings... > User Accounts

2

Nếu máy chính không làm một datanode thì không có process datanode và nodemanager.

Với các máy trạm:

System Settings... > User Accounts

3

Nếu các process không chạy đầy đủ như trên, kiểm tra file logs trong thư mục $HADOOP_HOME/logs để xem xét vấn đề.

14. Chạy ứng dụng demo

System Settings... > User Accounts

4

Thêm thư mục này vào HDFS:

System Settings... > User Accounts

5

Chạy ví dụ wordcount có sẵn:

System Settings... > User Accounts

6

Kiểm tra output:

System Settings... > User Accounts

7

15. Web interface

1. http://master:50070/dfshealth.jsp 2. http://master:8088/cluster 3. http://master:19888/jobhistory (Job History Server)

16. Tắt Hadoop daemons

System Settings... > User Accounts

8

17. Các lỗi thường gặp

Không start được một trong số các process, bạn chạy riêng process đó bằng cách sau:

System Settings... > User Accounts

9

Theo dõi báo lỗi hiện ra trong terminal, nếu báo lỗi port đã được sử dụng thì bạn xem các port đang bị chiếm bằng lệnh sau:

user@TenMay:~$ su - hduser

0

Sau đó sửa lại hoặc khai báo thêm vào file configuration ở trên.

Nếu datanode không start được và thông báo lỗi là:

user@TenMay:~$ su - hduser

1

Lúc này clusterID và nodeID không trùng nhau, bạn có thể tắt hết các process và format lại toàn bộ HDFS hoặc chỉnh sửa file VERSION trong thư mục $HADOOP_HOME/tmp/nm-local-dir rồi khởi động lại process.

Nếu lỗi là datanode hoặc nodemanager không thể kết nối đến server TenMayChinh/host:port thì bạn chỉnh sửa file /etc/hosts trên máy chính như sau: