Hadoop详解(三):HDFS完全分布式环境搭建
1. 前言
本文搭建了一個由三節點(master、slave1、slave2)構成的Hadoop完全分布式集群,并通過Hadoop分布式計算的一個示例測試集群的正確性。
2. 基礎集群的搭建
目的:獲得一個可以互相通信的三節點集群
使用VMware安裝master節點(稍后其他兩個節點可以通過復制master節點的虛擬機文件創建)。
三個節點存儲均為30G默認安裝,master節點內存大小為1GB,單核,slave節點內存大小1GB,單核
3. 集群網絡配置
本文中的集群網絡環境配置如下:
ubuntu1內網IP:192.168.186.101
ubuntu2內網IP:192.168.186.102
ubuntu3內網IP:192.168.186.103
4. 集群SSH免密登陸設置
4.1 創建master用戶
為三個節點分別創建相同的用戶master,并在以后的操作均在此用戶下操作,操作如下:
$su -#useradd -m master#passwd master為hadoop添加sudo權限
#visudo在該行root ALL=(ALL) ALL下添加master ALL=(ALL) ALL保存后退出,并切換回hadoop用戶
#su master注意事項:三個節點的用戶名必須相同,不然以后會對后面ssh及hadoop集群搭建產生巨大影響
4.2 Host文件設置
為了不直接使用IP,可以通過設置hosts文件達到ssh slave1這樣的的效果(三個節點設置相同)
$sudo vim /etc/hosts在文件尾部添加如下行,保存后退出:
192.168.186.101 ubuntu1
192.168.186.102 ubuntu2
192.168.186.103 ubuntu3
4.3 ssh設置
設置master節點和兩個slave節點之間的雙向ssh免密通信,下面以master節點ssh免密登陸slave節點設置為例,進行ssh設置介紹(以下操作均在master機器上操作):
首先生成master的rsa密鑰:$ssh-keygen -t rsa
設置全部采用默認值進行回車
將生成的rsa追加寫入授權文件:$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
給授權文件權限:$chmod 600 ~/.ssh/authorized_keys
進行本機ssh測試:$ssh master正常免密登陸后所有的ssh第一次都需要密碼,此后都不需要密碼
將master上的authorized_keys傳到slave1
sudo scp ~/.ssh/authorized_keys master@ubuntu2:~/.ssh/退出slave1:$exit
進行免密ssh登陸測試:$ssh ubuntu2
5. Java安裝
目的:hadoop是基于Java的,所以要安裝配置Java環境(三個節點均需要操作,以下以master節點為例)
配置JavaPATH和Java_HOME export JAVA_HOME=/opt/softwares/java/jdk1.8.0_191export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:6.Hadoop HDFS 安裝
6.1 Hadoop的masetr節點配置
配置hadoop的配置文件core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slaves(都在~/hadoop/etc/hadoop文件夾下)
$cd ~/hadoop/etc/hadoop
$vim core-site.xml其他文件相同,以下為配置文件內容:
core-site.xml
<configuration> <!-- 指定HDFS namenode的通信地址 --> <property><name>fs.defaultFS</name><value>hdfs://ubuntu1:9000</value> </property><!-- 指定hadoop運行時產生文件的存儲路徑 --> <property><name>hadoop.tmp.dir</name><value>/opt/softwares/hadoop/tmp</value> </property> </configuration>hdfs-site.xml
<configuration> <property><name>dfs.replication</name><value>2</value> </property><property><name>dfs.namenode.secondary.http-address</name><value>ubuntu1:50090</value> </property> </configurationhadoop-env.sh
export JAVA_HOME=/opt/softwares/java/jdk1.8.0_191配置vim /etc/profile
export JAVA_HOME=/opt/softwares/java/jdk1.8.0_191 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH #Zookeeper export ZOOKEEPER_HOME=/opt/softwares/zookeeper/zookeeper-3.4.6 #Hadoop export HADOOP_HOME=/opt/softwares/hadoop/hadoop-2.9.2 #PATH export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH7. Hadoop Namenode格式化
hdfs namenode -format (ubuntu1) start-dfs.sh8. 啟動和關閉Hadoop HDFS
8.1 啟動HDFS
啟動hadoop Hdfs進程
start-dfs.sh啟動hadoop namenode進程
hadoop-daemon.sh start namenode啟動hadoop datanode進程
hadoop-daemon.sh start datanode啟動hadoop Secondarynamenode進程
hadoop-daemon.sh start secondarynamenode8.2 關閉HDFS
關閉hadoop Hdfs進程
stop-dfs.sh關閉hadoop namenode進程
hadoop-daemon.sh stop namenode關閉hadoop datanode進程
hadoop-daemon.sh stop datanode關閉hadoop Secondarynamenode進程
hadoop-daemon.sh stop secondarynamenode總結
以上是生活随笔為你收集整理的Hadoop详解(三):HDFS完全分布式环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop详解(一):Hadoop简介
- 下一篇: Hadoop详解(二):HDFS存储系统