免密登录配置
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>