完全分布式Hadoop2.3安裝與配置


一、Hadoop基本介紹

Hadoop優點

1.高可靠性:Hadoop按位存儲和處理數據

2.高擴展性:Hadoop是在計算機集群中完成計算任務,這個集群可以方便的擴展到幾千台

3.高效性:Hadoop能夠在節點之間動態地移動數據,並保證各個節點的動態平衡,因此處理速度快

4.高容錯性:Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配

5.低成本:Hadoop是開源的,集群是由廉價的PC機組成

Hadoop架構和組件

Hadoop是一個分布式系統基礎架構,底層是HDFS(Hadoop Distributed File System)分布式文件系統,它存儲Hadoop集群中所有存儲節點上的文件(64MB塊),HDFS上一層是MapReduce引擎(分布式計算框架),對分布式文件系統中的數據進行分布式計算。

1.HDFS架構

NameNodeHadoop集群中只有一個NameNode,它負責管理HDFS的目錄樹和相關文件的元數據信息

Sencondary NameNode有兩個作用,一是鏡像備份,二是日志與鏡像定期合並,並傳輸給NameNode

DataNode負責實際的數據存儲,並將信息定期傳輸給NameNode

2.MapReduce架構(Hadoop0.23以后采用MapReduce v2.0或Yarn)

Yarn主要是把jobtracker的任務分為兩個基本功能:資源管理和任務調度與監控,ResourceManager和每個節點(NodeManager)組成了新處理數據的框架。

ResourceManager負責集群中的所有資源的統一管理和分配,接受來自各個節點(NodeManager)的資源匯報信息,並把這些信息按照一定的策略分配給各種應用程序(ApplicationMaster)。

NodeManager與ApplicationMaster承擔了MR1框架中的tasktracker角色,負責將本節點上的資源使用情況和任務運行進度匯報給ResourceManager。

 

wKioL1MS0-vDQ_JSAABrjdkYbj0500.jpg

           MapReduce v1.0框架(圖1)

 

 

wKioL1MS0_aRv39tAAELEZ6oI_U104.jpg

            MapReduce v2.0框架(圖2)

 

環境介紹:

master-hadoop 192.168.0.201

slave1-hadoop 192.168.0.202

slave2-hadoop 192.168.0.203

最新穩定版:http://www.apache.org/dist/hadoop/core/hadoop-2.3.0/

JDK下載:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

參考官方文檔:http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-common/ClusterSetup.html

Hadoop三種運行方式:單節點方式(單台)、單機偽分布方式(一個節點的集群)與完全分布式(多台組成集群)

二、准備環境

1.Hadoop是用Java開發的,必須要安裝JDK1.6或更高版本

2.Hadoop是通過SSH來啟動slave主機中的守護進程,必須安裝OpenSSH

3.Hadoop更新比較快,我們采用最新版hadoop2.3來安裝

4.配置對應Hosts記錄,關閉iptables和selinux(過程略)

5.創建相同用戶及配置無密碼認證

三、安裝環境(注:三台配置基本相同)

1.安裝JDK1.7

1
2
3
4
5
6
7
8
9
10
11
12
[root@master-hadoop ~] # tar zxvf jdk-7u17-linux-x64.tar.gz
[root@master-hadoop ~] # mv jdk1.7.0_17/ /usr/local/jdk1.7
[root@slave1-hadoop ~] # vi/etc/profile    #末尾添加變量
JAVA_HOME= /usr/local/jdk1 .7
PATH=$PATH:$JAVA_HOME /bin
CLASSPATH=$JAVA_HOME /lib :$JAVA_HOME /jre/lib
export  JAVA_HOME CLASSPATHPATH
[root@slave1-hadoop ~] #source /etc/profile
[root@slave1-hadoop ~] # java-version      #顯示版本說明配置成功
java version "1.7.0_17"
Java(TM) SE RuntimeEnvironment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-BitServer VM (build 23.7-b01, mixed mode)

2.創建hadoop用戶,指定相同UID

1
2
3
4
5
6
[root@master-hadoop ~] #useradd -u 600 hadoop
[root@master-hadoop ~] #passwd hadoop
Changing password  for  userhadoop.
New password:
Retype new password:
passwd : all authenticationtokens updated successfully.

3.配置SSH無密碼登錄(注:master-hadoop本地也要實現無密碼登錄

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@master-hadoop ~] # su - hadoop
[hadoop@master-hadoop ~]$  ssh -keygen -t rsa      #一直回車生成密鑰
[hadoop@master-hadoop ~]$  cd /home/hadoop/ . ssh /
[hadoop@master-hadoop . ssh ]$  ls
id_rsa  id_rsa.pub
[hadoop@slave1-hadoop ~]$  mkdir  /home/hadoop/ . ssh    #登錄兩台創建.ssh目錄
[hadoop@slave2-hadoop ~]$  mkdir  /home/hadoop/ . ssh
[hadoop@master-hadoop . ssh ]$  scp  id_rsa.pub hadoop@slave1-hadoop: /home/hadoop/ . ssh /
[hadoop@master-hadoop . ssh ]$  scp  id_rsa.pub hadoop@slave2-hadoop: /home/hadoop/ . ssh /
[hadoop@slave1-hadoop ~]$  cd /home/hadoop/ . ssh /
[hadoop@slave1-hadoop . ssh ]$  cat  id_rsa.pub >> authorized_keys
[hadoop@slave1-hadoop . ssh ]$  chmod  600 authorized_keys
[hadoop@slave1-hadoop . ssh ]$  chmod  700 ../. ssh /    #目錄權限必須設置700
[root@slave1-hadoop ~] # vi /etc/ssh/sshd_config   #開啟RSA認證
RSAAuthentication  yes
PubkeyAuthentication  yes
AuthorizedKeysFile      . ssh /authorized_keys
[root@slave1-hadoop ~] # service sshd restart

四、Hadoop的安裝與配置(注:三台服務器配置一樣,使用scp復制過去)

1
2
3
4
5
6
7
[root@master-hadoop ~] # tar zxvf hadoop-2.3.0.tar.gz -C /home/hadoop/
[root@master-hadoop ~] # chown hadoop.hadoop -R /home/hadoop/hadoop-2.3.0/
[root@master-hadoop ~] # vi /etc/profile   #添加hadoop變量,方便使用
HADOOP_HOME= /home/hadoop/hadoop-2 .3.0/
PATH=$PATH:$HADOOP_HOME /bin :$HADOOP_HOME /sbin
export  HADOOP_HOME PATH
[root@master-hadoop ~] # source /etc/profile

1. hadoop-env.sh設置jdk路徑

1
2
3
[hadoop@master-hadoop ~]$  cd  hadoop-2.3.0 /etc/hadoop/
[hadoop@master-hadoop hadoop]$  vi  hadoop- env .sh
export  JAVA_HOME= /usr/local/jdk1 .7/

2.slaves設置從節點

1
2
3
[hadoop@master-hadoophadoop]$  vi  slaves
slave1-hadoop
slave2-hadoop

3.core-site.xml

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<configuration>
<property>
<name>fs.defaultFS< /name >
<value>hdfs: //master-hadoop :9000< /value >
< /property >
<property>
<name>io. file .buffer.size< /name >
<value>131072< /value >
< /property >
<property>
<name>hadoop.tmp. dir < /name >
<value> file : /home/hadoop/tmp < /value >
< /property >
< /configuration >
4.hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name. dir < /name >
<value> file : /home/hadoop/dfs/name < /value >
< /property >
<property>
<name>dfs.namenode.data. dir < /name >
<value> file : /home/hadoop/dfs/data < /value >
< /property >
<property>
<name>dfs.replication< /name >     #數據副本數量,默認3,我們是兩台設置2
<value>2< /value >
< /property >
< /configuration >

6.yarn-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<configuration>
<property>
<name>yarn.resourcemanager.address< /name >
<value>master-hadoop:8032< /value >
< /property >
<property>
<name>yarn.resourcemanager.scheduler.address< /name >
<value>master-hadoop:8030< /value >
< /property >
<property>
<name>yarn.resourcemanager.resource-tracker.address< /name >
<value>master-hadoop:8031< /value >
< /property >
<property>
<name>yarn.resourcemanager.admin.address< /name >
<value>master-hadoop:8033< /value >
< /property >
<property>
<name>yarn.resourcemanager.webapp.address< /name >
<value>master-hadoop:8088< /value >
< /property >
<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 >

7.mapred-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<property>
<name>mapreduce.framework.name< /name >
<value>yarn< /value >
< /property >
<property>
<name>mapreduce.jobhistory.address< /name >
<value>master-hadoop:10020< /value >
< /property >
<property>
<name>mapreduce.jobhistory.webapp.address< /name >
<value>master-hadoop:19888< /value >
< /property >
< /configuration >

五、格式化文件系統並啟動

1.格式化新的分布式文件系統(hdfs namenode -format

wKiom1MS1DSiAgo4AAXvONDFnvs364.jpg

2.啟動HDFS文件系統並使用jps檢查守護進程是否啟動

wKiom1MS1D7CRuM-AAL910T_7Zo320.jpg

wKioL1MS1ETy_saEAAA_Z9hlJyI709.jpg

可以看到master-hadoop已經啟動NameNode和SecondaryNameNode進程,slave-hadoop已經啟動DataNode進程說明正常。

3.啟動新mapreduce架構(YARN)

wKiom1MS1JSTJYZuAAGsL2ftiq4313.jpg

wKioL1MS1HiSqDLnAABLaZvuy0c392.jpg

可以看到master-hadoop已經啟動ResourceManger進程,slave-hadoop已經啟動NodeManager進程說明正常。

4.查看集群狀態

wKiom1MS1KfSbrq-AAFu2a1fmHQ432.jpg

5.通過web查看資源(http://192.168.0.201:8088)

wKiom1MS1NHwFfDFAAOdMhjRyTw847.jpg

6、查看HDFS狀態(http://192.168.0.201:50070)

wKiom1MS1N2wI6cEAALawzAGv98814.jpg

 

本文出自 ““企鵝”那點事兒” 博客,請務必保留此出處http://going.blog.51cto.com/7876557/1365883


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM