標籤:

spark(hadoop搭建)

把原先搭建的集群環境給刪除了,自己重新搭建了一次,將筆記整理在這裡,方便自己以後查看

第一步:安裝主節點spark1

第一個節點:centos虛擬機安裝,全名spark1,用戶名hadoop,密碼123456 ,虛擬機名稱spark1

第二步:配置yum源

需經常使用yum安裝軟體,使用國內網易源速度更快

[root@localhost ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup #備份CentOS-Base.repo.注意是在root用戶下[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo #創建CentOS-Base.repo文件並根據對應版本添加保存文件內容使用以下命令生成緩存[root@localhost yum.repos.d]# yum clean all [root@localhost yum.repos.d]# yum makecache

配置yum源lug.ustc.edu.cn/wiki/mi

第三步:克隆兩個從節點spark2、spark3

第二個節點:全名spark2 用戶名hadoop

第三個節點:全名spark3 用戶名hadoop

到這裡就將spark1、spark2、spark3三個節點初步安裝好了

第四步:網卡配置

  • 查看網卡信息

[root@localhost ~]# ifconfig #spark1節點網卡名稱是eth0[root@localhost ~]# ifconfig #spark2節點網卡名稱是eth1[root@localhost ~]# ifconfig #spark3節點網卡名稱是eth1

  • 記錄自動生成的網卡信息方便修改

spark1

inet addr:192.168.220.144 HWaddr:00:0C:29:01:07:7D Bcast: 192.168.220.255 Mask: 255.255.255.0

spark2

inet addr:192.168.220.145 HWaddr 00:0C:29:08:D6:45 Bcast:192.168.220.255 Mask: 255.255.255.0

spark3:

inet addr:192.168.220.146 HWaddr 00:0C:29:6D:E1:EC Bcast:192.168.220.255 Mask:255.255.255.0

  • 修改配置

[root@localhost ~]# cd /etc/sysconfig/network-scripts #進入網卡配置信息目錄[root@localhost network-scripts]# ls #查看該目錄下的文件,可以看到三個節點下都同一個文件ifcfg-eth0[root@localhost network-scripts]# cat ifcfg-eth0 #查看默認網卡配置信息,三個節點一樣[root@localhost network-scripts]# mv ifcfg-eth0 ifcfg-eth1 #修改spark2、spark3節點該目錄下的網卡配置文件名稱為ifcfg-eth1

  • spark1節點網卡配置

DEVICE="eth0"BOOTPROTO="static" #這裡將dhcp修改成了staticHWADDR="00:0C:29:01:07:7D" IPV6INIT="yes"NM_CONTROLLED="yes"ONBOOT="yes"TYPE="Ethernet"UUID="6de4fbd4-af89-44ac-a477-61847c560758"IPADDR=192.168.220.144 #新增NETMASK=255.255.255.0 #新增GATEWAY=192.168.220.2 #新增DNS1=192.168.220.2 #新增

[root@localhost ~]# ping www.baidu.com #看能否ping通

  • spark2節點網卡配置

DEVICE="eth1" #修改BOOTPROTO="static" #修改HWADDR="00:0C:29:08:D6:45" #修改IPV6INIT="yes"NM_CONTROLLED="yes"ONBOOT="yes"TYPE="Ethernet"UUID="6de4fbd4-af89-44ac-a477-61847c560758"IPADDR=192.168.220.145 #新增NETMASK=255.255.255.0 #新增GATEWAY=192.168.220.2 #新增DNS1=192.168.220.2 #新增

  • spark3節點網卡配置

DEVICE="eth1" #eth0修改成eth1BOOTPROTO="static" #修改成staticHWADDR="00:0C:29:6D:E1:EC" #對應節點修改IPV6INIT="yes"NM_CONTROLLED="yes"ONBOOT="yes"TYPE="Ethernet"UUID="6de4fbd4-af89-44ac-a477-61847c560758"IPADDR=192.168.220.146 #新增NETMASK=255.255.255.0 #新增GATEWAY=192.168.220.2 #新增DNS1=192.168.220.2 #新增

自己三個節點雖然全能連外網了了,但搞了很久,有待驗證

第五步:修改主機名

[root@localhost ~]# vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=spark1 #對應節點修改,其他兩個節點分別修改成spark2和spark3[root@localhost ~]# shutdown -r now #重啟

第六步:修改hosts文件

[root@spark1 ~]# vi /etc/hosts ##其他兩個節點也修改成以下這樣.增加集群點名稱和ip的映射關係192.168.220.144 spark1192.168.220.145 spark2192.168.220.146 spark3

第七步:檢查配置(三個節點都檢查)

  • 確認主機名

[root@spark1 ~]# uname –n

spark1

  • 確認IP地址

[root@spark1 ~]# hostname --ip-address

192.168.220.144

  • 確認可以相互ping通

[root@spark1 ~]# ping spark1 -c 3[root@spark1 ~]# ping spark2 -c 3[root@spark1 ~]# ping spark3 -c 3

第八步:建立集群間ssh無密碼登陸

  • ssh 無密碼登陸本機(三個節點都需要)

[root@spark1 ~]# ssh spark1 #執行該命令將產生目錄/root/.ssh。ssh-keygen命令默認會將公鑰放在/root/.ssh目錄下[root@spark1 ~]# cd ~/.ssh #進入到該目錄下[root@spark1 .ssh]# ssh-keygen -t rsa #生成本機公鑰。一直按回車鍵[root@spark1 .ssh]# cat id_rsa.pub >> authorized_keys #加入授權。此時使用ssh連接本機就不需要輸入密碼了

  • 兩兩節點之間實現ssh無密碼登陸

[root@spark1 ~]# ssh-copy-id -i spark2 #spark1 ssh無密碼登陸spark2[root@spark1 ~]# ssh-copy-id -i spark3 #spark1 ssh無密碼登陸spark3[root@spark2 .ssh]# ssh-copy-id -i spark1 #spark2 ssh無密碼登陸spark1[root@spark2 .ssh]# ssh-copy-id -i spark3 #spark2 ssh無密碼登陸spark3[root@spark3 .ssh]# ssh-copy-id -i spark1 #spark3 ssh無密碼登陸spark1[root@spark3 .ssh]# ssh-copy-id -i spark2 #spark3 ssh無密碼登陸spark2[root@spark2 ~]# exit #exit命令退出登陸

第九步:jdk1.8安裝

[root@spark1 ~]# mkdir /usr/java ##新建目錄,將需要安裝的軟體都放入該目錄[root@spark1 java]# chmod u+x #增加許可權 jdk-8u77-linux-x64.tar.gz[root@spark1 java]# tar -zxvf #解壓 jdk-8u77-linux-x64.tar.gz[root@spark1 java]# mv jdk1.8.0_77 jdk1.8 #重命名[root@spark1 java]# vi /etc/profile #三個節點都是這樣配置# environment variablesexport JAVA_HOME=/usr/java/jdk1.8export PATH=$PATH:$JAVA_HOME/bin[root@spark1 ~]# source /etc/profile[root@spark1 ~]# java -version[root@spark1 usr]# scp -r java root@spark2:/usr/[root@spark1 usr]# scp -r java root@spark3:/usr/[root@spark2 ~]# source /etc/profile #配置完spark2節點的環境變數使其生效[root@spark3 ~]# source /etc/profile #同上[root@spark1 ~]# java -version #驗證三個節點的java是否安裝成功

第十步:hadoop-2.6.0安裝

[root@spark1 ~]# mkdir /usr/hadoop #將要安裝hadoop上傳到該目錄[root@spark1 hadoop]# chmod u+x hadoop-2.6.0.tar.gz #增加許可權[root@spark1 hadoop]# tar -zxvf hadoop-2.6.0.tar.gz #解壓[root@spark1 hadoop]# vi /etc/profile #配置環境變數export HADOOP_HOME=/usr/hadoop/hadoop-2.6.0 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin[root@spark1 hadoop]# source /etc/profile #是環境變數生效[root@spark1 hadoop]# which hadoop[root@spark1 hadoop-2.6.0]# mkdir tmp[root@spark1 hadoop-2.6.0]# mkdir dfs[root@spark1 dfs]# mkdir data[root@spark1 dfs]# mkdir name[root@spark1 hadoop-2.6.0]# cd etc/hadoop #進入該目錄進行文件配置

第十一步:文件配置

core-site.xml

[root@spark1 hadoop]# vi core-site.xml #增加以下內容 hadoop.tmp.dirfile:/usr/hadoop/hadoop-2.6.0/tmp Abase for other temporary directories.fs.defaultFShdfs://spark1:9000

hadoop-env.sh

[root@spark3 hadoop]# vi hadoop-env.sh# The java implementation to use.export JAVA_HOME=/usr/java/jdk1.8

hdfs-site.xml

[root@spark1 hadoop]# vi hdfs-site.xmldfs.namenode.secondary.http-addressspark1:50090dfs.namenode.name.dirfile:/usr/hadoop/hadoop-2.6.0/dfs/namedfs.datanode.data.dirfile:/usr/hadoop/hadoop-2.6.0/dfs/datadfs.replication3

mapred-site.xml

[root@spark1 hadoop]# mv mapred-site.xml.template mapred-site.xmlmapreduce.framework.nameyarnmapreduce.jobhistory.addressspark1:10020mapreduce.jobhistory.webapp.addressspark1:19888

yarn-site.xml

[root@spark1 hadoop]# vi yarn-site.xmlyarn.resourcemanager.hostnamespark1 yarn.nodemanager.aux-servicesmapreduce_shuffle

slaves

[root@spark1 hadoop]# vi slavesspark1spark2spark3

將hadoop-2.6.0傳到spark2和spark3節點

[root@spark1 hadoop]# scp -r /usr/hadoop root@spark2:/usr[root@spark1 hadoop]# scp -r /usr/hadoop root@spark3:/usr

將配置文件/etc/profile傳到spark2和spark3節點並執行source /etc/profile 命令使其生效

[root@spark1 ~]# scp /etc/profile root@spark2:/etc/[root@spark1 ~]# scp /etc/profile root@spark3:/etc/[hadoop@spark1 hadoop-2.6.0]$ ./bin/hadoop version #驗證是否安裝成功,安裝成功會出現hadoop版本信息。有其他兩個一樣驗證

關閉防火牆

[root@spark1 hadoop-2.6.0]# service iptables stop # 關閉防火牆服務,三個節點都關閉[root@spark1 hadoop-2.6.0]# chkconfig iptables off # 禁止防火牆開機自啟,就不用手動關閉了

格式化

[root@spark1 hadoop-2.6.0]# hdfs namenode -format #格式化成功後如下圖

啟動hdfs集群

[root@spark1 hadoop-2.6.0]# start-dfs.sh #啟動hdfs集群

是否啟動成功

spark1:namenode、datanode、secondarynamenode

spark2:datanode

spark3:datanode

[root@spark1 hadoop-2.6.0]# stop-dfs.sh #停止

啟動yarn計算平台

[root@spark1 hadoop-2.6.0]# start-yarn.sh #啟動yarn計算平台

是否啟動成功

spark1:resourcemanager、nodemanager

spark2:nodemanager

spark3:nodemanager

[root@spark1 hadoop-2.6.0]# stop-yarn.sh #停止

可以兩個一起啟動

[root@spark1 hadoop-2.6.0]# start-all.sh #兩個一起啟動

檢驗

[root@spark1 hadoop-2.6.0]# hdfs dfsadmin -report # 查看Datanode是否啟動成功注意:如果 Live datanodes 不為 0 ,則說明集群啟動成功

可通過50070埠驗證集群是否啟動成功:spark1:50070/

可通過8088埠驗證計算平台是否啟動成功:spark1:8088/

推薦閱讀:

Spark可以完全替代hadoop嗎?
既然Spark比Hadoop性能好很多,Hadoop未來發展方向是什麼?
Hadoop 一般用在哪些業務場景?
大數據實驗手冊怎麼自己搭環境?
Apache kylin進階——配置篇

TAG:Hadoop |