文章標題

                    Spark集羣安裝用戶手冊

1. 安裝虛擬機,安裝centos7(liunx操作系統)虛擬機取名爲CDHNode1
2. 爲centos7操作系統設置靜態ip
2.1虛擬機網絡適配器採用橋接方法

2.2配置DNS:
修改 /etc/resolv.conf 文件,添加如下代碼:
nameserver 192.168.1.101
2.3.配置固定IP地址:
修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件,該文件全部代碼如下:

設置靜態ip完成(虛擬機克隆時只需要改一下ip)克隆虛擬機至五個(192.168.1.101 192.168.1.102 192.168.1.103 192.168.1.104 192.168.1.105)
2.3修改對應的主機名CDHNode1至CDHNode5
Vim etc/sysconfig/network

3.使用Xshell遠程連接centos系統
3.1、首先點擊新建按鈕,如下;在新建會話屬性對話框中輸入名稱和需要連接的主機ip地址。

3.2、接下來點擊左側的用戶身份驗證,輸入要登錄主機的用戶名和密碼,點擊確定,此時創建成功。

3.3 4、此時連接成功,即可進行遠程操作

3.4依次連接CDHNode1到CDNode5

3.5:同步各主機的時間

a. 使用data設置日期時間
b. date –s 09/31/17 設置日期爲2017年09月31日
c. date –s 13:48:59

  1. 配置ssh免密登錄
    接上面的配置,我們已經使用Xshell遠程登錄上五個節點。下面我們就配置免密碼登錄hadoop用戶,如果你使用root用戶登錄的,需要先切換到hadoop用戶,使用 su hadoop命令切換。步驟如下:
    3.1、首先切換到hadoop的家目錄下,使用cd /home/hadoop命令來切換。然後在hadoop家目錄下創建 .ssh目錄。

3.2然後生成hadoop用戶的rsa(非對稱加密算法),運行如下命令後,一直回車,即可生成hadoop的公鑰和私鑰 shh –keygen –t rsa

3.3 切換到 .ssh目錄下,即可看到已經生成的公鑰和私鑰。

3.4 按照上面的步驟,在所有節點上生成公鑰和私鑰,接下來需要把所有節點的公鑰發到CDHNode1節點的授權文件。如下圖,我們使用Xshell最下方的撰寫欄向所有節點發送ssh-copy-id CDHNode1命令。

3.5 可以查看CDHNode1節點的授權文件authorized_keys中是否把所有節點的公鑰都添加到此文件中,若有節點沒有加入,則可以使用上一步命令重新添加。

3.6然後我們就把這個文件拷貝到其他節點的.ssh目錄下

CDHNode3、CDHNode4、CDHNode5按照上述命令自己執行。注意,這個命令是在CDHNode1節點上執行的。
3.7根據下圖,可以看到CDHNode5下已經複製了一份authorized_keys文件。下面以CDHNode5爲例,修改.ssh目錄以及.ssh目錄下的文件的權限。其他節點按照如下步驟 一 一 修改

3.8修改好權限後,至此ssh配置成功,可以使用ssh測試是否配置成功,第一次使用ssh連接其他節點時需要輸入yes,退出使用exit命令,在第二次登陸時,就不需要在輸入,如下圖直接登陸並顯示最後登錄時間

提示:rsa非對稱加密算法是把公鑰發送個對方,對方使用公鑰對數據進行加密後,自己在使用私鑰對數據進行解密。
免密碼登錄的原理:
1. 需要依靠密鑰,也就是自己創建的一對密鑰,並把公鑰放到需要訪問的服務器上。
2. 如果你需要連接SSH服務器,客戶端軟件就會向服務器發出請求,請求用你的密鑰進行安全驗證。
3. 服務器收到請求後,現在該服務器上的主目錄下尋找你的公鑰,然後把它和你發送過來的公鑰進行比較。如果兩個密鑰一致,服務端就用公鑰加密“質詢”(challenge),並把它發送給客戶端軟件。
4. 客戶端收到“質詢”後,就用你的私鑰進行解密。再把它發送個服務器。
5. 服務器比較發送來的“質詢”和原先的是否一致,如果一致則進行授權,完成建立會話的操作。
腳本工具的使用
此處使用腳本文件的目的是爲了簡化安裝步驟,畢竟有五個節點,如果全部使用命令一個一個操作,太費時費力了。爲了簡化操作,我們使用腳本文件來幫助我們執行多個重複的命令。就就相當於windows的批處理,把所有的命令集中起來,一個命令完成多個操作。
下面我們在CDHNode1節點上新建三個文件,deploy.conf(配置文件),deploy.sh(實現文件複製的shell腳本文件),runRemoteCdm.sh(在遠程節點上執行命令的shell腳本文件)。
1、我們把三個文件放到/home/hadoop/tools目錄下,先創建此目錄
[hadoop@CDHNode1 ~]mkdir/home/hadoop/tools2tools[hadoop@CDHNode1 ] cd tools
3、首先創建deploy.conf文件
[hadoop@CDHNode1 tools]$ vi deploy.conf

CDHNode1,all,zookeeper,journalnode,namenode,resourcemanager,
CDHNode2,all,slave,zookeeper,journalnode,namenode,datanode,resourcemanager,
CDHNode3,all,slave,zookeeper,journalnode,datanode,nodemanager,
CDHNode4,all,slave,journalnode,datanode,nodemanager,
CDHNode5,all,slave,journalnode,datanode,nodemanager,
先解釋一下這個文件,這個文件就是配置在每個幾點上的功能。比如zookeeper安裝在CDHnode1、CDHnode2、CDHnode3這三個主機上。其他的自己對比查看。
4、創建deploy.sh文件
[hadoop@CDHNode1 tools]$ vi deploy.sh

!/bin/bash

set -x

if [ $# -lt 3 ]
then
echo “Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag”
echo “Usage: ./deply.sh srcFile(or Dir) descFile(or Dir) MachineTag confFile”
exit
fi

src=1dest= 2
tag=3if[a 4’a’ == ‘aa’ ]
then
confFile=/usr/hadoop/tools/deploy.conf
else
confFile=$4
fi

if [ -f confFile]thenif[f src ]
then
for server in cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'
do
scp src server”:”destdoneelif[d src ]
then
for server in cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'
do
scp -r src server”:”${dest}
done
else
echo “Error: No source file exist”
fi

else
echo “Error: Please assign config file or run deploy.sh command with deploy.conf in same directory”
fi

5、創建 runRemoteCmd.sh 腳本文件
[hadoop@CDHNode1 tools]$ vi runRemoteCmd.sh

!/bin/bash

set -x

if [ $# -lt 2 ]
then
echo “Usage: ./runRemoteCmd.sh Command MachineTag”
echo “Usage: ./runRemoteCmd.sh Command MachineTag confFile”
exit
fi

cmd=1tag= 2
if [ ‘a’$3’a’ == ‘aa’ ]
then

confFile=/usr/hadoop/tools/deploy.conf
else
confFile=$3
fi

if [ -f $confFile ]
then
for server in cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $1}'
do
echo “*********serverssh server "source /etc/profile; $cmd”
done
else
echo “Error: Please assign config file or run deploy.sh command with deploy.conf in same directory”
fi

6、給腳本文件添加執行權限。
[hadoop@CDHNode1 tools]chmodu+xdeploy.sh[hadoop@CDHNode1tools] chmod u+x runRemoteCmd.sh

7、把tools目錄添加到環境變量PATH中。
[hadoop@CDHNode1 tools]$vi /home/hadoop/.bash_profile
添加下面內容?

tools

export PATH=PATH:/home/hadoop/tools8[hadoop@CDHNode1tools] source /home/hadoop/.bash_profile

9、在CDHNode1節點上,通過runRemoteCmd.sh腳本,一鍵創建所有節點的軟件安裝目錄/home/hadoop/app。
[hadoop@CDHNode1 tools]$ runRemoteCmd.sh “mkdir /home/hadoop/app” all

我們可以在所有節點查看到/home/hadoop/app目錄已經創建成功。

我們先來說一下軟件的安裝步驟:
對於解壓安裝的軟件,安裝步驟爲:
1. 使用rz命令上傳要安裝的文件,此命令只能在遠程連接工具xshell上執行,不能再centos虛擬機上執行
2. 使用tar -zxvf softwarename.tar.gz
3. 修改配置文件(根據需要而定,有時可省略)
4. 在環境變量文件中配置環境變量
5. 使用source 是環境變量文件即時生效。
安裝JDK
首先在CDHNode1上安裝jdk,然後複製到其他節點。
1、上傳使用rz後,找到下載的jdk文件(jdk-7u79-Linux-x64.tar.gz )即可,選擇後就可以上傳,上傳需要時間。
[hadoop@CDHNode1 ~]cd/home/hadoop/app[hadoop@CDHNode1app] rz //選擇本地的下載好的jdk

2、解壓.jdk-8u131-linux-i586.tar.gz
[hadoop@CDHNode1 app]$ tar zxvf jdk-7u79-linux-x64.tar.gz //解壓

3、修改jdk的名字,刪除上傳的壓縮文件.jdk-8u131-linux-i586.tar.gz
[hadoop@CDHNode1 app]mvj.jdk8u131linuxi586.tar.gz[hadoop@CDHNode1app] rm -rf .jdk-8u131-linux-i586.tar.gz

4、配置環境變量
[hadoop@CDHNode1 app]$vi /home/hadoop/.bash_profile

java

export JAVA_HOME=/home/hadoop/app/jdk
export CLASSPATH=.:JAVAHOME/lib: CLASSPATH
export PATH=PATH: JAVA_HOME/bin:$JAVA_HOME/jre/bin

5、使環境變量文件即時生效
[hadoop@CDHNode1 app]$source /home/hadoop/.bash_profile

6、查看是否安裝成功,查看Java版本
[hadoop@CDHNode1 app]# java -version

出現以上結果就說明CDHNode1節點上的jdk安裝成功。
然後將CDHNode1下的jdk安裝包複製到其他節點上。
[hadoop@CDHNode1 app]$ deploy.sh jdk /home/hadoop/app/ slave

CDHNode2、CDHNode3、CDHNode4、CDHNode5加點重複CDHNode1上的jdk配置即可。就是在其他節點上從第4步開始配置。
、安裝Zookeeper
首先在CDHNode1上安裝Zookeeper,然後複製到其他節點。
1、 將本地下載好的zookeeper-3.4.6.tar.gz安裝包,上傳至CDHNode1節點下的/home/hadoop/app目錄下。
[hadoop@CDHNode1 app]$ rz //選擇本地下載好的zookeeper-3.4.8.tar.gz

2、解壓zookeeper-3.4.8.tar.gz
[hadoop@CDHNode1 app]$ tar zxvf zookeeper-3.4.8.tar.gz

3、修改zookeeper的名字,刪除上傳的壓縮文件zookeeper-3.4.8.tar.gz
[hadoop@CDHNode1 app]rmrfzookeeper3.4.6.tar.gz//zookeeper3.4.8.tar.gz[hadoop@CDHNode1app] mv zookeeper-3.4.8 zookeeper //重命名

4、修改Zookeeper中的配置文件。
[hadoop@CDHNode1 app]cd/home/hadoop/app/zookeeper/conf/[hadoop@CDHNode1conf] cp zoo_sample.cfg zoo.cfg //複製一個
hadoop@CDHNode1 conf]$ vi zoo.cfg

添加下面的

The number of milliseconds of each tick

tickTime=2000

The number of ticks that the initial

synchronization phase can take

initLimit=10

The number of ticks that can pass between

sending a request and getting an acknowledgement

syncLimit=5

the directory where the snapshot is stored.

do not use /tmp for storage, /tmp here is just

example sakes.

數據文件目錄與日誌目錄

dataDir=/home/hadoop/data/zookeeper/zkdata
dataLogDir=/home/hadoop/data/zookeeper/zkdatalog

the port at which the clients will connect

clientPort=2181

server.服務編號=主機名稱:Zookeeper不同節點之間同步和通信的端口:選舉端口(選舉leader)

server.1=CDHNode1:2888:3888
server.2=CDHNode2:2888:3888
server.3=CDHNode3:2888:3888

administrator guide before turning on autopurge.

http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

The number of snapshots to retain in dataDir

autopurge.snapRetainCount=3

Purge task interval in hours

Set to “0” to disable auto purge feature

autopurge.purgeInterval=1

5、配置環境變量
[hadoop@CDHNode1 app]vi/home/hadoop/.bashprofileexportZOOKEEPERHOME=/home/hadoop/app/zookeeperexportPATH= PATH:$ZOOKEEPER_HOME/bin

6、使環境變量文件即時生效
[hadoop@CDHNode1 app]$source /home/hadoop/.bash_profile

7、通過遠程命令deploy.sh將Zookeeper安裝目錄拷貝到其他節點(CDHNode2、CDHNode3)上面
[hadoop@CDHNode1 app]$deploy.sh zookeeper /home/hadoop/app/ zookeeper

8、通過遠程命令runRemoteCmd.sh在所有的zookeeper節點(CDHNode1、CDHNode2、CDHNode3)上面創建目錄:
[hadoop@CDHNode1 app]runRemoteCmd.shmkdirp/home/hadoop/data/zookeeper/zkdatazookeeper//[hadoop@CDHNode1app] runRemoteCmd.sh “mkdir -p /home/hadoop/data/zookeeper/zkdatalog” zookeeper //創建日誌目錄

9、然後分別在CDHNode1、CDHNode2、CDHNode3上面,進入zkdata目錄下,創建文件myid,裏面的內容分別填充爲:1、2、3, 這裏我們以CDHNode1爲例。
[hadoop@CDHNode1 app]cd/home/hadoop/data/zookeeper/zkdata[hadoop@CDHNode1zkdata] vi myid
//輸入數字1
CDHNode2輸入數字2、CDHNode3輸入數字3。

10、在CDHNode2、CDHNode3上面配置Zookeeper環境變量。按照第5、6步配置。

11、使用runRemoteCmd.sh 腳本,啓動所有節點(CDHNode1、CDHNode2、CDHNode3)上面的Zookeeper。

[hadoop@CDHNode1 zkdata]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh start” zookeeper

12、查看所有節點上面的QuorumPeerMain進程是否啓動。
[hadoop@CDHNode1 zkdata]$ runRemoteCmd.sh “jps” zookeeper

13、查看所有Zookeeper節點狀態。

[hadoop@CDHNode1 zkdata]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh status” zookeeper

如果一個節點爲leader,另2個節點爲follower,則說明Zookeeper安裝成功。

安裝hadoop
首先在CDHNode1上安裝hadoop,然後複製到其他節點。
1、 將本地下載好的hadoop-2.7.3.tar.gz安裝包,上傳至CDHNode1節點下的/home/hadoop/app目錄下。
[hadoop@CDHNode1 app]$ rz //選擇本地下載好的hadoop-2.7.3.tar.gz

2、 解壓hadoop-2.7.3.tar.gz

[hadoop@CDHNode1 app]$ tar zxvf hadoop-2.7.3.tar.gz //解壓

3、 修改hadoop的名字,刪除上傳的壓縮文件hadoop-2.7.3.tar.gz
[hadoop@CDHNode1 app]rmrfhadoop2.6.0cdh5.4.5.tar.gz//[hadoop@CDHNode1app] mv hadoop-2.6.0 hadoop //重命名

4、 配置環境變量
[hadoop@CDHNode1 app]$vi /home/hadoop/.bash_profile
添加

hadoop_home 2.7.3 path

HADOOP_HOME=/home/hadoop/app/hadoop
PATH=HADOOPHOME/bin: PATH
export HADOOP_HOME PATH

5、 使環境變量文件即時生效
[hadoop@CDHNode1 app]$source /home/hadoop/.bash_profile

6、 切換到/home/hadoop/app/hadoop/etc/hadoop/目錄下,修改配置文件。
[hadoop@CDHNode1 app]cd/home/hadoop/app/hadoop/etc/hadoop/HDFShadoopenv.sh[hadoop@CDHNode1hadoop] vi hadoop-env.sh
export JAVA_HOME=/home/hadoop/app/jdk

配置core-site.xml
[hadoop@CDHNode1 hadoop]$ vi core-site.xml


fs.defaultFS
hdfs://cluster1



hadoop.tmp.dir
/home/hadoop/data/tmp



ha.zookeeper.quorum
CDHNode1:2181,CDHNode2:2181,CDHNode3:2181,CDHNode4:2181,CDHNode5:2181

配置hdfs-site.xml
[hadoop@CDHNode1 hadoop]$ vi hdfs-site.xml


dfs.replication
3



dfs.permissions
false


dfs.permissions.enabled
false



dfs.nameservices
cluster1



dfs.ha.namenodes.cluster1
CDHNode1,CDHNode2



dfs.namenode.rpc-address.cluster1.CDHNode1
CDHNode1:9000



dfs.namenode.http-address.cluster1.CDHNode1
CDHNode1:50070



dfs.namenode.rpc-address.cluster1.CDHNode2
CDHNode2:9000



dfs.namenode.http-address.cluster1.CDHNode2
CDHNode2:50070



dfs.ha.automatic-failover.enabled
true



dfs.namenode.shared.edits.dir
qjournal://CDHNode1:8485;CDHNode2:8485;CDHNode3:8485;CDHNode4:8485;CDHNode5:8485/cluster1



dfs.client.failover.proxy.provider.cluster1
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider



dfs.journalnode.edits.dir
/home/hadoop/data/journaldata/jn



dfs.ha.fencing.methods
shell(/bin/true)


dfs.ha.fencing.ssh.private-key-files
/home/hadoop/.ssh/id_rsa


dfs.ha.fencing.ssh.connect-timeout
10000



dfs.namenode.handler.count
100

配置 slave
[hadoop@CDHNode1 hadoop]$ vi slaves

CDHNode3

CDHNode4

CDHNode5

YARN安裝配置
配置mapred-site.xml
[hadoop@CDHNode1 hadoop]$ vi mapred-site.xml


mapreduce.framework.name
yarn

<– 指定運行mapreduce的環境是Yarn,與hadoop1不同的地方 –>

配置yarn-site.xml
[hadoop@CDHNode1 hadoop]$ vi yarn-site.xml



yarn.resourcemanager.connect.retry-interval.ms
2000



yarn.resourcemanager.ha.enabled
true



yarn.resourcemanager.ha.automatic-failover.enabled
true



yarn.resourcemanager.ha.automatic-failover.embedded
true


yarn.resourcemanager.cluster-id
yarn-rm-cluster



yarn.resourcemanager.ha.rm-ids
rm1,rm2



yarn.resourcemanager.hostname.rm1
CDHNode1



yarn.resourcemanager.hostname.rm2
CDHNode2



yarn.resourcemanager.recovery.enabled
true



yarn.resourcemanager.zk.state-store.address
CDHNode1:2181,CDHNode2:2181,CDHNode3:2181,CDHNode4:2181,CDHNode5:2181



yarn.resourcemanager.zk-address
CDHNode1:2181,CDHNode2:2181,CDHNode3:2181,CDHNode4:2181,CDHNode5:2181



yarn.resourcemanager.address.rm1
CDHNode1:8032



yarn.resourcemanager.scheduler.address.rm1
CDHNode1:8034



yarn.resourcemanager.webapp.address.rm1
CDHNode1:8088



yarn.resourcemanager.address.rm2
CDHNode2:8032



yarn.resourcemanager.scheduler.address.rm2
CDHNode2:8034



yarn.resourcemanager.webapp.address.rm2
CDHNode2:8088



yarn.nodemanager.aux-services
mapreduce_shuffle


yarn.nodemanager.aux-services.mapreduce_shuffle.class
org.apache.hadoop.mapred.ShuffleHandler


向所有節點分發hadoop安裝包。
[hadoop@CDHNode1 app]$ deploy.sh hadoop /home/hadoop/app/ slave

建立好目錄(用於存放數據的目錄):
runRemoteCmd.sh “mkdir -p /home/hadoop/data/name” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/hdfs/edits” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/datanode” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/journaldata/jn” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/tmp” all
runRemoteCmd.sh “touch /home/hadoop/app/hadoop/etc/hadoop/excludes” all
runRemoteCmd.sh “mkdir -p /home/hadoop/data/pid” all

當你的在初始化工程中出錯,要把相關目錄的文件刪除,然後再重新初始化

rm -rf /home/hadoop/data/name/*
rm -rf /home/hadoop/data/hdfs/edits/*
rm -rf /home/hadoop/data/datanode/*
rm -rf /home/hadoop/data/journaldata/jn/*
rm -rf /home/hadoop/data/tmp/*

集羣初始化
1、啓動所有節點上面的Zookeeper進程
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh start” zookeeper

2、啓動所有節點上面的journalnode進程
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode” all

2、 首先在主節點上(比如,CDHNode1)執行格式化
[hadoop@CDHNode1 hadoop]bin/hdfsnamenodeformat//namenode[hadoop@CDHNode1hadoop] bin/hdfs zkfc -formatZK //格式化高可用
[hadoop@CDHNode1 hadoop]$bin/hdfs namenode //啓動namenode

注意:執行完上述命令後,程序就會在等待狀態,只有執行完下一步時,利用按下ctrl+c來結束namenode進程。

4、與此同時,需要在備節點(比如 CDHNode2)上執行數據同步
注意:同時是在執行完上一步後,上一步程序停止的情況下執行此步驟的
[hadoop@CDHNode2 hadoop]$ bin/hdfs namenode -bootstrapStandby //同步主節點和備節點之間的元數據

5、CDHNode2同步完數據後,緊接着在CDHNode1節點上,按下ctrl+c來結束namenode進程。 然後關閉所有節點上面的journalnode進程
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh stop journalnode” all //然後停掉各節點的journalnode

6、如果上面操作沒有問題,我們可以一鍵啓動hdfs所有相關進程
[hadoop@CDHNode1 hadoop]$ sbin/start-dfs.sh
啓動成功之後,查看關閉其中一個namenode ,然後在啓動namenode 觀察切換的狀況

7、驗證是否啓動成功
通過web界面查看namenode啓動情況。

啓動成功之後,查看關閉其中一個namenode ,然後在啓動namenode 觀察切換的狀況
使用命令 kill

上傳文件至hdfs
[hadoop@CDHNode1 hadoop]via.txt//a.txthadoopCDHhelloworldCDHhadoop[hadoop@CDHNode1hadoop] hdfs dfs -mkdir /test //在hdfs上創建一個文件目錄
[hadoop@CDHNode1 hadoop]hdfsdfsputdjt.txt/test//hdfs[hadoop@CDHNode1hadoop] hdfs dfs -ls /test //查看a.txt是否上傳成功

如果上面操作沒有問題說明hdfs配置成功。

啓動YARN
1、在CDHNode1節點上執行。
[hadoop@CDHNode1 hadoop]$ sbin/start-yarn.sh

2、在CDHNode2節點上面執行。
[hadoop@CDHNode2 hadoop]$ sbin/yarn-daemon.sh start resourcemanager

同時打開一下web界面。
http://192.168.1.101:8088

http://192.168.1.102:8088

關閉1 再啓動

集羣關啓順序
關閉YARN
a、在CDHNode2節點上面執行

hadoop@CDHNode2 hadoop]$ sbin/yarn-daemon.sh stop resourcemanager

b、在CDHNode1節點上執行
[hadoop@CDHNode1 hadoop]$ sbin/stop-yarn.sh

c、關閉HDFS
hadoop@CDHNode1 hadoop]$ sbin/stop-dfs.sh

d、關閉zookeeper
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh stop” zookeeper

再次啓動集羣
a、啓動zookeeper
[hadoop@CDHNode1 hadoop]$ runRemoteCmd.sh “/home/hadoop/app/zookeeper/bin/zkServer.sh start” zookeeper

b、啓動HDFS
[hadoop@CDHNode1 hadoop]$ sbin/start-dfs.sh

c、在CDHNode1節點上執行
[hadoop@CDHNode1 hadoop]$ sbin/start-yarn.sh

d、在CDHNode2節點上面執行
[hadoop@CDHNode2 hadoop]$ sbin/yarn-daemon.sh start resourcemanager

至此,hadoop 分佈式集羣搭建完畢
安裝spark集羣
1. 按照上面的步驟安裝scala
[hadoop@CDHNode1 app]rz//scala2.12.3.tgz[hadoop@CDHNode1app] tar zxvf scala-2.12.3.tgz
[hadoop@CDHNode1 app]rmrfscala2.12.3.tgz[hadoop@CDHNode1app] mv scala-2.12.3 scala

  1. 配置scala
    配置環境變量
    [hadoop@cdhnode1 app]$ vim /home/hadoop/.bash_profile

set scala

export SCALA_HOME=/home/hadoop/app/scala
export PATH=SCALAHOME/bin: PATH

立即生效環境變量的配置
Source /home/Hadoop/.bash_profile

進入scala命令行

向其他節點分發安裝包
[hadoop@CDHNode1 app]deploy.shscala/home/hadoop/app/slavespark1./home/Hadoop/app2.spark[hadoop@cdhnode1app] vim /home/hadoop/.bash_profile
添加
export SPARK_HOME=/home/hadoop/app/spark
export PATH=SPARKHOME/bin: PATH

立即生效環境變量的配置
Source /home/Hadoop/.bash_profile

配置spark-env.sh
[hadoop@cdhnode1 app]cdspark/conf/[hadoop@cdhnode1conf] vim spark-env.sh

添加如下內容

set enviroment

export JAVA_HOME=/home/hadoop/app/jdk
export SCALA_HOME=/home/hadoop/app/scala
export SPARK_MASTER_IP=192.168.1.101
export SPARK_WORKER_MEMORY=2g
export HADOOP_CONF_DIR=/home/hadoop/app/hadoop/etc/Hadoop

配置slaves
[hadoop@cdhnode1 conf]$ vim slaves

添加
CDHNode1
CDHNode2
CDHNode3
CDHNode4
CDHNode5

在啓動hadoop的基礎上啓動spark
[hadoop@cdhnode1 spark]$ sbin/start-all.sh

Spark安裝完成。

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