1. java -> jdk-7u67-linux-x64.tar.gz
2. hadoop -> hadoop-2.5.0.tar.gz
3. IP/host -> 192.168.47.100/bigdata.001.com
4. CentOS -> 6.7
3
1
1. java -> jdk-7u67-linux-x64.tar.gz
2
2. hadoop -> hadoop-2.5.0.tar.gz
3
3. IP/host -> 192.168.47.100/bigdata.001.com
4
4. CentOS -> 6.7
- 設置IP。
虛擬機 -> 編輯 -> 虛擬網絡編輯器。
- 虛擬機必須NAT模式。在虛擬機設置界面去設置。
- 本虛擬機的IP的網段,本虛擬機可以設置本IP網段的任意地址。 192.168.47.XXX(000, 2這兩個地址不可以)
3.
/etc/sysconfig/network-scripts/ifcfg-XXX 在該文件中設置IP地址
- hostname的配置
1. 在/etc/hosts 添加本機的IP與對應的域名
2. 配置HOSTNAME
3. 重啟,並將 192.168.47.105 bigdata.001.com
4. 可以使用 ping 命令來 ping 通虛擬機與實體機。
- 環境配置
禁用selinux
vi /etc/sysconfig/selinux
SELINUX=disabled
關閉防火牆
看狀態service iptables status
設置關閉service iptables stop
自啟關閉chkconfig iptables off
8
1
禁用selinux
2
vi /etc/sysconfig/selinux
3
SELINUX=disabled
4
5
關閉防火牆
6
看狀態service iptables status
7
設置關閉service iptables stop
8
自啟關閉chkconfig iptables off
- 安裝Oracle的JDK
查看自帶的JDK
rpm -qa | grep java
卸載自帶的JDK
rpm -e --nodeps 卸載內容(卸載多文件使用空格)
解壓JDK
tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/moduels/
配置java環境
vi /etc/profile
##JAVA_HOME
export JAVA_HOME=/opt/moduels/jdk1.7.0_67
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
java -version
18
1
查看自帶的JDK
2
rpm -qa | grep java
3
卸載自帶的JDK
4
rpm -e --nodeps 卸載內容(卸載多文件使用空格)
5
6
解壓JDK
7
tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/moduels/
8
9
配置java環境
10
vi /etc/profile
11
12
##JAVA_HOME
13
export JAVA_HOME=/opt/moduels/jdk1.7.0_67
14
export PATH=$JAVA_HOME/bin:$PATH
15
16
source /etc/profile
17
18
java -version
- Hadoop配置 --- HDFS
解壓Hadoop
tar -zxf hadoop-2.5.0.tar.gz -C /opt/moduels/
可清理文檔: hadoop-2.5.0/share/doc目錄
確保環境正確;
路徑:/opt/moduels/hadoop-2.5.0
命令:bin/hadoop
Hadoop指定的java安裝路徑
etc/hadoop/hadoop-env.sh
//雖然官方文檔沒有寫,但是同目錄下mapred-env.sh和yarn-env.sh也做相同修改
export JAVA_HOME=/opt/moduels/jdk1.7.0_67
Hadoop三種運行模式
本地單機模式:使用本地文件系統
偽分布式模式:HDFS文件系統
完全分布式模式:HDFS文件系統(真實集群)
修改 etc/hadoop/core-site.xml
//默認文件系統訪問入口,1.x系列端口號為9000
//hadoop.tmp.dir為hadoop系統生成文件的臨時目錄
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata.001.com:8020</value><!--可以用IP來代替主機名-->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/moduels/hadoop-2.5.0/data/tmp</value>
</property>
</configuration>
修改 hdfs-site.xml
//修改副本數量
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改slaves, 配置本機的主機名
//從節點機器位置主機名
bigdata.001.com
格式化namenode
命令:bin/hdfs namenode -format
查看結果:data/tmp文件夾生成文件
//只能格式化一次,如果有需求,將tmp文件夾下內容刪除再格式化
//多次格式化會導致集群ID不一致,手動修改集群ID也可以修復多次格式化問題
可以通過下列兩個路徑下的文件進行對比
/opt/app/hadoop-2.5.0/data/tmp/dfs/data/current
/opt/moduels/hadoop-2.5.0/data/tmp/dfs/name/current
啟動 namenode和datanode
命令:
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
驗證:
使用jps查看
瀏覽器界面
http://bigdata.001.com:50070/
http://192.168.47.105:50070/
使用命令
/user/root 是hadoop 內部創建的一個根目錄地址,可以在瀏覽器上看到
創建: bin/hdfs dfs -mkdir -p /user/root/lee
上傳: bin/hdfs dfs -put etc/hadoop/core-site.xml /user/root/lee
讀取: bin/hdfs dfs -text /user/root/lee/core-site.xml
下載: bin/hdfs dfs -get /user/root/lee/core-site.xml /home/cniao/core-site.xml
啟動 SecondaryNameNode
//文件操作記錄會進行存儲為編輯日志edits文件
//namenode格式化之后生成鏡像文件,namenode啟動時會讀取鏡像文件
//SecondaryNameNode用於合並這兩個文件,減少namenode啟動時間
文件地址:hadoop-2.5.0/data/tmp/dfs/name/current
流程:SecondaryNameNode讀取兩種文件 -> 合並為fsimage文件 -> 生成新的edits文件
修改hdfs-site.xml文件,指定secondarynamenode機器位置和交互端口號:50090
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.47.105:50090</value>
</property>
啟動:sbin/hadoop-daemon.sh start secondarynamenode
檢驗:jps
外部訪問界面:http://lee.cniao5.com:50090
//無法防止數據丟失,后續會介紹
95
1
解壓Hadoop
2
tar -zxf hadoop-2.5.0.tar.gz -C /opt/moduels/
3
4
可清理文檔: hadoop-2.5.0/share/doc目錄
5
6
確保環境正確;
7
路徑:/opt/moduels/hadoop-2.5.0
8
命令:bin/hadoop
9
10
11
Hadoop指定的java安裝路徑
12
etc/hadoop/hadoop-env.sh
13
//雖然官方文檔沒有寫,但是同目錄下mapred-env.sh和yarn-env.sh也做相同修改
14
export JAVA_HOME=/opt/moduels/jdk1.7.0_67
15
16
Hadoop三種運行模式
17
本地單機模式:使用本地文件系統
18
偽分布式模式:HDFS文件系統
19
完全分布式模式:HDFS文件系統(真實集群)
20
21
修改 etc/hadoop/core-site.xml
22
//默認文件系統訪問入口,1.x系列端口號為9000
23
//hadoop.tmp.dir為hadoop系統生成文件的臨時目錄
24
25
<configuration>
26
<property>
27
<name>fs.defaultFS</name>
28
<value>hdfs://bigdata.001.com:8020</value><!--可以用IP來代替主機名-->
29
</property>
30
<property>
31
<name>hadoop.tmp.dir</name>
32
<value>/opt/moduels/hadoop-2.5.0/data/tmp</value>
33
</property>
34
</configuration>
35
36
37
修改 hdfs-site.xml
38
//修改副本數量
39
<configuration>
40
<property>
41
<name>dfs.replication</name>
42
<value>1</value>
43
</property>
44
</configuration>
45
46
修改slaves, 配置本機的主機名
47
//從節點機器位置主機名
48
bigdata.001.com
49
50
格式化namenode
51
命令:bin/hdfs namenode -format
52
查看結果:data/tmp文件夾生成文件
53
//只能格式化一次,如果有需求,將tmp文件夾下內容刪除再格式化
54
//多次格式化會導致集群ID不一致,手動修改集群ID也可以修復多次格式化問題
55
可以通過下列兩個路徑下的文件進行對比
56
/opt/app/hadoop-2.5.0/data/tmp/dfs/data/current
57
/opt/moduels/hadoop-2.5.0/data/tmp/dfs/name/current
58
59
60
啟動 namenode和datanode
61
命令:
62
sbin/hadoop-daemon.sh start namenode
63
sbin/hadoop-daemon.sh start datanode
64
驗證:
65
使用jps查看
66
67
瀏覽器界面
68
http://bigdata.001.com:50070/
69
http://192.168.47.105:50070/
70
71
72
73
使用命令
74
/user/root 是hadoop 內部創建的一個根目錄地址,可以在瀏覽器上看到
75
創建: bin/hdfs dfs -mkdir -p /user/root/lee
76
上傳: bin/hdfs dfs -put etc/hadoop/core-site.xml /user/root/lee
77
讀取: bin/hdfs dfs -text /user/root/lee/core-site.xml
78
下載: bin/hdfs dfs -get /user/root/lee/core-site.xml /home/cniao/core-site.xml
79
80
啟動 SecondaryNameNode
81
//文件操作記錄會進行存儲為編輯日志edits文件
82
//namenode格式化之后生成鏡像文件,namenode啟動時會讀取鏡像文件
83
//SecondaryNameNode用於合並這兩個文件,減少namenode啟動時間
84
文件地址:hadoop-2.5.0/data/tmp/dfs/name/current
85
流程:SecondaryNameNode讀取兩種文件 -> 合並為fsimage文件 -> 生成新的edits文件
86
87
修改hdfs-site.xml文件,指定secondarynamenode機器位置和交互端口號:50090
88
<property>
89
<name>dfs.namenode.secondary.http-address</name>
90
<value>192.168.47.105:50090</value>
91
</property>
92
啟動:sbin/hadoop-daemon.sh start secondarynamenode
93
檢驗:jps
94
外部訪問界面:http://lee.cniao5.com:50090
95
//無法防止數據丟失,后續會介紹
- Hadoop配置——YARN與MapReduce
修改mapred-site.xml.template //.template表示不生效
刪除.template
mv mapred-site.xml.template mapred-site.xml
修改mapred-site.xml
//使MapReduce運行YARN上面
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
//MapReduce運行服務
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
//resourcemanager默認為啟動的機器
//偽分布式可以不進行配置,配置一般使用主機名
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.47.105</value>
</property>
啟動YARN
命令:
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
//MapReduce不需要啟動
//使用jps查看
外部管理界面
192.168.47.105:8088
MapReduce歷史服務器
修改mapred-site.xml
//內部交互地址
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.47.105:10020</value>
</property>
//外部交互地址
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.47.105:19888</value>
</property>
啟動:sbin/mr-jobhistory-daemon.sh start historyserver
檢驗:jps
//歷史服務器需要重啟HDFS與YARN
58
1
修改mapred-site.xml.template //.template表示不生效
2
刪除.template
3
mv mapred-site.xml.template mapred-site.xml
4
5
修改mapred-site.xml
6
//使MapReduce運行YARN上面
7
<configuration>
8
<property>
9
<name>mapreduce.framework.name</name>
10
<value>yarn</value>
11
</property>
12
</configuration>
13
14
15
16
修改yarn-site.xml
17
//MapReduce運行服務
18
<configuration>
19
<!-- Site specific YARN configuration properties -->
20
<property>
21
<name>yarn.nodemanager.aux-services</name>
22
<value>mapreduce_shuffle</value>
23
</property>
24
</configuration>
25
26
//resourcemanager默認為啟動的機器
27
//偽分布式可以不進行配置,配置一般使用主機名
28
<property>
29
<name>yarn.resourcemanager.hostname</name>
30
<value>192.168.47.105</value>
31
</property>
32
33
啟動YARN
34
命令:
35
sbin/yarn-daemon.sh start resourcemanager
36
sbin/yarn-daemon.sh start nodemanager
37
//MapReduce不需要啟動
38
//使用jps查看
39
40
外部管理界面
41
192.168.47.105:8088
42
43
MapReduce歷史服務器
44
修改mapred-site.xml
45
//內部交互地址
46
<property>
47
<name>mapreduce.jobhistory.address</name>
48
<value>192.168.47.105:10020</value>
49
</property>
50
//外部交互地址
51
<property>
52
<name>mapreduce.jobhistory.webapp.address</name>
53
<value>192.168.47.105:19888</value>
54
</property>
55
啟動:sbin/mr-jobhistory-daemon.sh start historyserver
56
檢驗:jps
57
//歷史服務器需要重啟HDFS與YARN
58
- 檢驗
使用單詞統計進行檢驗
創建input文件夾 bin/hdfs dfs -mkdir -p mapreduce/input
上傳統計文件 bin/hdfs dfs -put /opt/datas/file.input /user/root/mapreduce/input
//輸出目錄不需要提前存在,任務運行完自動創建,防止任務結果覆蓋
//在yarn運行job時候都必須要打jar包
單詞統計命令
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/root/mapreduce/input /user/root/mapreduce/output
查看結果
//_SUCCESS表示成功 結果在part-r-00000
bin/hdfs dfs -text /user/root/mapreduce/output/part-r-00000
14
1
使用單詞統計進行檢驗
2
創建input文件夾 bin/hdfs dfs -mkdir -p mapreduce/input
3
上傳統計文件 bin/hdfs dfs -put /opt/datas/file.input /user/root/mapreduce/input
4
5
//輸出目錄不需要提前存在,任務運行完自動創建,防止任務結果覆蓋
6
7
//在yarn運行job時候都必須要打jar包
8
9
單詞統計命令
10
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/root/mapreduce/input /user/root/mapreduce/output
11
12
查看結果
13
//_SUCCESS表示成功 結果在part-r-00000
14
bin/hdfs dfs -text /user/root/mapreduce/output/part-r-00000
- 常見問題
集群ID不一致
刪除data/tmp,重新格式化
進程啟動失敗
這個問題需要分析log,log位置/logs
盡量用IP來代替主機名
7
1
集群ID不一致
2
刪除data/tmp,重新格式化
3
4
進程啟動失敗
5
這個問題需要分析log,log位置/logs
6
7
盡量用IP來代替主機名
- 使用到的命令
ervice iptables stop
chkconfig iptables off
rpm -qa | grep java
rpm -e --nodeps
tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/moduels/
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
bin/hdfs dfs -mkdir -p /user/root/lee
bin/hdfs dfs -put etc/hadoop/core-site.xml /user/root/lee
bin/hdfs dfs -text /user/root/lee/core-site.xml
bin/hdfs dfs -get /user/root/lee/core-site.xml /home/cniao/core-site.xml
sbin/hadoop-daemon.sh start secondarynamenode
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
sbin/mr-jobhistory-daemon.sh start historyserver
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/root/mapreduce/input /user/root/mapreduce/output
bin/hdfs dfs -text /user/root/mapreduce/output/part-r-00000
17
1
ervice iptables stop
2
chkconfig iptables off
3
rpm -qa | grep java
4
rpm -e --nodeps
5
tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/moduels/
6
sbin/hadoop-daemon.sh start namenode
7
sbin/hadoop-daemon.sh start datanode
8
bin/hdfs dfs -mkdir -p /user/root/lee
9
bin/hdfs dfs -put etc/hadoop/core-site.xml /user/root/lee
10
bin/hdfs dfs -text /user/root/lee/core-site.xml
11
bin/hdfs dfs -get /user/root/lee/core-site.xml /home/cniao/core-site.xml
12
sbin/hadoop-daemon.sh start secondarynamenode
13
sbin/yarn-daemon.sh start resourcemanager
14
sbin/yarn-daemon.sh start nodemanager
15
sbin/mr-jobhistory-daemon.sh start historyserver
16
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/root/mapreduce/input /user/root/mapreduce/output
17
bin/hdfs dfs -text /user/root/mapreduce/output/part-r-00000
