博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop 之 Spark 安装配置与示例
阅读量:6555 次
发布时间:2019-06-24

本文共 3721 字,大约阅读时间需要 12 分钟。

Spark 安装配置与示例

Spark,它是大规模数据处理通用的并行化计算框架,基于MapReduce实现分布式计算,其中间结果可以保存在内存中,从而不再需要读写HDFS。Spark 是 Scala 语言实现的, Scala 也被用作其应用程序框架,Spark 和 Scala 能够紧密集成,Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

Spark主要特点是,简单方便,与RDD(是一种只读的、分区的记录集合),很好结合;计算速度快,中间结果缓存在内存中;操作较为丰富。

Spark可应用于各种运算,如迭代式算法、交互式数据挖掘,还可以应用在 SQL 查询、文本处理、机器学习等方面。相对Hadoop的优势不仅体现在性能提升上,其框架也为Spark Core(批处理),Spark SQL(交互式),Spark Streaming(流式),MLlib(机器学习),Graphx(图计算)等提供了统一的数据处理平台。

接下来我们看一下Spark的安装配置及简单示例

当然在安装Spark前,检查Hadoop及JDK等有没安装,若没安装,可参考我前几篇文章,这里不再赘述。

一、Spark&Scala安装

1、下载spark-2.1.0-bin-hadoop2.7.tgz安装包    http://spark.apache.org/downloads.html
2、  scala-2.11.8.tgz安装包
http://www.scala-lang.org/download/2.11.8.html
3、  分别解压
spark-2.1.0-bin-hadoop2.7.tgz、scala-2.11.8.tgz
到指定目录,如:/opt/spark/、   /opt/scala    
mv spark-2.1.0-bin-hadoop2.7.tgz  /opt/spark/     tar -zxvf spark-2.1.0-bin-hadoop2.7.tgz     mv scala-2.11.8.tgz  /opt/scala     tar -zxvf scala-2.11.8.tgz

 

二、配置环境变量

/etc/profile

增加如下内容:

#spark enviroment export SPARK_HOME=/opt/spark/spark-2.1.0-bin-hadoop2.7export PATH=$PATH:$SPARK_HOME/bin#scla enviromentexport SCALA_HOME=/opt/scala/scala-2.11.8export PATH=$PATH:$SCALA_HOME/bin

三、复制新建两个配置文件

1、进入$SPARK_HOME/conf目录

cp spark-env.sh.template spark-env.sh cp slaves.template slaves

2、修改spark-env.sh文件

export JAVA_HOME=/usr/java/jdk1.7.0_80export HADOOP_HOME=/opt/hadoop/hadoop-2.7.3export HADOOP_CONF_DIR=/opt/hadoop/hadoop-2.7.3/etc/hadoopexport SCALA_HOME=/opt/scala/scala-2.11.8export SPARK_MASTER_IP=kencentos01export SPARK_WORKER_MEMORY=1gexport SPARK_LOCAL_DIRS=/opt/spark/spark-2.1.0-bin-hadoop2.7export SPARK_DRIVER_MEMORY=1g

3、配置slaves文件

# A Spark Worker will be started on each of the machines listed below.kencentos01kencentos02kencentos03

四、同步Spark与scala文件到集群其他节点上

scp -r  /opt/spark/spark-2.1.0-bin-hadoop2.7      hadoop@kencentos02:/opt/sparkscp -r  /opt/spark/spark-2.1.0-bin-hadoop2.7      hadoop@kencentos03:/opt/sparkscp -r  /opt/scala/scala-2.11.8      hadoop@kencentos02:/opt/scalascp -r  /opt/scala/scala-2.11.8      hadoop@kencentos03:/opt/scala

也可以用命令rsync来实现文件同步

rsync –av /opt/spark/spark-2.1.0-bin-hadoop2.7 hadoop@kencentos02:/opt/sparkrsync -av /opt/scala/scala-2.11.8               hadoop@kencentos02:/opt/scala

五、运行Spark

 1、启动Spark

[hadoop@kencentos01 sbin]$ ./start-all.sh
[hadoop@kencentos01 sbin]$ ./start-all.shstarting org.apache.spark.deploy.master.Master, logging to /opt/spark/spark-2.1.0-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.master.Master-1-kencentos01.outkencentos02: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/spark-2.1.0-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-kencentos02.outkencentos03: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/spark-2.1.0-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-kencentos03.outkencentos01: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/spark-2.1.0-bin-hadoop2.7/logs/spark-hadoop-org.apache.spark.deploy.worker.Worker-1-kencentos01.out
View Code

为了避免与hadoop的启动命令冲突,最好到spark目录下或指定目录执行启动命令start-all

2、查看进程是否正常启动

[hadoop@kencentos01 sbin]$ jps28678 SecondaryNameNode31505 Master28289 FsShell29148 DataNode31570 Worker18144 FsShell31648 Jps28503 NameNode28864 ResourceManager

3、进入UI界面,可以看到运行的节点

4、进入spark-shell,可用用交互式命令操作

Scala 是 Spark 的主要编程语言,写 Spark 应用,并不一定要用 Scala,用 Java、Python 都是也可以,但Scala 的优势是开发效率高,代码精简,可以通过 Spark Shell 进行交互式实时查询,方便排查问题,进入spark-shell

六、运行Spark示例

/examples/src/main 目录下有 Scala、Java、Python、R 等语言的版本的示例程序,这里运行一个计算 π 的近似值的SparkPi示例程序,

采用grep 命令进行过滤,因为不过滤会有很多运行的内容输出,不易查看

[hadoop@kencentos01 bin]$ ./run-example SparkPi 2>&1 | grep "Pi is roughly"Pi is roughly 3.1409357046785233

 

转载于:https://www.cnblogs.com/kcen/p/8377734.html

你可能感兴趣的文章
MySQL 清理slowlog方法
查看>>
HTTP深入浅出 http请求
查看>>
为YUM设置代理的方法
查看>>
Java 编程的动态性 第1 部分: 类和类装入--转载
查看>>
再谈ABC
查看>>
【转】持久化消息队列之MEMCACHEQ
查看>>
java-Mail
查看>>
Dom4j学习笔记
查看>>
C语言 HTTP上传文件-利用libcurl库上传文件
查看>>
[MEAN Stack] First API -- 7. Using Route Files to Structure Server Side API
查看>>
调试逆向分为动态分析技术和静态分析技术(转)
查看>>
Android webview使用详解
查看>>
业务对象和BAPI
查看>>
程序源系统与当前系统不一致:Carry out repairs in non-original systems only if urgent
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
程序中的魔鬼数字
查看>>
SVN高速新手教程
查看>>
session cookie
查看>>
如何在Vblock里配置Boot from SAN
查看>>
ZBar之ZBarReaderViewController
查看>>