Spark笔记

Reading time ~4 minutes

Spark入门使用文档多可参考:

中文(淘宝技术部译): http://rdc.taobao.org/?p=2024

英文(Spark官方):https://spark.apache.org/docs/latest/quick-start.html

虽然Scala、Java、Python都可使用Spark,但毕竟Spark原生就支持Scala,

  1. 若学习可用此书《Programming in Scala》 by Martin Odersky,
  2. 而sbt(java中的ant或maven)可参考  http://www.scala-sbt.org/documentation.html

如果熟悉Python,平常的programming还是很流畅的,官方的Python文档也比较全,也就不必花太多精力学习Scala。虽然Scala学习有一定的难度,学习这个前期投入也是完全值得的。“为什么时Scala?” 也粗略列出了Scala这门语言本身的优势。

配置及基本使用请参考中、英文文档,在此不再赘述,本文主要讲讲Spark中涉及到的主要概念和为涉及到的点。数据处理基本的流程就是读取、map、reduce、存。Spark里有两个概念Transformations、Actions

  1. Transformations涵盖了map这个过程及其他中间数据转换方法()。但这些方法的调用,都只是存下来一个链式调用,并未真正处理数据。
  2. Actions包含reduce及其他方法(包括存储数据),这些方法调用则会出发集群上真正的数据操作。

RDD 提供了两个方法存储中间结果: persist(), cache()。cache是绝对的存在内存中,persist可以根据你自己配置仅存内存或硬盘,或两者兼存(这种模式当然会自动偏向存在内存,如果内存不够很多时候会抛OOM的)。当然persist()的具体配置就要看你司需求在速度和硬件资源中做一个平衡了。

Spark读取本地文本和HDFS都很方便,但读Hbase却麻烦好些,可参考《Lighting a Spark With HBase》 ,而且现在Spark还不能使用HBase 0.96及以上(见此),Spark支持的HBase 0.94又只支持Hadoop 1 (看看”Table 2.1. Hadoop version support matrix“弄清楚HBase支持的Hadoop的版本信息)。所以各位看官在使用Spark读取HBase时得留心了。而且Spark通过zookeeper连接HBase时,hbase-site.xml中zookeeper的设置也得加上。

 

val conf = HBaseConfiguration.create()
    conf.set("hbase.zookeeper.quorum", "HOSTNAMES")
    conf.set("hbase.master", "HOST:PORT")

 

另外,sbt使用Spark的过程中,也得特别注意必须在SparkContext里加上依赖的函数包(而不仅仅只是在build.sbt里加上依赖),以便每个slave node能从master处获取到这些jar;此外sbt本项目生成的jar也得加到SparkContext里。

 

new SparkConf().setJars(
  SparkContext.jarOfClass(
      classOf[org.apache.hadoop.hbase.HBaseConfiguration])++
  Seq("target/scala-2.10/PROJECT_NAME_2.10-1.0.jar")
)

 

References:

《Programming in Scala》 :  http://book.douban.com/subject/6050104/

Spark作者: @hashjoin @李浩源HY

国内Spark在Intel、阿里、网易、腾讯、优酷等都有使用,大家也可以关注微博@连城404 @Andrew-Xia @尹绪森 @明风Andy @CrazyJvm @BigData大数据 获取相关信息。

Original post: http://blog.josephjctang.com/2014-06/Spark-notes/

问问题的妙用

记得看《你的灯亮着吗?》这本书时就感觉通过提问的方式比陈述、祈使效果都好很多。原书说的是这么一个场景,就是说日内瓦湖景区的上山隧道。进隧道通常都需要开大灯,可出隧道时司机们往往忘记关大灯,而搞得游完景区后车上的电已经耗尽,只得拖车或让警察来帮助发动。后来就出了几个版本的提示语:1. **请关灯...… Continue reading

时间管理中的断舍离

Published on May 20, 2018

科學の上網的便捷方法

Published on February 03, 2018