hadoop2.6.0 集羣配置

1、虛擬機準備
虛擬機準備的爲VMware12.0.1 build-3160714
鏡像爲rhel-server-6.5-x86_64-dvd.iso
java環境 爲1.7
hadoop爲2.6.0

2、環境準備
 a、網絡配置

主機名

網卡名稱

IP地址

子網掩碼

master

eth0

192.168.1.248

255.255.255.0

slaver1

eth0

192.168.1.248

255.255.255.0

slaver2

eth0

192.168.1.248

255.255.255.0

b、主機hosts信息
[hadoop@master hadoop]$ cat /etc/hosts
127.0.0.1   localhost master localhost4 master
::1         localhost master localhost6 master
192.168.1.248 master
192.168.1.247 slaver1
192.168.1.246 slaver2

=================如何修改主機名?==========================
=================修改/etc/hosts============================
192.168.1.248 master
192.168.1.247 slaver1
192.168.1.246 slaver2


創建hadoop用戶和組
以root身份在master、slaver1和slaver2上分別運行如下命令:

# groupadd hadoop

# useradd hadoop -g hadoop

# passwd hadoop

New Password:
Re-enter new Password:
passwd: password successfully changed for oracle

3.對每個節點對hadoop用戶ssh互相信任
tong1節點,tong2節點和tong3節點在hadoop用戶下創建私鑰
[root@master ~]# su - hadoop
[hadoop@master~]$ ssh-keygen -t rsa       
[hadoop@master~]$ cd ~/.ssh

[hadoop@master .ssh]$ ll
total 16
-rw-------. 1 hadoop hadoop 1675 Jan  6 10:28 id_rsa
-rw-r--r--. 1 hadoop hadoop  394 Jan  6 10:28 id_rsa.pub
-rw-r--r--. 1 hadoop hadoop 1983 Jan  8 11:14 known_hosts
[hadoop@master .ssh]$ scp slaver1:~/.ssh/id_rsa.pub  slaver1--將slaver1節點上的密鑰複製到master節點上
id_rsa.pub  100%  394     0.4KB/s   00:00    
[hadoop@master .ssh]$ scp slaver2:~/.ssh/id_rsa.pub  slaver2 --將slaver2節點上的密鑰複製到master節點上
id_rsa.pub 100%  394     0.4KB/s   00:00    
[hadoop@master .ssh]$ cat slaver1 slaver2 id_rsa.pub >> authorized_keys    --將三個節點的私鑰放到authorized_keys文件中
[hadoop@master .ssh]$ scp authorized_keys  slaver1:~/.ssh/      --將authorized_keys文件放入hadoop用戶下.ssh目錄中
authorized_keys                                                          100%  394     0.4KB/s   00:00   
[hadoop@master .ssh]$ scp authorized_keys  slaver2:~/.ssh/
authorized_keys                                                          100%  394     0.4KB/s   00:00   
[hadoop@master .ssh]$ ssh master date        --驗證三個節點ssh是否互信
Thu Jan  8 13:48:45 CST 2015
[hadoop@master .ssh]$ ssh slaver1 date
Thu Jan  8 13:49:13 CST 2015
[hadoop@master .ssh]$ ssh slaver2 date
Thu Jan  8 22:30:32 CST 2015
[hadoop@master .ssh]$

c、java環境

將下載的Java二進制安裝包上傳到/usr/local目錄

# rpm -ihv jdk-7u79-linux-x64.rpm


配置環境變量:

root身份master上編輯/home/hadoop/.bash_profile文件中加入以下環境變量

export PATH
export JAVA_HOME=/usr/java/jdk1.7.0_79
export JAR_HOME=/usr/java/jdk1.7.0_79/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAR_HOME/lib
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH

#source /home/hadoop/.bash_profile    --使環境變量生效

或者:

[hadoop@master ~]$ .  ~/.bash_profile 


5.安裝hadoop-2.6.0軟件

[root@master ~]$ tar xvf hadoop-2.6.0.tar.gz
[root@master ~]$ mv hadoop-2.6.0 /usr/local/
[root@master ~]$ cd /usr/local/
[root@master local]$ chown -R hadoop:hadoop hadoop-2.6.0/
[root@master local]$ ll hadoop-2.6.0/
total 56
drwxr-xr-x. 2 hadoop hadoop  4096 Nov 14 05:20 bin
drwxr-xr-x. 3 hadoop hadoop  4096 Nov 14 05:20 etc
drwxr-xr-x. 2 hadoop hadoop  4096 Nov 14 05:20 include
drwxr-xr-x. 3 hadoop hadoop  4096 Nov 14 05:20 lib
drwxr-xr-x. 2 hadoop hadoop  4096 Nov 14 05:20 libexec
-rw-r--r--. 1 hadoop hadoop 15429 Nov 14 05:20 LICENSE.txt
drwxrwxr-x. 2 hadoop hadoop  4096 Jan  8 14:13 logs
-rw-r--r--. 1 hadoop hadoop   101 Nov 14 05:20 NOTICE.txt
-rw-r--r--. 1 hadoop hadoop  1366 Nov 14 05:20 README.txt
drwxr-xr-x. 2 hadoop hadoop  4096 Nov 14 05:20 sbin

drwxr-xr-x. 4 hadoop hadoop  4096 Nov 14 05:20 share
[root@master local]$ su - hadoop

[hadoop@master ~]$ vim ~/.bash_profile       --將hadoop的執行文件加入到環境變量中
export JAVA_HOME=/usr/local/jdk1.7.0_79
export JAR_HOME=/usr/local/jdk1.7.0_79/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAR_HOME/lib
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export HBASE_HOME=/usr/local/hbase-0.98.9-hadoop2
export PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:/usr/local/hbase-0.98.9-hadoop2/bin
export PATH
[hadoop@master ~]$ .  ~/.bash_profile  --環境變量生效
[hadoop@master ~]$ hadoop        --查看hadoop是否可以使用

配置HDFS文件

文件名

格式

描述

hadoop-env.sh

Bash腳本

在運行hadoop的腳本中使用的環境變量

Core-site.xml

Hadoop配置xml

Hadoop核心的配置,例如HDFSMapReduce中很普遍的I/O設置

Hdfs-site.xml

Hadoop配置xml

HDFS後臺程序設置的配置:名稱節點。第二名稱節點和數據節點

Mapred-site.xml

Hadoop配置xml

MapReduce後臺程序設置的配置:jobtrackertasktracker

yarn-site.xml

Hadoop配置xml


Masters

純文本

記錄運行第二名稱節點的機器列表

Slaves

純文本

記錄運行數據節點和tasktracker的機器列表

Hadoop-met

Rics.properties

Java屬性

控制hadoop怎麼發佈metrics的屬性

Log4j.properties

Java屬性

系統日誌文件屬性、名稱節點審計日記和tasktracker子進程的日誌的屬性

 

1.1.2                                                      修改hadoop-env.sh

hadoop-env.sh路徑/usr/local/hadoop-2.6.0/etc/hadoop修改文件中環境變量JAVA_HOME的內容如下:

export JAVA_HOME=/usr/java/jdk1.7.0_79

所有機器做同樣操作。

1.1.3                                                      修改core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/hadooptmp</value>
</property>
</configuration>
1.1.4                                                      修改masters

這一步只需要在master節點上執行。

這個文件存儲備master節點的IP或機器名,建議使用機器名,每行一個機器名。主master會將元數據等備份到備master節點,文件位置可能隨着版本不同有所變化,此次我們使用的版本在/sbin目錄下,如果沒有此文件需新建。

這裏,我們爲masters文件增加如下一行即可:

master

1.1.5                                                      修改slaves

這一步只需要在兩臺master節點上執行,以便masterssh方式去啓動所有的slave節點。

這個文件存儲slave節點的IP或機器名,建議使用機器名,每行一個機器名。這裏我們增加如下兩行:

slaver1

slaver2

1.1.6                                                      修改hdfs-site.xml

文件中常用配置參數:

dfs.name.dir

用逗號隔開的目錄名

${hadoop.tmp.dir}

/dfs/name

存儲名稱節點永久元數據的目錄列表。名稱節點在列表中的每一個目錄下存儲着元數據的副本

dfs.date.dir

用逗號隔開的目錄名

${hadoop.tmp.dir}

/dfs/name

數據節點存儲塊的目錄列表

fs.checkpoint.dir

用逗號隔開的目錄名

${hadoop.tmp.dir}

/dfs/namesecondary

第二名稱節點用來存儲檢查點的目錄列表。它在列表的每一個目錄下存儲着檢查點的副本

 

具體配置如下:

<configuration>
<property>
<name>dfs.name.dir</name>
<value>/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
1.1.7                                                      修改mapred-site.xml

文件中常用配置參數:

Mapred.job.tracker

主機名和端口

local

JobtrackerRPC服務器運行的主機名和端口。如果設置爲默認值local。則當運行一道作業時,jobtracker也在同一進程內(此時不必啓動mapreduce守護進程)

Mapred.local.dir

用逗號分隔的目錄名稱

${hadoop.tmp.dir}

/mapred/local

Mapreduce存儲作業中間數據的目錄列表。當作業結束時數據會被清空

Mapred.system.dir

URL

${hadoop.tmp.dir}

/mapred/system

當一道作業運行時,與存儲共享文件的fs.default.name相關的目錄

Mapred.tasktracker

Map.tasks.maximum

Int

2

任一時刻tasktracker上運行map任務的數量

Mapred.tasktracker

reduce.tasks.maximum

int

2

任一時刻tasktracker上運行reduce任務的數量

Mapred.child.java.opts

string

-xmx200m

用來啓動tasktracker子進程,運行mapreduce任務的jvm選項。次屬性可以在每道作業上設置,這對爲debug設置JVM屬性比較有用

 

具體配置如下:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
1.1.8                                                      修改yarn-site.xml

文件中常用配置參數:

Yarn.resourcemanager.address


新框架中 NodeManager  RM 通信的接口地址

Yarn.resourcemanager.scheduler.address


NodeManger 需要知道 RM 主機的 scheduler 調度服務接口地址

Yarn.resourcemanager.webapp.address


各個 task 的資源調度及運行狀況通過通過該 web 界面訪問

Yarn.resourcemanager.resource-tracker.address


NodeManager 需要向 RM 報告任務運行狀態供 Resouce 跟蹤,因此 NodeManager 節點主機需要知道 RM 主機的 tracker 接口地址

 

具體配置如下:

<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>
 
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.1.248:8032</value>
</property>
 
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.1.248:8030</value>
</property>
 
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.1.248:8035</value>
</property>
 
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.1.248:8033</value>
</property>
 
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.1.248:8088</value>
</property>
1.1.9                                                      啓動服務,檢查進程
在Master節點上執行如下命令:
[hadoop@master bin]$ hadoop namenode -format
[hadoop@master ~]$ cd /usr/local/hadoop-2.6.0/sbin
[hadoop@master sbin]$ ./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
啓動完成後在Master節點上執行:
[hadoop@master sbin]$ jps
#Master服務器上有以下進程
3051 ResourceManager
3117 Jps
2813 NameNode
其餘兩個Slave執行如下命令,節點進程有:
[hadoop@slaver1 sbin]$ jps
24448 NodeManager
24336 DataNode
24576 Jps
使用到的相關命令:
 創建用戶和組:

# groupadd hadoop

# useradd hadoop -g hadoop

# passwd hadoop

New Password:
Re-enter new Password:
passwd: password successfully changed for oracle
修改authorized_keys文件權限
chmod 600 authorized_keys

遠程傳文件夾
scp -r hadoop-2.6.0  slaver2:/usr/local/

向用戶組賦權限
chown -R hadoop:hadoop hadoop-2.6.0/

刪除文件(慎用):
rm -rf *
4、問題:
如果不能啓動,嘗試刪除Root啓動後產生的文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章