前提:JDK1.8,无密互通,zookeeper,hadoop
使用服务器列表
master | slave1 | slave2 |
---|---|---|
192.168.3.58 | 192.168.3.54 | 192.168.3.31 |
QuorumPeerMain | QuorumPeerMain | QuorumPeerMain |
NameNode | ||
DataNode | DataNode | DataNode |
JournalNode | JournalNode | JournalNode |
ResourceManager | ||
NodeManager | NodeManager | NodeManager |
DFSZKFailoverController | DFSZKFailoverController | |
Master | ||
Worker | Worker | Worker |
scala
什么是scala(百度百科)
Scala是一门多范式的编程语言,一种类似java的编程语言[1] ,设计初衷是实现可伸缩的语言[2] 、并集成面向对象编程和函数式编程的各种特性。
下载、安装scala
官方下载地址:http://www.scala-lang.org/download/
下载
cd /data
wget https://downloads.lightbend.com/scala/2.12.4/scala-2.12.4.tgz
tar axf scala-2.12.4.tgz
添加环境变量
vim /etc/profile
#scala
export SCALA_HOME=/data/scala-2.12.4
export PATH=$PATH:${SCALA_HOME}/bin
source /etc/profile
检验
scala -version
显示版本信息说明安装成功
spark
什么是spark
官方说明:apache spark is a fast and general engine for large-scale data processing.
渣渣翻译:spark是一个能够快速处理并且通用的大数据计算引擎。
百度百科:Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。
继续百度百科:
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
下载、安装spark
官网:http://spark.apache.org/
这里听从了前辈的建议,使用较最新版本低一两个版本的
cd /data
wget https://www.apache.org/dyn/closer.lua/spark/spark-2.1.2/spark-2.1.2-bin-hadoop2.7.tgz
tar axf spark-2.1.2-bin-hadoop2.7.tgz
添加环境变量
vim /etc/profile
#spack
export SPARK_HOME=/data/spark-2.1.2-bin-hadoop2.7
export PATH=$PATH:${SPARK_HOME}/bin
source /etc/profile
修改配置文件
cd ${SPARK_HOME}/conf
cp fairscheduler.xml.template fairscheduler.xml
cp log4j.properties.template log4j.properties
cp slaves.template slaves
cp spark-env.sh.template spark-env.sh
cp spark-defaults.conf.template spark-site.conf
vim slaves
#删除localhost,添加worker节点信息
master
slave1
slave2
vim spark-env.sh
#添加如下信息:JAVA_HOME、SCALA_HOME、SPARK_MASTER_IP、SPARK_WORKER_MEMORY、HADOOP_CONF_DIR
export JAVA_HOME=/usr/local/jdk
export SCALA_HOME=/data/scala-2.12.4
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/data/hadoop/etc/hadoop/
vim spark-site.conf
spark.master spark://master:7077
将文件拷贝到其他节点
scp -r /data/scala-2.12.4 slave1:/data
scp -r /data/scala-2.12.4 slave2:/data
scp -r /data/spark-2.1.2-bin-hadoop2.7 slave1:/data
scp -r /data/spark-2.1.2-bin-hadoop2.7 slave2:/data
scp -r /etc/profile slave1:/etc
scp -r /etc/profile slave2:/etc
启动集群
cd ${SPARK_HOME}/sbin
./start-all.sh
单节点启动master
cd ${SPARK_HOME}/sbin
./start-master.sh
单节点启动slave
./start-slave.sh
多master,实现HA
所有节点进行修改
修改spark-site.conf
vim spark-site.conf
spark.master spark://master:7077,slave1:7077,slave2:7077
修改spark-env.sh指定zookeeper集群
vim spark-env.sh
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/data/spark-2.1.2-bin-hadoop2.7"
启动集群
master节点
cd ${SPARK_HOME}/sbin
./start-all.sh
slave1节点
cd ${SPARK_HOME}/sbin
./start-master.sh
slave2节点
cd ${SPARK_HOME}/sbin
./start-master.sh
查看状态
IP:8080
故障转移测试
kill掉master上的Master进程
参考:https://www.cnblogs.com/liugh/p/6624923.html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/191204.html