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源https://lug.ustc.edu.cn/wiki/mirrors/help/centos
第三步:克隆兩個從節點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、secondarynamenodespark2:datanodespark3:datanode
[root@spark1 hadoop-2.6.0]# stop-dfs.sh #停止
啟動yarn計算平台
[root@spark1 hadoop-2.6.0]# start-yarn.sh #啟動yarn計算平台
是否啟動成功
spark1:resourcemanager、nodemanagerspark2:nodemanagerspark3: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埠驗證集群是否啟動成功:http://spark1:50070/
可通過8088埠驗證計算平台是否啟動成功:http://spark1:8088/
推薦閱讀:
※Spark可以完全替代hadoop嗎?
※既然Spark比Hadoop性能好很多,Hadoop未來發展方向是什麼?
※Hadoop 一般用在哪些業務場景?
※大數據實驗手冊怎麼自己搭環境?
※Apache kylin進階——配置篇
TAG:Hadoop |