全部課程
發(fā)布時(shí)間: 2018-01-03 21:59:34
??本集群搭建案例,以5節(jié)點(diǎn)為例進(jìn)行搭建,角色分配如下:
hdp-node-01 NameNode SecondaryNameNode
hdp-node-02 ResourceManager
hdp-node-03 DataNode NodeManager
hdp-node-04 DataNode NodeManager
hdp-node-05 DataNode NodeManager
部署圖如下:
?
1. 服務(wù)器準(zhǔn)備本案例使用虛擬機(jī)服務(wù)器來(lái)搭建HADOOP集群,所用軟件及版本:
12.0.0
redhat 6.5 64bit
2. 網(wǎng)絡(luò)環(huán)境準(zhǔn)備
采用NAT方式聯(lián)網(wǎng)
網(wǎng)關(guān)地址:192.168.195.2
3個(gè)服務(wù)器節(jié)點(diǎn)IP地址:192.168.195.128、192.168.195.129、192.168.195.130
子網(wǎng)掩碼:255.255.255.0
3.服務(wù)器系統(tǒng)設(shè)置
添加HADOOP用戶(hù)
為HADOOP用戶(hù)分配sudoer權(quán)限
同步時(shí)間
設(shè)置主機(jī)名
hdp-node-01
hdp-node-02
hdp-node-03
配置內(nèi)網(wǎng)域名映射:
192.168.195.128 hdp-node-01
192.168.195.129 hdp-node-02
192.168.195.129 hdp-node-03
配置ssh免密登陸
配置防火墻
4.準(zhǔn)備Linux環(huán)境
以下是將ip地址改成靜態(tài)的ip地址,如果用動(dòng)態(tài)ip地址,以下操作可以不用做:
? 4.1:先將虛擬機(jī)的網(wǎng)絡(luò)模式選為NAT
4.2:? 修改主機(jī)名(要用root)
[root@hdp-node-01 ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hdp-node-01
保存,然后重啟機(jī)器
[root@hdp-node-01 ~]# reboot
4.3: 修改IP,兩種方式:
第一種:通過(guò)Linux圖形界面進(jìn)行修改(強(qiáng)烈推薦)
A、先在動(dòng)態(tài)的ip地址狀態(tài)下查詢(xún)ip
B、進(jìn)入Linux圖形界面 -> 右鍵點(diǎn)擊右上方的兩個(gè)小電腦 -> 點(diǎn)擊Edit connections -> 選中當(dāng)前網(wǎng)絡(luò)System eth0 -> 點(diǎn)擊edit按鈕 -> 選擇IPv4 -> method選擇為manual -> 點(diǎn)擊add按鈕 ->
添加IP:192.168.195.128 子網(wǎng)掩碼:255.255.255.0 網(wǎng)關(guān):192.168.192.2 DNS:144.144.144.144-> apply
第二種:修改配置文件方式
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=d0bae0f5-ea26-4844-b6e2-1c24945914ec
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.195.128
PREFIX=32
GATEWAY=192.168.195.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=00:0C:29:DC:BA:3E
LAST_CONNECT=1509437953
4.4: 修改主機(jī)名和IP的映射關(guān)系
vim /etc/hosts
192.168.195.128 hdp-node-01
4.5:關(guān)閉防火墻
#查看防火墻狀態(tài)
service iptables status
#關(guān)閉防火墻
service iptables stop
#查看防火墻開(kāi)機(jī)啟動(dòng)狀態(tài)
chkconfig iptables --list
#關(guān)閉防火墻開(kāi)機(jī)啟動(dòng)
chkconfig iptables off
或者修改防火墻的訪問(wèn)規(guī)則
[root@hdp-node-01 ~]# vim /etc/sysconfig/iptables
在該文件中加上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
重啟防火墻
[root@hdp-node-01 ~]#service iptables restart
5:安裝JDK
(1) 上傳jdk安裝包,規(guī)劃安裝目錄 /opt/jdk1.8.0_121
(2) 解壓安裝包
[root@hdp-node-01 opt]# tar -zxvf jdk-8u121-linux-x64.gz –C /opt
(3) 配置環(huán)境變量 /etc/profile
vim /etc/profile
#在文件對(duì)應(yīng)的位置添加
JAVA_HOME=/opt/jdk1.8.0_121
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
#刷新配置
source /etc/profile
6:安轉(zhuǎn)hadoop-2.8.1
先上傳hadoop的安裝包到服務(wù)器上去/home/hadoop/apps
解壓hadoop
[hadoop@hdp-node-01 apps]$ tar zxvf hadoop-2.8.1.tar.gz
注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
偽分布式需要修改5個(gè)配置文件 ?6.1:配置hadoop?
第一個(gè):hadoop-env.sh?
? vim hadoop-env.sh?
? # The java implementation to use. export JAVA_HOME=/opt/jdk1.8.0_121
? 第二個(gè):core-site.xml?
<!-- 指定HADOOP所使用的文件系統(tǒng)schema(URI),HDFS的老大(NameNode)的地址 -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-node-01:9000</value>
</property>
<!-- 指定hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/apps/hadoop-2.8.1/tmp</value>
</property>
</configuration>
第三個(gè):hdfs-site.xml
?<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hdp-node-01:50090</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
</configuration>
?注意:需要先創(chuàng)建/home/hadoop/data/name和/home/hadoop/data/data兩個(gè)目錄
[hadoop@hdp-node-01 ~]$ mkdir -p ~/data/name
[hadoop@hdp-node-01 ~]$ mkdir -p ~/data/data
?第四個(gè):mapred-site.xml?
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr運(yùn)行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
?
第五個(gè):yarn-site.xml?
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdp-node-01</value>
</property>
<!-- reducer獲取數(shù)據(jù)的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
第六個(gè):vi slaves
hdp-node-02
hdp-node-03
6.2: 將hadoop添加到環(huán)境變量?
vim /etc/profile?
?HADOOP_HOME=/home/hadoop/apps/hadoop-2.8.1JAVA_HOME=/opt/jdk1.8.0_121
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
? source /etc/profile
6.3:?格式化namenode(是對(duì)namenode進(jìn)行初始化)
hdfs namenode -format?
6.4:配置datanode將上面配置好的hadoop-2.8.1拷貝到hdp-node-02和hdp-node-03機(jī)器
[hadoop@hdp-node-01 apps]$ scp -r hadoop-2.8.1 hadoop@hdp-node-02:/home/hadoop/apps
注意:在hdp-node-02機(jī)器中/home/hadoop目錄,要先創(chuàng)建apps
6.5:?jiǎn)?dòng)hadoop 先啟動(dòng)HDFS
sbin/start-dfs.sh
再啟動(dòng)YARN
sbin/start-yarn.sh
6.6:驗(yàn)證是否啟動(dòng)成功 使用jps命令驗(yàn)證
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode
http://192.168.195.128:50070 (HDFS管理界面)
7:配置ssh免登陸
以下操作只需要在namenode機(jī)器中配置即可
A、用root用戶(hù)登錄修改SSH配置文件"/etc/ssh/sshd_config"的下列內(nèi)容。
檢查下面幾行前面”#”注釋是否取消掉:
RSAAuthentication yes # 啟用 RSA 認(rèn)證
PubkeyAuthentication yes # 啟用公鑰私鑰配對(duì)認(rèn)證方式
AuthorizedKeysFile %h/.ssh/authorized_keys # 公鑰文件路徑
然后重啟sshd服務(wù)
[root@hdp-node-04 .ssh]# service sshd restart
B、生成ssh免登陸密鑰
#進(jìn)入到我的home目錄
[hadoop@hdp-node-01 hadoop]$ cd ~/.ssh
[hadoop@hdp-node-01 .ssh]$ ssh-keygen -t rsa (四個(gè)回車(chē))
執(zhí)行完這個(gè)命令后,會(huì)生成兩個(gè)文件id_rsa(私鑰)、id_rsa.pub(公鑰)
將公鑰拷貝到要免密登陸的目標(biāo)機(jī)器上
[hadoop@hdp-node-01 .ssh]$ cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
[hadoop@hdp-node-01 .ssh]$ ssh-copy-id hadoop@hdp-node-01
[hadoop@hdp-node-01 .ssh]$ssh-copy-id hadoop@hdp-node-02
[hadoop@hdp-node-01 .ssh]$ssh-copy-id hadoop@hdp-node-03
[hadoop@hdp-node-01 .ssh]$ssh hadoop@hdp-node-02
與本機(jī)完成免密登錄,將authorized_keys權(quán)限改成600
---------------------------
ssh免登陸:
生成key:
---------------------------
ssh免登陸:
生成key:
ssh-keygen
復(fù)制從A復(fù)制到B上:
ssh-copy-id B
驗(yàn)證:
ssh localhost/exit,ps -e|grep ssh
ssh A #在B中執(zhí)行
?
?8:測(cè)試:
? 1、查看集群狀態(tài)命令:
hdfs dfsadmin -report ?
2、上傳文件到HDFS從本地上傳一個(gè)文本文件到hdfs的/wordcount/input目錄下
[HADOOP@hdp-node-01 ~]$ HADOOP fs -mkdir -p /wordcount/input
[HADOOP@hdp-node-01 ~]$ HADOOP fs -put /home/HADOOP/somewords.txt /wordcount/input
上一篇: {大數(shù)據(jù)}HDFS詳解