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交互式分析的更多相关文章

  1. 在Spark shell中基于HDFS文件系统进行wordcount交互式分析

    Spark是一个分布式内存计算框架,可部署在YARN或者MESOS管理的分布式系统中(Fully Distributed),也可以以Pseudo Distributed方式部署在单个机器上面,还可以以 ...

  2. cloudera manager安装spark后使用spark shell编写基于scala的world count

    val file = sc.textFile("hdfs://zhcloudil-lcnode04:8020/user/cloudil/wc_spark.txt") val cou ...

  3. Hadoop世界中的HelloWorld之WordCount具体分析

    MapReduce 应用举例:单词计数 WorldCount可以说是MapReduce中的helloworld了,下面来看看hadoop中的例子worldcount对其进行的处理过程,也能对mapre ...

  4. Spark Shell简单使用

    基础 Spark的shell作为一个强大的交互式数据分析工具,提供了一个简单的方式学习API.它可以使用Scala(在Java虚拟机上运行现有的Java库的一个很好方式)或Python.在Spark目 ...

  5. 大话Spark(3)-一图深入理解WordCount程序在Spark中的执行过程

    本文以WordCount为例, 画图说明spark程序的执行过程 WordCount就是统计一段数据中每个单词出现的次数, 例如hello spark hello you 这段文本中hello出现2次 ...

  6. shell中date使用总结-基于自动定期备份mysql实践

    ------------------------时间的格式 date [OPTION]... [+FORMAT] echo `date 空格 +'时间格式串'` 调用date必须加符号反引号``,表示 ...

  7. Spark之spark shell

    前言:要学习spark程序开发,建议先学习spark-shell交互式学习,加深对spark程序开发的理解.spark-shell提供了一种学习API的简单方式,以及一个能够进行交互式分析数据的强大工 ...

  8. Spark学习进度-Spark环境搭建&Spark shell

    Spark环境搭建 下载包 所需Spark包:我选择的是2.2.0的对应Hadoop2.7版本的,下载地址:https://archive.apache.org/dist/spark/spark-2. ...

  9. Spark shell的原理

    Spark shell是一个特别适合快速开发Spark原型程序的工具,可以帮助我们熟悉Scala语言.即使你对Scala不熟悉,仍然可以使用这个工具.Spark shell使得用户可以和Spark集群 ...

随机推荐

  1. eclipse导入tomcat

    官网下载tomcat压缩包 官网:http://tomcat.apache.org/ tomcat8:链接:http://pan.baidu.com/s/1kVHAEoR 密码:kyt8 tomcat ...

  2. indexOf(String.indexOf 方法)

    字符串的IndexOf()方法搜索在该字符串上是否出现了作为参数传递的字符串,如果找到字符串,则返回字符的起始位置 (0表示第一个字符,1表示第二个字符依此类推)如果说没有找到则返回 -1 返回 St ...

  3. SQL server T-sql语句查询执行顺序

    前言 数据库的查询执行,毋庸置疑是程序员必备的技能之一,然而数据库查询执行的过程绚烂多彩,却是很少被人了解,今天我们来深入了解下sql查询的来龙去脉,为查询的性能优化打个基础 这篇博客,摒弃查询优化性 ...

  4. April Fools Day Contest 2019 A. Thanos Sort

    A. Thanos Sort time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  5. PHP获取对象的纯数字属性

    php的对象属性 我们知道获取php的对象属性用箭头: echo $obj->name; 如果属性名是一个变量,那么可以用: $var = 'name'; echo $obj->$var; ...

  6. luoguP4782 [模板]2-SAT问题

    https://www.luogu.org/problemnew/show/P4782 2-SAT模板,输出方案只需判断 \(a\) 和 \(a + n\) 两个点所在的 scc 编号大小就可以了 # ...

  7. loj #6121. 「网络流 24 题」孤岛营救问题

    #6121. 「网络流 24 题」孤岛营救问题   题目描述 1944 年,特种兵麦克接到国防部的命令,要求立即赶赴太平洋上的一个孤岛,营救被敌军俘虏的大兵瑞恩.瑞恩被关押在一个迷宫里,迷宫地形复杂, ...

  8. 洛谷P4518 [JSOI2018]绝地反击(计算几何+二分图+退流)

    题面 传送门 题解 调了咱一个上午-- 首先考虑二分答案,那么每个点能够到达的范围是一个圆,这个圆与目标圆的交就是可行的区间,这个区间可以用极角来表示 首先,如果我们知道这个正\(n\)边形的转角,也 ...

  9. STM32基础分析——PWM配置

    在使用STM32F103产生固定频率.固定占空比的PWM波时,虽然有官方以及众多开发板提供的例程,但是关于有点问题并没有说的很清晰,并且<STM32F10X参考手册>的中文翻译可能容易造成 ...

  10. DHCP协议及基本实现原理

    DHCP(Dynamic Host Configuration Protocol):动态主机配置协议. DHCP的优缺点 DHCP服务优点:网络管理员可以验证IP地址和其它配置参数,而不用去检查每个主 ...