您好,登錄后才能下訂單哦!
環境采用centos 6.5最小化安裝,hadoop下載的hadoop2.7.6.tar.gz安裝,Java下載的oracle官網的1.8.0_172的包安裝。
192.168.17.205 Master
192.168.17.206 hadoop1
192.168.17.207 hadoop2
為三臺主機添加同一用戶,設置密碼:
添加用戶
useradd hadoop
修改密碼
passwd hadoop
SSH 免密碼登錄安裝,配置
保證由master主機能夠免密碼登錄到datanodes節點機上
# 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
# 檢查當前安裝的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
#查詢當前系統中相關java 目錄并刪除
whereis java
java: /etc/java /usr/lib/java /usr/share/java
#刪除查詢出的結果目錄
rm -fr /usr/share/java
rm -fr /usr/lib/java
rm -fr /etc/java
安裝JDK
在usr目錄下創建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
在不重新啟動操作系統的情況下使 /etc/profile 文件生效
source /etc/profile
檢查java的安裝狀態
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
復制文件到 /usr 目錄下
cp -R /tmp/hadoop-2.7.3 /usr/hadoop
配置hadoop的環境變量,在/etc/profile下追加
vi /etc/profile
追加如下的環境變量設置
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 文件
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
</configuration>
修改 etc/hadoop/hdfs-site.xml 文件
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/tmp/dfs/data</value>
</property>
</configuration>
修改 etc/hadoop/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>
修改 etc/hadoop/mapred-site.xml 文件
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
修改 etc/hadoop/slaves 文件,添加
192.168.17.206
192.168.17.207
打包文件夾 /usr/hadoop ,復制到 datanode 節點機,保證節點機環境配置與master保持一致格式化文件系統
hdfs namenode -format
啟動文件服務
start-dfs.sh
Make the HDFS directories required to execute MapReduce jobs:
關閉文件服務
stop-dfs.sh
創建用戶文件系統文件夾
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hadoop
復制文件本地文件到分布式文件系統 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文件末尾。
對于這些網上的說法已經很多了,主要包括:
1 關閉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屬性對應的value所指向的目錄,并重新建立
4 檢查防火墻是否關閉,輸入下面命令查看狀態:
service iptables status
輸入下面命令關閉防火墻
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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。