linux hadoop完全分散式叢集搭建圖文詳解
一.前期準備
1.1 Win7官網下載hadoop包
本文使用版本hadoop-2.6.5.tar.gz
1.2 配置jdk
1.3 centos7叢集伺服器
主機名 系統 IP地址
master centos7 192.168.32.128
slave01 centos7 192.168.32.131
slave02 centos7 192.168.32.132
1.4 多伺服器ssh免密碼登陸
由於Hadoop啟動以後,namenode是通過SSH(Secure Shell)來啟動和停止各個節點上的各種守護程序的,這就需要在節點之間執行指令的時候是不需要輸入密碼的方式,故我們需要配置SSH使用無密碼公鑰認證的方式。
1.5 叢集伺服器名稱配置
本文預設使用root使用者登入,未新建hadoop專用登入名。
1.5.1 配置各個伺服器ip地址對應的別名
vi /etc/hosts
#配置ip對應名
192.168.32.128 master
192.168.32.131 slave01
192.168.32.132 slave02
ip別名配置
1.5.2 本地主機名配置
vi /etc/hostname
master
本地主機名稱
三臺伺服器依次修改,並重啟。
二.hadoop完全分散式叢集搭建
以下操作只針對master主機伺服器,其他主機伺服器類似。
2.1 上傳hadoop包至 /opt/software目錄
2.2 解壓和拷貝hadoop至 /usr/local/hadoop
cd /opt/software
tar -zxvf hadoop-2.6.5.tar.gz
cp -r hadoop-2.6.5 /usr/local/hadoop
hadoop解壓和拷貝
hadoop解壓和拷貝完成
三.hadoop完全分散式叢集配置
3.1 系統檔案profile配置
配置系統環境變數
vi /etc/profile #hadoop export HADOOP_HOME=/usr/local/hadoop export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
系統環境配置
退出儲存,重啟配置
source /etc/profile
3.2 hadoop-env.sh檔案配置
cd /usr/local/hadoop/etc/hadoop
vi hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/jdk
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native/"
退出儲存
hadoop-env.sh環境配置
3.3 新增namenode和datanode存放,臨時目錄tmp
定位:
cd /usr/local/hadoop
mkdir -p dfs/data
mkdir -p dfs/name
mkdir -p tmp
新建目錄
3.4 修改hdfs-site.xml檔案
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/dfs/data</value>
</property>
</configuration>
hdfs-site.xml檔案
3.5 修改core-site.xml檔案
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
core-site.xml檔案
3.6 修改mapred-site.xml檔案
目錄預設只有mapred-site.xml.template檔案,複製生成mapred-site.xml檔案
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
mapred-site.xml檔案
3.7 修改yarn-site.xml檔案
vi yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
yarn-site.xml檔案
3.8 修改slaves檔案
vi slaves
slaves檔案
3.9 slave01和slave02伺服器修改
3.9.1 hadoop檔案複製
複製master中hadoop檔案到slave01和slave02伺服器的/usr/local目錄
scp -r /usr/local/hadoop [email protected]:/usr/local/hadoop
scp -r /usr/local/hadoop [email protected]:/usr/local/hadoop
3.9.2 系統環境profile配置
類似3.2 分別在salve01和slave02配置系統環境
3.9.3 目錄檔案新建
類似3.3 分別在slave01和slave02新建檔案目錄
3.9.4 配置檔案修改
修改core-site.xml檔案
將fs.defaultFs對應的value中master修改slave02
core-site.xml檔案
salve01修改類似。
四.hadoop叢集測試
4.1 測試命令
#啟動
start-all.sh start
#停止
stop-all.sh start
#格式化節點
hadoop namenode -format
或者hdfs namenode -format
4.2 叢集測試
在master伺服器執行啟動命令
進入/usr/local/hadoop目錄
4.2.1 格式化namenode
4.2.2 啟動各個節點
sbin/start-all.sh start
start-all.sh啟動所有節點
4.2.3 檢視節點狀態
jps檢視節點程序
master程序
slave程序
檢視節點狀態
http://192.168.32.128:50070/dfshealth.html#tab-overview
節點狀態
叢集節點使用
http://192.168.32.128:8088/cluster/nodes
叢集節點使用
至此,hadoop完成分散式叢集搭建完畢。