搭建Hadoop的環境
準備實驗的環境:
1、安裝Linux、JDK
2、配置主機名、免密碼登入
3、約定:安裝目錄:/usr/local/bin
安裝:
1、解壓 : tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/bin/
2、設定環境變數: vi ~/.bash_profile
HADOOP_HOME=/usr/local/bin/hadoop-2.7.7
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
/usr/local/bin/hadoop-2.7.7
生效環境變數: source ~/.bash_profile
第一節:Hadoop的目錄結構
第二節:Hadoop的本地模式
1、特點:不具備HDFS,只能測試MapReduce程式
2、修改hadoop-env.sh
修改第27行:export JAVA_HOME=/root/training/jdk1.7.0_75
3、演示Demo: $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar
命令:hadoop jar hadoop-mapreduce-examples-2.4.1.jar wordcount /root/data/input/data.txt /root/data/output/wc
日誌:17/08/04 23:28:38 INFO mapreduce.Job: map 100% reduce 100%
注意:MR有一個預設的排序規則
第三節:Hadoop的偽分佈模式
1、特點:具備Hadoop的所有功能,在單機上模擬一個分散式的環境
(1)HDFS:主:NameNode,資料節點:DataNode
(2)Yarn:容器,執行MapReduce程式
主節點:ResourceManager
從節點:NodeManager
2、步驟:
(1)hdfs-site.xml
<!--配置HDFS的冗餘度-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--配置是否檢查許可權-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
(2)core-site.xml
<!--配置HDFS的NameNode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.88.11:9000</value>
</property>
<!--配置DataNode儲存資料的位置-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/bin/hadoop-2.7.7/tmp</value>
</property>
(3) mapred-site.xml
<!--配置MR執行的框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(4) yarn-site.xml
<!--配置ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.43.128</value>
</property>
<!--配置NodeManager執行任務的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(5) 格式化NameNode
hdfs namenode -format
日誌:Storage directory/usr/local/bin/hadoop-2.7.7/tmp/dfs/name has been successfully formatted.
(6) 啟動:start-all.sh
(*) HDFS: 儲存資料
(*) Yarn:執行計算
(7) 訪問:(*)命令列
(*)Java API
(*)Web Console:
HDFS:http://192.168.43.128:50070
Yarn:http://192.168.43.128:8088