在Spark shell中基于Alluxio进行wordcount交互式分析
Spark是一个分布式内存计算框架,可部署在YARN或者MESOS管理的分布式系统中(Fully Distributed),也可以以Pseudo Distributed方式部署在单个机器上面,还可以以Standalone方式部署在单个机器上面。运行Spark的方式有interactive和submit方式。本文中所有的操作都是以interactive方式操作以Standalone方式部署的Spark。具体的部署方式,请参考Hadoop Ecosystem。
Alluxio是基于内存的分布式文件管理系统,整体层次在分布式文件系统(譬如说典型的HDFS)和分布式计算框架(譬如说典型的Spark)之间,号称能够提升性能10x倍。Alluxio可以以本地模式或者集群模式进行部署,本文中使用的是本地模式。具体的部署方式,请参考Hadoop Ecosystem。
目标:
能够通过Alluxio方式进行WordCount的操作。
前提:
存在一个文件,可通过Alluxio Browser(http://localhost:19999/home)查看。
配置Spark:
Step 1:完成Alluxio本身的安装,本文中使用本地模式。
Step 2:在Alluxio顶层目录中执行maven命令来构建Alluxio,如果网络不好,需要等待很长时间。
mvn clean package -Pspark -DskipTests
Step 3:配置spark-defaults.conf
cd /usr/share/spark/conf
vi spark-defaults.conf
spark.driver.extraClassPath /usr/local/alluxio/core/client/target/alluxio-core-client-1.3.-jar-with-dependencies.jar
spark.executor.extraClassPath /usr/local/alluxio/core/client/target/alluxio-core-client-1.3.-jar-with-dependencies.jar
Step 4:配置core-site.xml
cd /usr/share/spark/conf
vi core-site.xml
<configuration>
<property>
<name>fs.alluxio.impl</name>
<value>alluxio.hadoop.FileSystem</value>
</property>
</configuration>
步骤:
Step 1:进入Spark-shell交互式命令行。
spark-shell
Step 2:读取LICENSE文件,并check读取是否成功。如果不存在,则提示如下错误。
val s = sc.textFile("alluxio://localhost:19998/LICENSE")
s.count
Step 3:设定输出的文件个数并执行统计逻辑
val numOutputFiles = 128
val counts = s.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _, numOutputFiles)
Step 4:保存计算结果到Alluxio中
counts.saveAsTextFile("alluxio://localhost:19998/LICENSE_COUNT_ALLUXIO")
Step 5:在Alluxio Browser中查看结果
结论:
通过Alluxio,我们可以在Spark-shell中轻松地进行交互式的分析(word count统计)。
参考资料:
http://www.alluxio.org/docs/master/cn/Running-Spark-on-Alluxio.html
http://spark.apache.org/docs/latest/programming-guide.html
http://coe4bd.github.io/HadoopHowTo/sparkScala/sparkScala.html
http://coe4bd.github.io/HadoopHowTo/sparkJava/sparkJava.html
在Spark shell中基于Alluxio进行wordcount交互式分析的更多相关文章
- 在Spark shell中基于HDFS文件系统进行wordcount交互式分析
Spark是一个分布式内存计算框架,可部署在YARN或者MESOS管理的分布式系统中(Fully Distributed),也可以以Pseudo Distributed方式部署在单个机器上面,还可以以 ...
- cloudera manager安装spark后使用spark shell编写基于scala的world count
val file = sc.textFile("hdfs://zhcloudil-lcnode04:8020/user/cloudil/wc_spark.txt") val cou ...
- Hadoop世界中的HelloWorld之WordCount具体分析
MapReduce 应用举例:单词计数 WorldCount可以说是MapReduce中的helloworld了,下面来看看hadoop中的例子worldcount对其进行的处理过程,也能对mapre ...
- Spark Shell简单使用
基础 Spark的shell作为一个强大的交互式数据分析工具,提供了一个简单的方式学习API.它可以使用Scala(在Java虚拟机上运行现有的Java库的一个很好方式)或Python.在Spark目 ...
- 大话Spark(3)-一图深入理解WordCount程序在Spark中的执行过程
本文以WordCount为例, 画图说明spark程序的执行过程 WordCount就是统计一段数据中每个单词出现的次数, 例如hello spark hello you 这段文本中hello出现2次 ...
- shell中date使用总结-基于自动定期备份mysql实践
------------------------时间的格式 date [OPTION]... [+FORMAT] echo `date 空格 +'时间格式串'` 调用date必须加符号反引号``,表示 ...
- Spark之spark shell
前言:要学习spark程序开发,建议先学习spark-shell交互式学习,加深对spark程序开发的理解.spark-shell提供了一种学习API的简单方式,以及一个能够进行交互式分析数据的强大工 ...
- Spark学习进度-Spark环境搭建&Spark shell
Spark环境搭建 下载包 所需Spark包:我选择的是2.2.0的对应Hadoop2.7版本的,下载地址:https://archive.apache.org/dist/spark/spark-2. ...
- Spark shell的原理
Spark shell是一个特别适合快速开发Spark原型程序的工具,可以帮助我们熟悉Scala语言.即使你对Scala不熟悉,仍然可以使用这个工具.Spark shell使得用户可以和Spark集群 ...
随机推荐
- C++ 虚基类 派生与继承
在学习设计模式时我就有一个疑问,关联和继承除了用法上的区别,好像在内存上并没有什么区别,继承也是父类作为了子类的元素(内存上),关联也是这样.而且关联好像更占内存一些.这就是设计模式里问题了“依赖倒转 ...
- <%@ include > 与< jsp:include >
include指令表示在JSP编译时插入一个包含文本或者代码的文件,把文件中的文本静态地包含过去.也就是说,会把被包含的页面拷贝到包含的页面中指令所在的位置. 语法格式:<%@ include ...
- 见过最好的mybatis学习网站
http://blog.csdn.net/techbirds_bao/article/details/9233599/
- PHP foreach引用&
将以下代码打印 $variable = ['a', 'b', 'c']; foreach ($variable as $key => &$value) { } foreach ($var ...
- 前端框架 json 返回值
layui: string strJson = "{\"code\": \"0\",\"msg\": \"\" ...
- angular Dom属性绑定
- lfs原理
- ubuntu没有权限(不能)创建文件夹(目录)
可以在终端直接运行 sudo nautilus,弹出来的nautilus可以直接GUI操作,中途别关终端.如果遇到需要输入root密码,则输入root密码就可以启动这个图形界面了.
- 【转】C#日期时间格式化
源地址:https://www.cnblogs.com/polk6/p/5465088.html
- 一个简单的Samba服务
上次给大家认识了下,搭建一个服务大概的一个认识. 这次给大家搭建一个Samba服务认识下. 项目准备: 虚拟机一个(Centos6.5版本) 项目目标: 进行samba最简单的配置 项目难度: ❤❤ ...