1. 相關(guān)依賴與版本說明
- JDK8
- SSH
Hadoop版本為2.8.5
官方建議為hadoop新建用戶組與用戶,方便后續(xù)權(quán)限控制。
個人學(xué)習(xí)可以忽略。
2. Hadoop服務(wù)安裝
從官網(wǎng)下載壓縮包,進行解壓,根據(jù)需要配置軟連接。最終結(jié)果如下:

基于上述軟連接,配置當(dāng)前用戶的.bashrc文件或者/etc/profile
#hadoop
export HADOOP_HOME=$HOME/hadoop/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置完成后記得source /etc/profile 使其生效。
生效后在任何地方執(zhí)行:
hadoop version
如果成功就說明下載的hadoop是可用的。
接下來通過修改hadoop配置達到單機偽分布式[1]啟動。
3. Hadoop偽分布式配置
Hadoop 的配置文件位于 */hadoop/etc/hadoop/中
偽分布式需要修改2個配置文件 core-site.xml 和 hdfs-site.xml
- core-site
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/edwin/hadoop/hadoop/tmp</value>
</property>
</configuration>
- hdfi-site
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/edwin/hadoop/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/edwin/hadoop/hadoop/tmp/dfs/data</value>
</property>
</configuration>
4. Hadoop結(jié)點初始化
執(zhí)行:
hdfs namenode -format
看到 “Exitting with status 0” 說明初始化成功。

5. 啟動Hadoop服務(wù)
執(zhí)行
start-dfs.sh
如果Hadoop安裝完后,啟動時報Error: JAVA_HOME is not set and could not be found.
而我們之前已經(jīng)通過java -version 確定Java已經(jīng)安裝
且通過export 查看到JAVA_HOME
那么需要修改hadoop-env.sh,更加明顯的聲明以此JAVA_HOME:
...
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/edwin/java/jdk
...
聲明一下,我這里的jdk是個軟連接
jdk -> /home/edwin/java/jdk1.8.0_191/
查看java進程,可以看到啟動了三個服務(wù):

需要關(guān)閉時執(zhí)行:
stop-dfs.sh
6. 使用YARN
MapReduce是一種編程模型也是一種編程方法和抽象理論
在2.X中,MapReduce由YARN進行支持。
上述通過 /sbin/start-dfs.sh 啟動 Hadoop,僅僅是啟動了 MapReduce 環(huán)境,我們可以啟動YARN ,讓 YARN 來負(fù)責(zé)資源管理與任務(wù)調(diào)度。
修改配置文件,部分配置文件只有一個template,可以cp一份進行修改。
- mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
./sbin/start-dfs.sh # 啟動MapReduce
./sbin/start-yarn.sh # 啟動YARN
./sbin/mr-jobhistory-daemon.sh start historyserver #開啟歷史服務(wù)器,才能在Web中查看任務(wù)運行情況

-
偽分布式:在單機上以分離的java進程運行,節(jié)點同時扮演NameNode和DataNode,讀取的是HDFS中的文件。 ?