環(huán)境采用centos 6.5最小化安裝,hadoop下載的hadoop2.7.6.tar.gz安裝,Java下載的oracle官網(wǎng)的1.8.0_172的包安裝。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、雙橋ssl等。為近千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的雙橋網(wǎng)站制作公司
192.168.17.205 Master
192.168.17.206 hadoop1
192.168.17.207 hadoop2
為三臺主機添加同一用戶,設(shè)置密碼:
添加用戶
useradd hadoop
修改密碼
passwd hadoop
SSH 免密碼登錄安裝,配置
保證由master主機能夠免密碼登錄到datanodes節(jié)點機上
# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
#ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.17.206
測試
[root@Master ~]# ssh 192.168.17.206
Last login: Mon Apr 23 12:56:33 2018 from 192.168.17.1
[root@hadoop1 ~]#
JDK的安裝與卸載
卸載 JDK
# 檢查當(dāng)前安裝的JDK
rpm -qa|grep gcj
rpm -qa|grep jdk
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
#查詢當(dāng)前系統(tǒng)中相關(guān)java 目錄并刪除
whereis java
java: /etc/java /usr/lib/java /usr/share/java
#刪除查詢出的結(jié)果目錄
rm -fr /usr/share/java
rm -fr /usr/lib/java
rm -fr /etc/java
安裝JDK
在usr目錄下創(chuàng)建java目錄并且下載JDK并且解壓到 /usr/java 目錄下
cd /usr
mkdir java
cd java
wget http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jdk-8u102-linux-x64.tar.gz
tar -zxvf jdk-8u172-linux-x64.tar.gz
可能要手工下載再傳進去,下載到的可能是html而不是tar.
編輯 vim /etc/profile 文件并且在末尾追加
JAVA_HOME=/usr/java/jdk1.8.0_172
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
在不重新啟動操作系統(tǒng)的情況下使 /etc/profile 文件生效
source /etc/profile
檢查java的安裝狀態(tài)
java -version
下載hadoop-2.7.6
cd /tmp
wget http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.6.tar.gz
解壓 hadoop-2.7.6.tar.gz
tar -zxvf hadoop-2.7.6.tar.gz
復(fù)制文件到 /usr 目錄下
cp -R /tmp/hadoop-2.7.3 /usr/hadoop
配置hadoop的環(huán)境變量,在/etc/profile下追加
vi /etc/profile
追加如下的環(huán)境變量設(shè)置
HADOOP_HOME=/usr/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
修改 etc/hadoop/hadoop-env.sh 文件
vi etc/hadoop/hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/java/jdk1.8.0_172
修改 etc/hadoop/core-site.xml 文件
hadoop.tmp.dir
file:/usr/hadoop/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://Master:9000
修改 etc/hadoop/hdfs-site.xml 文件
dfs.namenode.secondary.http-address
Master:50090
dfs.replication
1
dfs.namenode.name.dir
file:/usr/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/usr/hadoop/tmp/dfs/data
修改 etc/hadoop/yarn-site.xml 文件
yarn.resourcemanager.hostname
Master
yarn.nodemanager.aux-services
mapreduce_shuffle
修改 etc/hadoop/mapred-site.xml 文件
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
Master:10020
mapreduce.jobhistory.webapp.address
Master:19888
修改 etc/hadoop/slaves 文件,添加
192.168.17.206
192.168.17.207
打包文件夾 /usr/hadoop ,復(fù)制到 datanode 節(jié)點機,保證節(jié)點機環(huán)境配置與master保持一致格式化文件系統(tǒng)
hdfs namenode -format
啟動文件服務(wù)
start-dfs.sh
Make the HDFS directories required to execute MapReduce jobs:
關(guān)閉文件服務(wù)
stop-dfs.sh
創(chuàng)建用戶文件系統(tǒng)文件夾
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hadoop
復(fù)制文件本地文件到分布式文件系統(tǒng) input 下
hdfs dfs -mkdir /input
hdfs dfs -put etc/hadoop/*.xml input
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
把相同配置添加到hadoop-env.sh文件末尾。
對于這些網(wǎng)上的說法已經(jīng)很多了,主要包括:
1 關(guān)閉safemode模式,輸入如下命令:
bin/hadoop dfsadmin -safemode leave
2 檢查存儲空間是否足夠,輸入如下命令:
df -hl
3 重新格式化hdfs,按照如下步驟
a) 刪除master和所有slave上的 hadoop目錄下的logs文件,并重新建立
b) 刪除master和所有slave上的hdfs存儲目錄,即conf/core-site.xml配置文件中 hadoop.tmp.dir屬性對應(yīng)的value所指向的目錄,并重新建立
4 檢查防火墻是否關(guān)閉,輸入下面命令查看狀態(tài):
service iptables status
輸入下面命令關(guān)閉防火墻
service iptables stop
5 重新檢查配置文件
不過上述方法都用過了,依然沒有解決問題,下面一點是如何解決了該問題的操作。
檢查每臺機器上的/etc/hosts文件,將沒有用或不清楚作何用的ip:name對刪除,最后只留下了
[root@hadoop1 hadoop]# cat /etc/hosts
127.0.0.1 localhost
192.168.17.205 Master
192.168.17.206 hadoop1
192.168.17.207 hadoop2