免密登錄配置
1 所有節點生成密鑰
<code>-t rsa
ls
-atrl
/<code>
.ssh文件夾目錄說明:
id_rsa:私鑰
id_rsa.pub:公鑰
2 主節點生成認證文件
<code>cat .ssh/id_rsa.pub >> .ssh/authorized_keysdo
iin
{1
..2
}; ssh192.168
.23.22
$i cat .ssh/id_rsa.pub >> .ssh/authorized_keys; done ssh192.168
.23.216
cat .ssh/id_rsa.pub >> .ssh/authorized_keys;do
iin
{1
..2
}; scp .ssh/authorized_keys pjb@192.168.23
.22
$i:/home/pjb/
.ssh/authorized_keys done scp .ssh/authorized_keys pjb@192.168.23
.216
:/home/pjb/
.ssh/authorized_keys/<code>
3 所有節點授權
<code>chmod
-R
700
.ssh
chmod
-R
600
.ssh/authorized_keys
ssh
192.168
.23
.222
/<code>
zookeeper集群搭建
1 下載
zookeeper官網:https://zookeeper.apache.org/releases.html
zookeeper安裝包:apache-zookeeper-3.5.7-bin.tar.gz
2 上傳服務器
將zookeeper安裝包上傳到各個節點:192.168.23.221-223
3 安裝
1)準備工作
<code>#解壓tar
-zxvf
apache-zookeeper-3
.5
.7-bin
.tar
.gz
cd
apache-zookeeper-3
.5
.7-bin
#創建數據和日誌目錄mkdir
data
mkdir
logs
#複製生成zoo
.cfg
文件cd
conf
cp
zoo_sample
.cfg
zoo
.cfg
/<code>
2)修改zoo.cfg文件
<code>dataDir
=/home/pjb/bigdata/apache-zookeeper-3.5
.7
-bin/datadataLogDir
=/home/pjb/bigdata/apache-zookeeper-3.5
.7
-bin/logsserver.1
=KUD01:2888
:3888
server.2
=KUD02:2888
:3888
server.3
=KUD03:2888
:3888
/<code>
3)創建myid文件
根據zoo.cfg中各個節點配置myid信息,即:server.myid編號,在各個節點的data目錄下創建myid文件
<code>cd
/home/pjb/bigdata/apache-zookeeper-3.5.7-bin/dataecho
1 >> myid /<code>
4)啟動
在各個節點執行
<code>cd /home/pjb/bigdata/apache-zookeeper-3.5.7-bin/bin ./zkServer.shstart
./zkServer.shstatus
/<code>
spark集群規格
1 下載
spark官網:http://spark.apache.org/
spark安裝包:spark-2.4.5-bin-hadoop2.7.tgz
2 安裝配置
1)修改spark-env.sh文件
<code>export
JAVA_HOME=/usr/java/jdk1.8.0_172export
SPARK_DAEMON_JAVA_OPTS=" -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=KUD01,KUD02,KUD03 -Dspark.deploy.zookeeper.dir=/spark-info"
/<code>
2)將spark-env.sh複製到其他所有節點
3)啟動主節點(192.168.23.221)
<code>cd
/home/pjb/bigdata/spark-2.4.5-bin-hadoop2.7/sbin ./start-all.sh/<code>
4)啟動備份主節點(192.168.23.216)
<code>cd
/home/pjb/bigdata/spark-2.4.5-bin-hadoop2.7/sbin ./start-master.sh/<code>
5)驗證
主節點:http://192.168.23.221:8080/
備份主節點:http://192.168.23.216:8080/
提交一個spark應用到spark集群運行
<code>cd /home/pjb/bigdata/spark-2.4
.5
-bin-hadoop2.7
./bin/spark-submit --master spark:/
/KUD01:7077
,HSlave02:7077
--class
org
.apache
.spark
.examples
.SparkPi
--executor
-memory
2048mb
--total
-executor
-cores
12examples
/jars
/spark
-examples_2
.11-2.4.5.jar
1000/<code>
--executor-memory 每個executor使用的內存大小
--total-executor-cores 整個app使用的核數
運行spark shell
spark-shell是一個交互式的命令行,裡面可以寫spark程序,方便學習和測試,它也是一個客戶端,用於提交spark應用程序
1 local模式
<code>/bigdata/spark-2.4.5-bin-hadoop2.7/bin/spark-shell /<code>
上面的方式沒有指定master的地址,即用的是spark的local模式運行的(模擬的spark集群運行的過程)
2 集群模式
<code>/bigdata/spark-2.4.5-bin-hadoop2.7/bin/spark-shell --master spark:/
/KUD01:7077
,192.168
.23
.216
:7077
/<code>
上面是指定了master的地址,那麼就會將任務提交到集群,開始時sparksubmit(客戶端)要連接Master,並申請計算資源(內存和核數),Master進行資源調度(就是讓那些Worker啟動Executor),在準備工作時,這些進程都已經創建好了
3 完成WordCount
<code>sc
.textFile
("hdfs://KUD01:9000/spark/test"
).flatMap
(_.split(" "
)).map
((_,1
)).reduceByKey
(_+_).sortBy
(_._2,false).collect
/<code>