Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

10 tháng 11, 2016

Cài đặt Hadoop trên môi trường multinode

Trong bài viết trước tôi đã hướng dẫn các bạn tiến hành cài Hadoop trong môi trường single node. Tuy nhiên đây chỉ là môi trường để test, thực tế không ai sử dụng Hadoop trên một máy chủ cả.
Vì vậy trong bài này tôi sẽ tiếp tục hướng dẫn các bạn cách cài Hadoop trong môi trường multi server.
Các bước chuẩn bị bạn làm y hệt như trong bài hướng dẫn này và dừng lại sau bước tạo ssh-key.
Ở đây, tôi giả định bạn đang để các máy có IP như sau (cấu hình file hosts):
192.168.1.109 master.hadoop.com
192.168.1.145 slave.hadoop.com

Cấu hình ssh-key cho các máy chủ
Bạn chạy lệnh sau để cấu hình:
# su hadoop
$ ssh -keygen -t rsa 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@master.hadoop.com 
$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave.hadoop.com 
$ chmod 0600 ~/.ssh/authorized_keys 
$ exit
Download và giải nén bộ cài hadoop vào thư mục /opt/hadoop như sau:
Quay về tài khoản root nếu đang ở tài khoản khác. 
Tải về Hadoop (lưu ý có thể chọn phiên bản khác tùy ý):
wget http://www-eu.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
Giải nén file vừa tải về:
tar xfz hadoop-2.7.2.tar.gz
Tạo thư mục lưu các tập tin của Hadoop:

mkdir /opt/hadoop
mv hadoop-2.7.2/* /opt/hadoop

 Đổi quyền cho thư mục:

chown -R hadoop:hadoop /opt/hadoop/

Kiểm tra lại các tập tin đã nằm ở thư mục chỉ định hay chưa:

ls /opt/hadoop

nếu thấy output như sau thì được:

LICENSE.txt  README.txt  etc      lib      sbin
NOTICE.txt   bin         include  libexec  share

 Chuyển sang tài khoản hadoop.
su - hadoop
Chèn nội dung sau vào tập tin ~/.bash_profile:
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/opt/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
Khởi tạo các biến bằng lệnh sau:
source .bash_profile
Kiểm tra lại các biến bằng các lệnh sau:
echo $JAVA_HOME echo $HADOOP_HOME
Nếu output tương tự như sau là được:
/usr/java/default/opt/hadoop
Cấu hình cho Hadoop:
Mở tập tin /opt/hadoop/etc/hadoop/core-size.xml và thêm vào nội dung sau:

    
      fs.default.name 
      hdfs://master.hadoop.com:9000/ 
    
    
      dfs.permissions 
      false 
    


Mở tiếp tập tin /opt/hadoop/etc/hadoop/hdfs-site.xml và thêm vào nội dung sau:

    
      dfs.data.dir 
      /opt/hadoop/hadoop/dfs/name/data 
      true 
    

    
      dfs.name.dir 
      /opt/hadoop/hadoop/dfs/name 
      true 
    

    
      dfs.replication 
      1 
    

Mở tiếp tập tin /opt/hadoop/etc/hadoop/mapred-size.xml và thêm vào nội dung sau:

    
      mapred.job.tracker 
      master.hadoop.com:9001 
    

Cài đặt Hadoop lên các máy chủ khác Copy bộ cài Hadoop lên các máy chủ khác bằng lệnh:
# su hadoop 
$ cd /opt/hadoop 
$ scp -r hadoop slave.hadoop.com:/opt/hadoop
Cấu hình trên máy chủ chính Trên máy chủ master.hadoop.com, thêm tập tin /opt/hadoop/etc/hadoop/masters với nội dung sau:
master.hadoop.com
Thêm tập tin /opt/hadoop/etc/hadoop/slaves với nội dung sau:
slave.hadoop.com
Chạy Hadoop: Từ máy chủ chính chạy lệnh sau để format: hdfs namenode -format. Chạy dịch vụ của Hadoop bằng các lệnh sau:
sbin/start-dfs.sh sbin/start-yarn.sh.
Thêm một DataNode vào Hadoop Cluster: Giả sử ta có thêm một DataNode có địa chỉ như sau: 192.168.1.103 slave2.hadoop.com Trên slave2 ta thêm tài khoản có tên là hadoop: useradd hadoop passwd hadoop Từ trên máy chủ master, ta chạy các lệnh sau:
mkdir -p $HOME/.ssh 
chmod 700 $HOME/.ssh 
ssh-keygen -t rsa -P '' -f $HOME/.ssh/id_rsa 
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys 
chmod 644 $HOME/.ssh/authorized_keys
Copy the public key to new slave node in hadoop user $HOME directory
scp $HOME/.ssh/id_rsa.pub hadoop@192.168.1.103:/home/hadoop/
Từ trên máy chủ slave2, ta copy public key vào tập tin $HOME/.ssh/authorized_keys:
cd $HOME
mkdi -p $HOME/.>ssh 
chmod 700 $HOME/.ssh
cat id_rsa.pub >> $HOME/.ssh/authorized_keys 
chmod 644 $HOME/.ssh>/authorized_keys
Các bước trên là để các máy chủ đăng nhập vào nhau mà không phải sử dụng mật khẩu. Cập nhật thông tin máy chủ slave2 trên mọi file hosts của các máy chủ khác. Khởi động DataNode trên máy chủ mới bằng lệnh sau: bin/hadoop-daemon.sh start datanode Loại bỏ máy chủ DataNode ra khỏi cụm máy chủ: Đăng nhập vào máy chủ master. Thêm trường sau vào tập tin hdfs-site.xml:
 
   dfs.hosts.exclude 
   /home/hadoop/hadoop-1.2.1/hdfs_exclude.txt 
   DFS exclude 

Thêm tập tin hdfs_exclude.txt với nội dung sau: slave2.hadoop.com Load lại thông tin cấu hình: bin/hadoop/hdfs dfsadmin -refreshNodes Tắt Node vừa loại bỏ. Tham khảo tại đây.

12 nhận xét:

  1. Có thể xem thêm hướng dẫn ở đây:
    http://linuxpitstop.com/configure-distributed-hbase-cluster-on-centos-linux-7/

    Trả lờiXóa
  2. Cài HBASE:
    http://linuxpitstop.com/configure-distributed-hbase-cluster-on-centos-linux-7/

    Trả lờiXóa
  3. Phải cài thêm zookeeper để mở được web HBASE:
    https://www.tutorialspoint.com/zookeeper/zookeeper_installation.htm

    Trả lờiXóa
  4. http://hanishblogger.blogspot.com/2013/11/zookeeper-setup-in-distributed-mode.html

    Trả lờiXóa
  5. Lưu ý: giờ trên các server phải đồng bộ với nhau

    Trả lờiXóa
  6. regionserver phải giống nhau trên mọi node của Hbase.
    Số zookeeper phải là số lẻ.
    Chú ý phải đặt đúng zookeeper sẽ chạy trên máy nào (phải trên datanode?)

    Trả lờiXóa
  7. http://stackoverflow.com/questions/39746714/distributed-cluster-hadoop-and-hbase

    Trả lờiXóa
  8. http://hadooptutorial.info/hbase-installation-fully-distribution-mode/

    Trả lờiXóa
  9. Phải thiết lập cổng 60010 bằng tay như cấu hình ở đây mới được:
    http://stackoverflow.com/questions/38180823/hbase-regionservers-are-not-communicating-with-master

    Trả lờiXóa
  10. cài đặt Hue:
    http://cloudera.github.io/hue/docs-3.5.0/manual.html

    Trả lờiXóa
  11. Cách đưa hadoop thoát khỏi trạng thái safemode:
    http://unmeshasreeveni.blogspot.in/2014/04/name-node-is-in-safe-mode-how-to-leave.html

    Trả lờiXóa
  12. Fix corrupt data:
    http://centoshowtos.org/hadoop/fix-corrupt-blocks-on-hdfs/

    Trả lờiXóa