spark的简介、特性、环境搭建、集群管理器的搭建

spark简介

  • 定义:
    Apache Spark是一个用于大规模数据处理的统一分析引擎。
  • 特性:
    1. 快速:针对批量和实时数据均有很好的性能
         具体体现在三方面:DAG调度器(Spark-core)、查询优化(SparkSQL)、物理执行引擎(钨丝计划)
    2. 易用性:快速的通过java、python、scala、R等等进行应用程序开发。常见的数据操作大概为80多个。
    3. 普遍性:结合不同平台的操作:SQL,Streaming、MLlib、图计算等
    4. 运行在不同平台:包括:hadoop、mesos、standlone、云端等等,并可以访问不同的数据源。

spark环境的搭建(单机版)

  1. 选择你所需的spark版本(发布时间间隔比较长的版本越稳定),我的spark 2.1.2 + scala 2.11.8

  2. 官网下载 spark 压缩包
    在这里插入图片描述

  3. 将压缩包上传到集群,并解压到指定路径
    上传压缩包:$ cp /mnt/hgfs/share/tools/spark-2.1.2-bin-hadoop2.7.tgz
    解压压缩包:$ tar -zxvf spark-2.1.2-bin-hadoop2.7.tgz
    删除压缩包:$ rm spark-2.1.2-bin-hadoop2.7.tgz

  4. 创建软链接
    $ ln -s spark-2.1.2-bin-hadoop2.7/ spark

  5. 修改环境变量
    $ gedit ~/.bash_profile
    追加以下代码:(你自己的 spark 安装存放目录)

    #spark
    export SPARK_HOME=/home/dragon/soft/spark
    export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
    

    修改完毕后记得 source 该文件,重新加载使其生效
    $ source ~/.bash_profile

  6. 测试,出现下面界面说明 spark 的单机版安装成功
    在这里插入图片描述

spark集群管理器的搭建步骤(两种模式)

1.如果当前集群中资源调度方式采用的是Hadoop yarn的话,那么Spark集群安装建议spark on hadoop/yarn
2.如果当前集群为新建集群,无其他资源调度模式时,Spark建议采用spark on standalone 独立模式。
选择不同的集群模式就有不同的集群调优方式

如何选择合适的集群管理器
在这里插入图片描述 在这里插入图片描述
第一种:独立模式集群的搭建

  1. 修改【$SPARK_HOME/conf/spark-env.sh】,添加两个属性,注意“=”左右不能含有空格!
    $> cp spark-env.sh.template spark-env.sh【先将模板配置文件复制出来】
    $> vi spark-env.sh

    JAVA_HOME=/home/hadoop/soft/jdk   # 你所配置的 java jdk 路径
    SPARK_MASTER_HOST=master 		  # 修改spark的主节点名称
    SPARK_MASTER_PORT=7077            # 默认端口号,也可以不用设置
    
  2. 修改【$SPARK_HOME/conf/slaves】从节点配置文件
    $>cp slaves.template slaves
    $>vi slaves 【你的哪些节点作为从节点,就将从节点的名称写入,我的是三个】

    slave01
    slave02
    slave03
    
  3. 将配置好的Spark安装包发送至其他Slave节点上
    $> scp -r spark-2.1.2-bin-hadoop2.7/ dragon@slave01:~/soft/
    $> scp -r spark-2.1.2-bin-hadoop2.7/ dragon@slave02:~/soft/
    $> scp -r spark-2.1.2-bin-hadoop2.7/ dragon@slave03:~/soft/

  4. 分别在所有的Slave节点上,创建spark的软链接,再配置Spark的环境变量
    slave01 $ ln -s spark-2.1.2-bin-hadoop2.7/ spark
    slave02 $ ln -s spark-2.1.2-bin-hadoop2.7/ spark
    slave03 $ ln -s spark-2.1.2-bin-hadoop2.7/ spark

  5. 分别在Slave节点上修改【/home/dragon/.bash_profile】追加以下代码:

    #spark install
    export SPARK_HOME=/home/dragon/soft/spark
    export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
    

    修改后 source 该文件,使其生效 !!!$>source ~/.bash_profile

  6. 开启standalone集群
    $> start-master.sh
    $> start-slaves.sh

  7. 测试访问
    打开Spark Standalone服务端WebUI地址:
    http://master:8080
    开启Spark的应用程序,shell命令,出现如下界面,配置成功
    $ spark-shell --master spark://master:7077在这里插入图片描述
    在这里插入图片描述

//简单测试
scala> val array1=Array(1,2,3,4,5)
array1: Array[Int] = Array(1, 2, 3, 4, 5)

scala> array1.head
res2: Int = 1

scala> array1.length
length   lengthCompare

scala> array1.length
res3: Int = 5

第二种集群模式搭建:Spark On Yarn 资源调度方式是 Hadoop yarn

  1. 修改【$SPARK_HOME/conf/spark-env.sh】,添加一个属性,注意“=”左右不能含有空格!
    $ vi $SPARK_HOME/conf/spark-env.sh【设置你安装 Hadoop 的配置文件的路径】

    HADOOP_CONF_DIR=/home/dragon/soft/hadoop/etc/hadoop

  2. 修改完毕后,将【$SPARK_HOME/conf/spark-env.sh】分发至所有Slave节点
    $ scp spark-env.sh dragon@slave01:~/soft/spark/conf/
    $ scp spark-env.sh dragon@slave02:~/soft/spark/conf/
    $ scp spark-env.sh dragon@slave03:~/soft/spark/conf/

  3. 修改 Hadoop 上的 yarn 参数
    在【$HADOOP_HOME/etc/hadoop/yarn-site.xml】文件中,修改以下属性
    【 这两个参数的意思是说是否启动一个线程检查每个任务正使用的物理内存量和虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true】

    <property>
    	<description>是否对容器实施物理内存限制</description>
    	<name>yarn.nodemanager.pmem-check-enabled</name>
    	<value>false</value>
    </property>
    
    <property>
    <description>是否对容器实施虚拟内存限制</description>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
    </property>
    
  4. 修改完毕后远程拷贝 yarn-site.xml 配置文件到其他节点
    $>scp $HADOOP_HOME/etc/hadoop/yarn-site.xml dragon@slave01:~/soft/hadoop/etc/hadoop
    $>scp $HADOOP_HOME/etc/hadoop/yarn-site.xml dragon@slave02:~/soft/hadoop/etc/hadoop
    $>scp $HADOOP_HOME/etc/hadoop/yarn-site.xml dragon@slave03:~/soft/hadoop/etc/hadoop

  5. 开启Spark on yarn模式
    $>zkServer.sh start(所有节点执行)
    $>start-dfs.sh
    $>start-yarn.sh

  6. 开启spark会话,有如下界面则测试成功
    $>spark-shell --master yarn
    在这里插入图片描述

  7. 可在http://master:8088WebUI下,点击【application】–> 【ApplicationMaster】
    相当于打开 http://192.168.253.10:4040 界面。
    在这里插入图片描述
    在这里插入图片描述

两种集群模式都开启后,守护进程的变化:

【master】
    5489 ResourceManager                  //RM
	5937 SparkSubmit                      //spark-shell --master yarn
	4497 DFSZKFailoverController          //zkfc
	6530 Jps
	6450 SparkSubmit                      //spark-shell --master spark://mster:7077
	4309 JournalNode                      //JNS
	3831 QuorumPeerMain                   //ZOOKEEPER
	3993 NameNode                         //NM
	3179 Master                           //standalone的主节点进程
【slave01】
    4032 ExecutorLauncher                 //spark on yarn开启的AppMaster
	4068 CoarseGrainedExecutorBackend     //spark on yarn开启的Executor(执行器)
	4197 CoarseGrainedExecutorBackend     //spark on yarn开启的Executor(执行器)
	3287 QuorumPeerMain                   //ZOOKEEPER
	3864 NodeManager                      //NM
	4090 CoarseGrainedExecutorBackend     //standalone的Worker开启的Executor(执行器)
	2908 Worker                           //standalone的Worker进程
	3373 DataNode                         //DN
	4237 Jps
	3471 JournalNode                      //JNS
【slave02】
    3590 JournalNode                      //JNS
	3462 DataNode                         //DN 
	4631 CoarseGrainedExecutorBackend     //spark on yarn开启的Executor(执行器)
	3688 DFSZKFailoverController          //ZKFC
	4105 NodeManager                      //NM
	4333 CoarseGrainedExecutorBackend     //standalone的Worker开启的Executor(执行器)
	2925 Worker                           //standalone的Worker进程
	4718 Jps 
	3310 QuorumPeerMain                   //ZOOKEEPER
	3390 NameNode                         //NN
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值