一、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架構
NameNode:Hadoop集群中只有一個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。
MapReduce v1.0框架(圖1)
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)
2.啟動HDFS文件系統並使用jps檢查守護進程是否啟動
可以看到master-hadoop已經啟動NameNode和SecondaryNameNode進程,slave-hadoop已經啟動DataNode進程說明正常。
3.啟動新mapreduce架構(YARN)
可以看到master-hadoop已經啟動ResourceManger進程,slave-hadoop已經啟動NodeManager進程說明正常。
4.查看集群狀態
5.通過web查看資源(http://192.168.0.201:8088)
6、查看HDFS狀態(http://192.168.0.201:50070)
本文出自 ““企鵝”那點事兒” 博客,請務必保留此出處http://going.blog.51cto.com/7876557/1365883