Spark相关

忽略元数据末尾
回到原数据开始处

Apache Zeppelin是一个让交互式数据分析变得可行的基于网页的开源框架。

Zeppelin提供了数据分析、数据可视化等功能,方便你做出可数据驱动的、可交互且可协作的精美文档,

并且支持多种语言,包括 Scala(使用 Apache Spark)、Python(Apache Spark)、SparkSQL、 Hive、 Markdown、Shell等。

如图

Zeppelin内置了对Spark的集成,提供了:

  1. 自动地SparkContext和SQL Context的注入
  2. 运行时自动从本地文件系统或者maven库导入依赖的jar。
  3. 取消job,并且显示他的进度。

安装使用

Zeppelin是Apache的一个孵化项目,目前最新的版本是0.5.6,支持Spark1.6.0。可以直接下载二进制包或者

源码包编译安装。


下面是一个用scala从hdfs上读取数据,然后用sql进行分析的例子










10 
11 
12 
13 
14

val bankText = sc.textFile("hdfs://localhost:19000/home/qixia/zeppelin/bank/bank-full.csv") 
  
case class Bank(age:Integer, job:String, marital : String, education : String, balance : Integer) 
  
val bank = bankText.map(s=>s.split(";")).filter(s=>s(0)!="\"age\"").map( 
s=>Bank(s(0).toInt, 
s(1).replaceAll("\"", ""), 
s(2).replaceAll("\"", ""), 
s(3).replaceAll("\"", ""), 
s(5).replaceAll("\"", "").toInt 


  
bank.registerTempTable("bank")

进阶配置

Zeppelin的工作方式和Spark的Thrift Server很像,都是向Spark提交一个应用(Application),然后每一个查询对应一个stage。

 
因此,在启动Zeppelin前,可以通过配置环境变量ZEPPELIN_JAVA_OPTS来对即将启动的Spark driver进行配置,例如"-Dspark.executor.memory=8g -Dspark.cores.max=64"。

posted @ 2017-05-03 16:52  托马斯布莱克  阅读(143)  评论(0编辑  收藏  举报