軟件準(zhǔn)備
- jdk-7u80-linux-x64.tar.gz
- hadoop-2.6.4.tar.gz
- ssh客戶端
JDK安裝配置
下載解壓 jdk-7u80-linux-x64.tar.gz禁漓。
-
配置環(huán)境變量, 編輯 .bash_profile 文件,在文件末尾添加以下內(nèi)容:
# Java Env export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home export JRE_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
保存后孵睬,運(yùn)行 source .bash_profile播歼,使環(huán)境變量立即生效。
- 輸入 java -version 可以看到成功安裝的JDK版本信息掰读。
Hadoop安裝配置
下載解壓 hadoop-2.6.4.tar.gz
-
修改 .bash_profile 文件配置 Hadoop 環(huán)境變量秘狞,在文件末尾添加以下內(nèi)容:
# Hadoop Env export HADOOP_HOME=/Users/jackiehff/Software/hadoop-2.6.4 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后,運(yùn)行 source .bash_profile, 使 Hadoop 環(huán)境變量立即生效蹈集。
-
修改 Hadoop 環(huán)境變量配置文件 etc/hadoop/hadoop-env.sh烁试,在文件末尾添加以下內(nèi)容:
# The java implementation to use. export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home export HADOOP_PREFIX=/Users/jackiehff/Software/hadoop-2.6.4
-
輸入 hadoop version 可以看到成功安裝的 Hadoop 版本信息。
-
輸入 hadoop 可以看到 hadoop 命令的用法雾狈。
單機(jī)模式
Hadoop默認(rèn)配置運(yùn)行于非分布式模式中廓潜,即作為單個(gè)的 Java 進(jìn)程運(yùn)行,這樣調(diào)試起來(lái)會(huì)很方便善榛。下面運(yùn)行一下自帶的 WordCount 程序。
mkdir input
cp etc/hadoop/*.xml input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep input output 'dfs[a-z.]+'
運(yùn)行過(guò)程大致如下:
注意:output 目錄必須事先不存在呻畸。查看運(yùn)行結(jié)果:
cat outut/*
運(yùn)行結(jié)果如下:
偽分布式模式
配置ssh
因?yàn)閭畏植寄J较乱婆瑁词顾泄?jié)點(diǎn)都在一臺(tái)機(jī)器上,Hadoop 也需要通過(guò) ssh 登錄伤为,這一步的目的是配置本機(jī)無(wú)密碼 ssh 登錄咒循。
驗(yàn)證是否可以不需要密碼 ssh 到 localhost:
ssh localhost
如果不行,執(zhí)行如下命令:
sh-keygen -t dsa -P '' -f ~/.ssh/id_dsacat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
再次執(zhí)行 ssh localhost绞愚,就無(wú)需密碼叙甸。
修改Hadoop配置文件
偽分布式模式主要涉及以下配置信息:
-
修改 Hadoop 的核心配置文件 core-site.xml, 主要是配置 HDFS 的地址和端口號(hào)。
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/Users/jackiehff/Software/hadoop-2.6.4/tmp</value> </property> </configuration>
-
修改 Hadoop 中 HDFS 的配置文件 hdfs-site.xml位衩, 主要是配置數(shù)據(jù)副本裆蒸。
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
修改 Hadoop 中 MapReduce 配置文件 mapred-site.xml, 主要是配置 MapReduce 框架名稱。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>修改 Hadoop 中 YARN 的配置文件 yarn-site.xml, 主要用于指定 shuffle server糖驴。
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
運(yùn)行Hadoop
-
格式化文件系統(tǒng)
hdfs namenode -format
啟動(dòng) NameNode 和 DataNode 守護(hù)進(jìn)程 start-dfs.sh
Hadoop 守護(hù)進(jìn)程日志輸出寫到 $HADOOP_LOG_DIR 指定的目錄 (默認(rèn)是 $HADOOP_HOME/logs) 輸出結(jié)果如下:
16/04/11 21:38:26 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableStarting namenodes on [localhost]
localhost: starting namenode, logging to /Users/jackiehff/Software/hadoop-2.6.4/logs/hadoop-jackiehff-namenode-jackiehff.local.out
localhost: starting datanode, logging to /Users/jackiehff/Software/hadoop-2.6.4/logs/hadoop-jackiehff-datanode-jackiehff.local.out
Starting secondary namenodes [0.0.0.0]0.0.0.0: starting secondarynamenode, logging to /Users/jackiehff/Software/hadoop-2.6.4/logs/hadoop-jackiehff-secondarynamenode-jackiehff.local.out
16/04/11 21:39:39 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
使用 **jps** 命令查看當(dāng)前所有 Java 進(jìn)程
可以看到 HDFS 啟動(dòng)成功僚祷。
-
瀏覽器訪問(wèn) NameNode, 地址:http://localhost:50070/
啟動(dòng) ResourceManager 和 NodeManager 進(jìn)程
start-yarn.sh
輸出信息如下:
starting yarn daemonsstarting resourcemanager, logging to /Users/jackiehff/Software/hadoop-2.6.4/logs/yarn-jackiehff-resourcemanager-jackiehff.local.out
localhost: starting nodemanager, logging to /Users/jackiehff/Software/hadoop-2.6.4/logs/yarn-jackiehff-nodemanager-jackiehff.local.out
可以看到 NodeManager 和 ResourceManager 啟動(dòng)成功佛致。
-
瀏覽器訪問(wèn) ResourceManager, 地址:http://localhost:8088/
-
創(chuàng)建執(zhí)行MapReduce 任務(wù)所需的HDFS 目錄。
hdfs dfs -mkdir /input
-
拷貝輸入文件到分布式文件系統(tǒng)
hdfs dfs -put etc/hadoop/* /input
-
運(yùn)行示例程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar grep /input output dfs'[a-z.]+'
-
查看運(yùn)行結(jié)果
hdfs dfs -cat output/*
結(jié)果如下圖所示:
可以在瀏覽器中查看相關(guān) Job
-
停止 HDFS
stop-dfs.sh
-
停止 YARN
stop-yarn.sh
?