Spark的StandAlone模式环境搭建
2017-02-14 09:46
267 查看
1.简介
Spark是一个类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集,提供了比MapReduce更丰富的模型,可以在快速在内存中对数据集进行多次迭代,以支持复杂的数据挖掘算法和图形计算算法。 Spark Streaming是一种构建在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。初步学习以后,SparkStreaming还是比较容易上手的,使用Spark Streaming的重心在数据流的处理上,接收数据流的工作,Spark Streaming都已经封装好了。Spark Streaming的基本原理是将输入数据流以时间片(秒级)为单位进行拆分,然后以类似批处理的方式处理每个时间片数据,其基本原理如图所示。
首先,SparkStreaming把实时输入数据流以时间片Δt (如1秒)为单位切分成块。Spark Streaming会把每块数据作为一个RDD,并使用RDD操作处理每一小块数据。每个块都会生成一个Spark Job处理,最终结果也返回多块。
Spark Streaming可以接收多种来源的数据,然后将数据存储到多种介质上。
2.简单使用
使用Spark Streaming,可以运行在yarn上,即运行在Sparkon Yarn模式上,也可以运行在原生Hadoop环境上。Spark On Yarn环境通常是使用CDH集成环境,网络上有很多搭建环境的教程,但搭建CDH需要的主机资源较多,在学习阶段,可以运行在原生Hadoop环境上,本教程讲述的是在Spark的StandAlone模式下运行的方法。下面一步步介绍一下环境的搭建过程。2.1所需物品
两台Centos7服务器Jdk 安装包
Scala rpm安装包
Spark 压缩包
2.2配置方法
2.2.1 安装JDK
首先检查系统的jdk信息,centos中默认安装了openjdk:rpm -qa | grep java
然后根据查询结果将openjdk删除:
卸载OpenJDK,执行以下操作:
[root@localhost ~]# rpm -e --nodepstzdata-java-2014i-1.el7.noarch
[root@localhost ~]# rpm -e --nodepsjava-1.7.0-openjdk-headless-1.7.0.71-2.5.3.1.el7_0.x86_64
[root@localhost ~]# rpm -e --nodepsjava-1.7.0-openjdk-1.7.0.71-2.5.3.1.el7_0.x86_64
删除的文件名根据查询结果进行相应的修改。
执行rpm安装指令安装JDK安装包:
rpm -ivh jdk安装包名.rpm
JDK默认安装在/usr/java中,安装完成后执行java,javac,java–version等指令,显示相应的信息即为安装成功。
安装完成以后,配置jdk的环境变量
vim /etc/profile
exportJAVA_HOME=/usr/java/jdk1.8.0_67-cloudera/
exportPATH=.:$JAVA_HOME/bin:/root/nodejs/bin:$PATH
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
如果需要加代理,也可以在此文件中配置代理:
http_proxy=http://用户名:密码@代理地址:端口/
no_proxy=*10.*,*.h3c.*
export http_proxy no_proxy
2.2.2 配置SSH(可选)
配置过程中,会在多个服务器之间进行通信,为了减少输入代码的次数,简化操作,可以配置SSH:# ssh-keygen -t rsa -P '' -f~/.ssh/id_rsa //首先生成一对私钥和公钥
# ssh-copy-id <ip地址> //(ip地址是你具体要和谁免key,自己也要和自己设置免key)
2.2.3 Scala安装
Scala直接使用rpm安装指令安装即可:rpm -ivh rpm Scala安装包名称
安装完成之后,输入:
scala –version
能够显示scala的版本信息即为安装成功。
2.2.4 Hadoop配置
2.2.5 Spark配置
将Spark压缩包放到/opt目录下,执行解压缩指令解压tar -xzvf 文件名.tar.gz
解压后进入其中的conf目录,复制下面的slaves.template,更名为slaves,然后复制spark-env.sh.template,更名为spark-env.sh:
cp slaves.template slaves
cp spark-env.sh.templatespark-env.sh
如下图:
slaves是用来配置节点信息的,在此文件中输入节点的地址。我的两台节点主机IP是10.12.197.58和10.12.197.73,将IP地址写入文件:
除了写入IP,也可以写入Hostname,主机的hostname可以通过在任意位置输入hostname指令查看。如果写入的是hostname,还需要在配置host:
vim /etc/hosts
然后在文件中加入hostname和对应的ip地址:
然后在/etc/sysconfig/network修改hostname:
vim /etc/sysconfig/network
spark-env.sh用来配置spark的相关信息,如Master,Memory等,此处我只配置Master,其他的默认:
SPARK_MASTER_HOST=10.12.197.58
还可以配置一些其他参数,这里给一些简单的例子:
export JAVA_HOME=/usr/java/jdk1.7.0_67-cloudera/
export SPARK_MASTER_IP=127.0.0.1 (指定主节点)
exportSPARK_WORKER_CORES=6 (配置worker节点的cpu核数)
exportSPARK_WORKER_INSTANCES=2 (启动多少个worker,一台从节点机器可以有多个WORKER,一个worker启动一个JVM)
exportSPARK_WORKER_MEMORY=10g (每个worker占多少内存)
export SPARK_MASTER_PORT=7076 (spark URL端口,如spark://crxy172:7076)
exportSPARK_JAVA_OPTS="-verbose:gc -XX:-PrintGCDetails-XX:+PrintGCTimeStamps”
(用来设置GC参数)
注意:SPARK_WORKER_CORES *SPARK_WORKER_INSTANCES=
每台机器总cores
到此,基本配置就完成了,写完程序打包后,执行以下指令提交任务给spark:
./bin/spark-submit –class 类名 xxx.jar 参数(多个参数空格隔开)
相关文章推荐
- Spark的StandAlone运行模式环境搭建
- Spark1.6.1集群环境搭建——Standalone模式HA
- spark环境搭建--Standalone模式
- Spark1.2.1集群环境搭建——Standalone模式
- spark 环境搭建及几种模式测试
- 关于Spark下的第二种模式——standalone搭建
- spark1.3.0-hadoop2.4集群环境搭建(Standalone)
- Spark学习之(二)Spark 集群环境搭建(standalone)
- Spark Standalone模式搭建
- spark standalone模式 环境搭建
- Spark Standalone模式HA环境搭建
- (一) 从零开始搭建Spark Standalone集群环境搭建
- 在spark开发环境中使用Standalone模式调试集群运行
- spark2.2.0搭建standalone集群环境
- Spark的环境搭建以及简单的eclipse的两种运行方式--standalone和yarn
- spark环境搭建(独立集群模式)
- Spark的standalone环境搭建(1.6.0)
- Spark实战01:单节点本地模式搭建Spark运行环境
- Spark自带的集群模式(Standalone),Spark/Spark-ha集群搭建
- Spark Standalone模式伪分布式环境搭建