`
sunbin
  • 浏览: 353144 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spark集群搭建 & spark-shell & Master HA

 
阅读更多

一、环境

CentOS-6.8-x86_64/jdk1.8/spark-2.3.1-bin-hadoop2.6.tgz

 

二、组建方案:

 

-----1--------2--------3-------4-------5--------
-----N1-----N2-------D-------D------D--------
-----R1------R2-------Z-------Z-------Z--------
-----Hi-------Hi---------------------------------
-----M-------W-------W------------------------

N:namenode/D:datanode/Z:zookeeper/R:resourcemanager/Hi:hive/M:spark master/W:spark slave

 三、环境变量 

 

/etc/profile
export JAVA_HOME=/usr/local/runtime/jdk
export HADOOP_PREFIX=/usr/local/runtime/hadoop
export HIVE_HOME=/usr/local/runtime/hive
export HBASE_HOME=/usr/local/runtime/hbase
export ZOOKEEPER_HOME=/usr/local/runtime/zookeeper
export JRE_HOME=/usr/local/runtime/jdk/jre
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_PREFIX/bin:$HIVE_HOME/bin:$HBASE_HOME/bin:$HADOOP_PREFIX/sbin

 

/etc/hosts
192.168.2.71  spark1
192.168.2.72  spark2
192.168.2.73  spark3
192.168.2.74  spark4
192.168.2.75  spark5

 

四、搭建集群

 

1、standlone方式

 

步骤一:解压文件 改名
           tar -zxvf spark-2.3.1-bin-hadoop2.6.tgz -C /usr/local/runtime
           mv spark-2.3.1-bin-hadoop2.6          spark-2.3.1
步骤二:修改配置文件

 1、修改slaves
          cd /usr/local/spark-1.6.0/conf 
          cp slaves.template slaves 
          vi slaves
         ----------------------------
           spark1
           spark2
         ----------------------------

2、修改 spark-config.sh 设置java_home

         cd  spark-2.3.1/sbin
         export JAVA_HOME=/usr/local/runtime/jdk

3、spark-env.sh
                 mv spark-env.sh.template spark-env.sh 
                 vi spark-env.sh

	#SPARK_MASTER_HOST:master的HOSTNAME
	export SPARK_MASTER_HOST=spark1
	#SPARK_MASTER_PORT:提交任务的端口,默认是7077
	export SPARK_MASTER_PORT=7077
	#SPARK_WORKER_CORES:每个worker从节点能够支配的core的个数
	export SPARK_WORKER_CORES=2
	#SPARK_WORKER_MEMORY:每个worker从节点能够支配的内存数
	export SPARK_WORKER_MEMORY=3g
	#SPARK_MASTER_WEBUI_PORT:sparkwebUI端口 默认8080 或者修改spark-master.sh
	export SPARK_MASTER_WEBUI_PORT=8080

步骤三、分发spark到另外两个节点
            scp -r spark-1.6.0 root@spark2:`pwd`
            scp -r spark-1.6.0 root@spark3:`pwd`

步骤四:启动集群(注意与hadoop冲突,带路径使用)

             spark-1.6.0/sbin/start-all.sh

步骤五:关闭集群
             spark-1.6.0/sbin/stop-all.sh

步骤六:执行代码
            (非集群模式)
spark-2.3.1/bin/spark-submit --master spark://spark1:7077 --class we.we.WordCount c.jar 10000
             (集群模式)
spark-2.3.1/bin/spark-submit --master spark://spark1:7077 --deploy-mode cluster--class we.we.WordCount c.jar 10000
步骤七:客户端执行方式
             复制现有配置的spark-2.3.1(原配置不做修改)及环境到新机
            (非集群模式)
spark-2.3.1/bin/spark-submit --master spark://spark1:7077 --class we.we.WordCount  c.jar 10000
             (集群模式)
spark-2.3.1/bin/spark-submit --master spark://spark1:7077 --deploy-mode cluster  --class we.we.WordCount c.jar 10000

 -----------------------------------------

注意所有“集群提交模式”:必须保证集群每台机器都有jar文件,否则报错java.nio.file.NoSuchFileException:  c.jar。对于jar文件存放在hdfs中的不会报错

master界面:端口默认8080/ job界面,端口是4040:

----------------------------------------------

 

2、Yarn方式

注意:如果数据来源于HDFS或者需要使用YARN提交任务,那么spark需要依赖HDFS,否则两者没有联系

      如果不使用客户端方式提交hdfs或yarn,则在集群每台机器上做以下配置,也可以(根据具体情况配置)

 

一、在spark在客户端中----提交hdfs文件----或----使用yarn提交任务----的配置:    

 

            vi  spark-2.3.1/conf/ spark-env.sh
添加配置
            export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
       
提交任务:
(非集群模式)
spark-2.3.1/bin/spark-submit --master yarn --class we.we.WordCount  c.jar 10000
(集群模式)
spark-2.3.1/bin/spark-submit --master yarn --deploy-mode cluster --class we.we.WordCount  c.jar 10000
spark-2.3.1/bin/spark-submit --master yarn-cluster --class we.we.WordCount  c.jar 10000

 

二、使用spark-shell 

  SparkShell是Spark自带的一个快速原型开发工具,也可以说是Spark的scala REPL(Read-Eval-Print-Loop),即交互式shell。支持使用scala语言来进行Spark的交互式编程。

 

1、运行

步骤一:启动standalone集群和HDFS集群(spark1上HDFS伪分布),之后启动spark-shell
/usr/local/spark-1.6.0/bin/spark-shell --master spark://spark1:7077
 步骤二:运行wordcount 
scala>sc.textFile("hdfs://spark1:8082/spark/test/wc.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).foreach(println)

 2、配置historyServer

步骤一:
         临时配置,对本次提交的应用程序起作用
[root@spark04 bin]#  spark-1.6.0/bin/spark-shell --master spark://spark1:7077 --name myapp1 --conf spark.eventLog.enabled=true --conf spark.eventLog.dir=hdfs://spark1:8082/spark/test
注意:停止程序,在Web UI中Completed Applications对应的ApplicationID中能查看history

 步骤二:
          spark-default.conf配置文件中配置HistoryServer,对所有提交的Application都起作用
如果想看历史事件日志,可以新搭建一个HistoryServer专门用来看历史应用日志,跟当前的集群没有关系,

这里我们新启动客户端spark4节点,进入../spark-1.6.0/conf/spark-defaults.conf最后加入:

//开启记录事件日志的功能
spark.eventLog.enabled true
//设置事件日志存储的目录
spark.eventLog.dir hdfs://PCS102:9820/spark/test
//设置HistoryServer加载事件日志的位置  恢复查看
spark.history.fs.logDirectory hdfs://PCS102:9820/spark/test
//日志优化选项,压缩日志
spark.eventLog.compress true

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Spark环境搭建——HA高可用模式

    Spark的高可用(HA)模式是为了克服其Standalone集群中Master节点的单点故障问题而设计的。在标准模式下,Spark Standalone集群由一个Master节点和多个Slave节点组成,Master负责调度作业和管理资源,但这样的架构...

    大数据技术之Spark.docx

    在Sparkshell中,可以通过简单的几行代码实现WordCount。 **3.5 在IDEA中编写WordCount程序** 可以使用IDEA等集成开发环境来编写更复杂的Spark应用程序。通过IDEA可以更好地组织代码、调试程序。 **3.6 在IDEA中...

    spark 安装所需包1.zip

    本资源包含的 Spark 3.0 和 Hadoop 2.7.1 的安装包,是用于搭建大数据处理环境的基础。 Spark 3.0 的主要特性包括: 1. **性能提升**:Spark 3.0 在 SQL 性能上进行了优化,引入了 Tungsten 和 Catalyst 框架,提高...

    DolphinScheduler工作流调度引擎.pdf

    - 包括Shell、MapReduce、Spark、SQL(MySQL、PostgreSQL、Hive、SparkSQL)、Python、Sub_Process、Procedure等。 - 1.2.0版本新增支持Flink和HTTP任务。 - **多样化的调度模式**: - 支持定时调度、依赖调度、...

    赫拉调度系统jar包(已编译)

    支持上传文件到hdfs,支持使用hdfs文件资源支持日志的实时滚动支持任务失败自动恢复实现集群HA,机器宕机环境实现机器断线重连与心跳恢复与hera集群HA,节点单点故障环境下任务自动恢复,master断开,worker抢占...

    apache-dolphinscheduler-3.2.0调度器简介和集群部署详细安装文档

    此外,DolphinScheduler 还支持集群 HA,通过 Zookeeper 管理 Master 和 Worker 集群,实现去中心化。 在部署方面,需要准备的环境包括配置主机名、关闭 SELinux、防火墙,安装 JDK、MySQL 数据库和 Zookeeper。...

    DolphinScheduler(apache-dolphinscheduler-2.0.6-bin.tar.gz)(已安装过)

    关于DolphinScheduler ... 支持更多的任务类型,如 spark, hive, mr, python, sub_process, shell 高扩展性 支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线

    apache-dolphinscheduler-3.1.4-bin

    2. **任务类型支持**:DolphinScheduler支持多种任务类型,包括Shell、Java、Python、Spark、Hadoop等,覆盖了大数据处理的常见需求。 3. **资源管理**:系统允许用户定义和管理资源,如HDFS路径、数据库连接等,...

    Hadoop大数据实战培训

    Hadoop集群技术涉及到Hadoop的分布式部署,包括Master节点(如NameNode和JobTracker)和Slave节点(如DataNode和TaskTracker)的角色分配,以及如何通过YARN(Yet Another Resource Negotiator)进行资源管理和任务...

    DolphinScheduler任务调度系统-其他

    8、实现集群HA,通过Zookeeper实现Master集群和Worker集群去中心化 9、支持对Master/Worker cpu load,memory,cpu在线查看 10、支持工作流运行历史树形/甘特图展示、支持任务状态统计、流程状态统计 11、支持补数 ...

    大数据精通组件——DolphinScheduler⼯作流调度引擎

    8. 实现了集群高可用性(HA),通过Zookeeper实现Master集群和Worker集群的去中心化。 9. 支持对Master和Worker的CPU、内存等资源的在线监控。 10. 支持工作流运行历史的树形和甘特图展示,任务状态和流程状态的统计...

    dolphinScheduler 1.3.6压缩包

    3. **任务类型支持**:DolphinScheduler支持多种任务类型,包括Shell、Java、Python、Spark、Hadoop MapReduce等,满足大数据处理的多样性需求。 4. **高可用性**:通过Master节点的HA(高可用)机制,确保调度服务...

Global site tag (gtag.js) - Google Analytics