Spark 安装配置及基本操作示例
来源:互联网 发布:知乎 机器人瓦力 编辑:程序博客网 时间:2024/04/29 07:21
简介:
- Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
- Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
- Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
本文概述:
- Spark可以独立安装,也可以和Hadoop一起安装使用(本文与hadoop安装在一起)
- 本教程中,我们采用和Hadoop一起安装使用,这样,就可以让Spark使用HDFS存取数据
- 本文统一使用
hadoop
用户操作,安装包放在/opt/source
目录下
1. Hadoop 安装
- 关于Hadoop的单机模式、伪分布式集群配置请查看 官网示例文档
- 完全分布式集群配置 请查看我之前的文章介绍或 参考官网
2. Spark 安装
下载地址 http://spark.apache.org/downloads.html
- Spark部署模式主要有四种:
- Local模式(单机模式)
- Standalone模式(使用Spark自带的简单集群管理器)
- YARN模式(使用YARN作为集群管理器)
- Mesos模式(使用Mesos作为集群管理器)
本文介绍 Local模式(单机模式)的 Spark安装。
[hadoop@master ~]$ sudo tar zxf spark-2.0.2-bin-hadoop2.6.tgz -C /opt/source/[hadoop@master ~]$ cd /opt/source[hadoop@master ~]$ sudo mv spark-2.0.2-bin-hadoop2.6 spark[hadoop@master ~]$ sudo chown hadoop:hadoop spark -R[hadoop@master ~]$ cd spark/conf[hadoop@master ~]$ cp spark-env.sh.template spark-env.sh修改Spark的配置文件spark-env.sh[hadoop@master ~]$ vim spark-env.shexport SPARK_DIST_CLASSPATH=$(/opt/source/hadoop/bin/hadoop classpath)
- 配置以后,Spark就可以把数据存储到Hadoop分布式文件系统HDFS中,也可以从HDFS中读取数据.
- 如果没有配置上面信息,Spark就只能读写本地数据,无法读写HDFS数据.
- 配置完成后就可以直接使用,不需要像Hadoop运行启动命令.
- 通过运行Spark自带的示例,验证Spark是否安装成功.
在spark-shell 统计单词
打开 spark-shell[hadoop@master ~]$ cd /opt/source/spark/[hadoop@master ~]$ ./bin/spark-shell ........16/12/26 17:34:28 WARN spark.SparkContext: Use an existing SparkContext, some configuration may not take effect.Spark context Web UI available at http://192.168.11.130:4040Spark context available as 'sc' (master = local[*], app id = local-1482744865947).Spark session available as 'spark'.Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '_/ /___/ .__/\_,_/_/ /_/\_\ version 2.0.2 /_/Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_111)Type in expressions to have them evaluated.Type :help for more information.scala>
如何在spark-shell 加载文件?
- 本地 文件:
- scala> val textFile = sc.textFile(“file:///to/path/file”)
- HDFS中的 文件:
- scala> val textFile = sc.textFile(“hdfs://master:9000/to/path/file”)
准备一个 word.txt 文档
$ cat /opt/source/spark/code/word.txt$ ./bin/hdfs dfs -mkdir -p /user/hadoop$ ./bin/hdfs dfs -ls . && ./bin/hdfs dfs -ls /user/hadoop [效果一样]$ ./bin/hdfs dfs -ls / [查看根目录]上传本地文件到 HDFS 用户目录$ ./bin/hdfs dfs -put /usr/local/spark/mycode/wordcount/word.txt .查看文件:$ ./bin/hdfs dfs -cat ./word.txt
切换回到spark-shell窗口,编写语句从HDFS中加载word.txt文件,并显示第一行文本内容:
scala> val textFile = sc.textFile("hdfs://localhost:9000/user/hadoop/word.txt")scala> textFile.first()* 需要注意的是,sc.textFile("hdfs://localhost:9000/user/hadoop/word.txt")中,* hdfs://localhost:9000/ 是Hadoop端口地址9000,实际上,也可以省略不写,如下三条语句都是等价的:scala> val textFile = sc.textFile("hdfs://localhost:9000/user/hadoop/word.txt")scala> val textFile = sc.textFile("/user/hadoop/word.txt")scala> val textFile = sc.textFile("word.txt")
进行单词统计:
- 限于笔者测试机性能较差所以这里使用本地文件进行统计(HDFS中的文件直接更换路径即可)
scala> val textFile = sc.textFile("file:///opt/source/spark/code/word.txt")scala> val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)scala> wordCount.collect()
0 0
- Spark 安装配置及基本操作示例
- redhat mysql 安装配置及基本操作
- SQL基本操作及示例
- Hbase的安装及配置、eclipse 操作示例
- Docker安装及加速配置及基本操作
- Spark安装及环境配置
- Spark 基础及RDD基本操作
- Spark 基础及RDD基本操作
- Spark 基础及RDD基本操作
- hive安装配置及连接JDBC基本操作
- ibatis基本配置及操作
- Hibernate基本配置及操作
- spark--集合操作示例
- Openfire、Spark的安装及配置
- Spark学习00---介绍及安装配置
- opensips 安装及基本配置
- opensips 安装及基本配置
- spark RDD 基本操作
- C++11——引入的新关键字
- UGUI实现图片特效轮播,使用插件DOTWEEN
- Linux中通过源码安装Git(SUSE举例)
- 动态申请二维数组并释放方法
- 天气查询
- Spark 安装配置及基本操作示例
- MKNetworkKit框架使用
- Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on
- 正则表达式大全-一
- 高成熟度实践点睛之QPM
- The content of elements must consist of well-formed character data or markup.
- <转>用户画像构建策略及应用实践
- 校赛writeup
- 使用OkHttp3网络请求的错误解析