配置
配置時間 | 2015年5月5日 |
---|---|
操作系統(tǒng) | Mint-16,64bit |
Hadoop版本 | 2.2.0 |
安裝模式 | 單機偽分布式 |
步驟
-
安裝JAVA
下載安裝JAVA ——
Open-JDK 1.7 64bit
設(shè)置環(huán)境變量
使用
java -version
命令驗證JAVA安裝是否成功
$ sudo vi /etc/profile
#在文件結(jié)尾添加以下四個路徑
export JAVA_HOME=/usr/lib/jdk/jdk1.7.0_51
export JRE_HOME=/usr/lib/jdk/jdk1.7.0_51/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
#更新文件內(nèi)容
$ source /etc/profile
- 配置SSH免密碼登錄
#創(chuàng)建RSA密鑰對并復(fù)制公鑰到鑰匙串a(chǎn)uthorized_keys即可
$ ssh-keygen -t rsa -P ""
$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
$ ssh localhost
- Hadoop下載
$ wget https://archive.apache.org/dist/hadoop/core/hadoop-2.2.0/hadoop-2.2.0.tar.gz
$ tar -xvzf hadoop-2.2.0.tar.gz
$ sudo mv hadoop-2.2.0/ /usr/
$ chmod 777 -R hadoop-2.2.0/
- Hadoop配置
$ cd /usr/hadoop-2.2.0/etc/hadoop
hadoop-env.sh yarn-env.sh 添加JDK路徑
$ vi hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
$ vi yarn-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
hdfs-site.xml HDFS配置
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/zhy/hdfs/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/zhy/hdfs/data</value>
<final>true</final>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
core-site.xml 配置Namenode
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://node:8020</value>
<final>true</final>
</property>
</configuration>
mapred-site.xml MapReduce設(shè)置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>file:/home/zhy/hadoop/mapred/system</value>
<final>true</final>
</property>
<property>
<name>mapred.local.dir</name>
<value>file:/home/zhy/hadoop/mapred/local</value>
<final>true</final>
</property>
</configuration>
yarn-site.xml Yarn資源管理配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
slaves保存所有slave節(jié)點的主機名或IP地址拣播;
/etc/hostname 保證主機名和其他節(jié)點中主機名一致晾咪;
/etc/hosts 主機名和IP地址的映射關(guān)系,這里只需要添加本機
$ vi slaves
node
$ vi /etc/hosts
node 172.20.10.6
- 驗證Hadoop安裝配置
格式化Namenode
hdfs namenode -format
啟動HDFS和Yarn
$ cd /usr/hadoop-2.2.0/sbin/
$ ./hadoop-daemon.sh start namenode
$ ./hadoop-daemon.sh start datanode
$ ./yarn-daemon.sh start resourcemanager
$ ./yarn-daemon.sh start nodemanager
#簡單命令啟動
$ ./start-dfs.sh
$ ./start-yarn.sh
#簡單但廢棄的啟動命令
$ ./start-all.sh
使用jps查看進程啟動是否成功
$ jps
操作檢驗
$ hdfs dfs -ls /
$ hdfs dfs -mkdir /home
$ hdfs dfs -put /usr/hadoop-2.2.0/LICENSE.txt /home/hadoop/
其他操作
- 關(guān)閉Hadoop
$ cd /usr/hadoop-2.2.0/sbin/
$ ./stop-yarn.sh
$ ./stop-dfs.sh
問題及解決方案
出現(xiàn)這個警告是由于Hadoop的庫文件是在32bit環(huán)境下編譯的贮配,解決方式是下載對應(yīng)版本的Hadoop源碼谍倦,并在本機器上編譯即可,該警告不影響Hadoop功能牧嫉。
出現(xiàn)這個問題可能是由于DataNode連接問題剂跟,嘗試以下兩個操作:
1 編輯**/etc/hosts**文件并將配置中使用的主機名IP地址寫入該文件
2 刪除Hadoop的**tmp**文件夾,嘗試重啟并格式化Namenode
這個問題在該URL中提出過酣藻,這也是我解決這個問題的思路曹洽。是由于把輸入文件放在了/tmp路徑下,導致中間結(jié)果也被當做輸入讀取辽剧,且Hadoop無法讀取多層目錄的輸入送淆,因此出錯。