前期準備:
1.我這里用了三臺虛擬機,.默認已經配置好靜態IP和IP域名映射,它們相互之間可以ping通
第一臺:192.168.174.131 ? ? ?hadoopNumber01.medal.com
第二臺:192.168.174.132 ? ? ?hadoopNumber02.meda.com
第三臺:192.168.174.133 ? ? ?hadoopNumber03.medal.com
2.虛擬機最好不要連上網,因為我們后面用的是離線方式安裝
一、搭建前的系統設置
1.將三臺虛擬機切換到root用戶,禁用IPv6
命令是:#echo "alias net-pf-10 off" ?>> /etc/modprobe.d/dist.conf
#echo "alias ipv6 off" ?>> /etc/modprobe.d/dist.conf
2.配置普通用戶的sudo權限
命令是:#chmod ?u+w ? /etc/sudoers
#vi ? /etc/sudoers
在第一行加上:用戶名 ?ALL=(root)NOPASSWD:ALL
因為我是以xunzhang這個用戶登錄的,所以我加上xunzhang ALL=(root)NOPASSWD:ALL
#chmod ?u-w ?/etc/sudoers
3.關閉防火墻
命令是:$sudo ?service iptables stop
$sudo ?chkconfig ?iptables ?off
4.禁用selinux
命令是:$sudo ?vi ?/etc/sysconfig/selinux
修改內容:SELINUX= disabled
5.卸載JdK
命令是:$sudo ?rpm ?-qa | grep ?java
$sudo ?rpm ?-e ?--nodeps ?xxx ? yyy ? zzz
6.設置文件打開數量和用戶最大進程數
命令是:$sudo ?vi ?/etc/security/limits.conf
加上內容:
* ?soft ? nofiles ? 65535
* ?hard ?nofiles ? 65535
* ?soft ? ?nproc ? ?32000
* ?hard ? nproc ? ?32000
7.設置集群時間同步(ntp),前提是三臺虛擬機之間已經配置ssh免密鑰登錄
比如說我現在設置第二臺和第三臺虛擬機與第一臺虛擬機進行時間同步
? ?1>首先檢查第一臺虛擬機有沒有安裝ntp軟件,命令是:#rpm ?-qa | grep ntp,默認系統已經自帶了
? 2>編輯配置文件ntp.conf
?命令是:#vi ?/etc/ntp.conf
去掉一行注釋,將#restrict ?192.168.1.0 ?mask 255.255.255.0 ?nomodify ?notrap,去掉注釋,并將其改成192.168.174.0,因為我的ip是在這個網段里面
加上三行注釋,將service ?0.centos.pool.ntp.ort和service ?1.centos.pool.ntp.org還有service ?2.centos.pool.ntp.org這三行注釋掉
去掉兩行注釋,將末尾的server ?127.127.1.0 ? ?#local ? clock 和 fudge ?127.127.1.0 ?stratum ? 10 ,這兩行的注釋去掉
3>編輯配置文件ntpd
命令是:#vi ?/etc/sysconfig/ntpd
內容是:# Drop ?root ?to id ?'ntp:ntp' ?by ?default.
SYNC_HWCLOCK =yes
OPTIONS="-u ?ntp:ntp ?-p ?/var/run/ntpd.pid ? -g"
4>啟動服務
命令是:#service ?ntpd ?start
#chkconfig ? ntpd ?on
5>在另外兩臺虛擬機上,寫腳本,進行時間的同步
在第二臺虛擬機上,切換到root用戶,設置同步
命令是:crontab ?-e
加上如下內容:
0-59 * * * * /usr/sbin/ntpdate ?hadoopNumber01.medal.com
注意:在這里每個*號之間有一個空格,后面這個域名是我第一臺主機的主機名
在第三臺虛擬機上,也做如第二臺虛擬機相同的操作
二、搭建Hadoop2.x集群
1、安裝JDK
1>上傳JDK安裝包,并將其解壓到/opt/modules目錄下
2>配置環境變量
命令是:sodu ?/etc/profile
在最后加上:########### ?JAVA_HOME ##################
export ?JAVA_HOME=/opt/modules/jdk1.7.0_79 (jdk所在的路徑),我的jdk是在/opt/modules/下
export ?CLASSPATH=/opt/modules/jdk1.7.0_79/lib
export ?PATH=$PATH:$JAVA_HOME/bin
3>重啟配置文件/etc/profile
命令是:source ?/etc/profile
4>將jdk分發到另外兩臺虛擬機中
命令是:cd ?/opt/modules/
scp -r * xunzhang@hadoopNumber02.medal.com:/opt/modules
scp -r * xunzhang@hadoopNumber03.medal.com:/opt/modules
最后在另外兩臺虛擬機上配置java環境變量
2.安裝Hadoop2.x(我這里是2.5.0)
1>上傳hadoop安裝包,并將其解壓到/opt/modules目錄下,進入hadoop-2.5.0-cdh5.3.6目錄下,創建臨時緩存目錄
命令是:mkdir ?-p ?tmp/dir
2>進入hadoop-2.5.0-cdh5.3.6/ect/hadoop目錄下,修改配置文件
第一個:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoopNumber01.medal.com:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0-cdh5.3.6/tmp/dir</value>
</property>
</configuration>
第二個:hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoopNumber02.medal.com:50090</value>
</property>
</configuration>
第三個:mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
第四個:yarn -site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoopNumber01.medal.com</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
第五個:slaves
hadoopNumber01.medal.com
hadoopNumber02.medal.com
hadoopNumber03.medal.com
第六個:hadoop-env.sh
配置java的路徑:export JAVA_HOME=/opt/modules/jdk1.7.0_79
第七個:mapred-env.sh
配置java的路徑:export JAVA_HOME=/opt/modules/jdk1.7.0_79
3.將hadoop分發到其它虛擬機上
前提:三臺虛擬機它們的目錄結構,和用戶名完全一樣
命令:??scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slaves hadoop-env.sh mapred-env.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? xunzhang@hadoopNumber02.medal.com:/opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop/
? ? scp core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml slaves hadoop-env.sh mapred-env.sh ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? xunzhang@hadoopNumber03.medal.com:/opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop/
4.格式化hdfs文件系統
在第一臺虛擬機上
命令:bin/hdfs namenode -format
如果沒有錯誤,就繼續向下執行,有錯誤就查看日志信息,進行改正
sbin/start-dfs.sh
sbin/start-yarn.sh
至此,集群搭建完成