Zeppelin on spark

     目前zeppelin最新版本是0.5.6,http://zeppelin.incubator.apache.org/ web

      zepplin是 apache孵化器中的一个项目,可是因为其提供的简单,易操做的web版交互式以及可视化分析工具,也较为受欢迎。 sql

     本文就先简单介绍 zeppelin on spark的应用。 apache

     下载、安装zeppelin 编程

     zeppelin的启动   $ZEPPELIN_HOME/bin/zeppelin-dameon.sh start , 默认端口8080,启动成功后便可在浏览器访问: json

     Zeppelin在构建的时候就默认将spark构建在了项目内部,所以在启动zeppelin后,会自动注入SparkContext, SparkSQL实例。默认状况下zeppelin会以本地模式启用其内部自带的spark环境,若是你想使用本身部署的spark集群,那么就须要作一些简单的配置: 后端

  • 添加SPARK_HOME环境变量,在zeppelin安装文件conf/zeppelin-env.sh文件中添加                      export SPARK_HOME=$spark_home_path
  • 在启动起来的zeppelin web界面的interpreter菜单下,设置spark  master属性。该属性的设置规则是:
    • local[*] in local mode
    • spark://master:7077 in standalone cluster
    • yarn-client in Yarn client mode
    • mesos://host:5050 in Mesos cluster
    因为我使用的资源管理器是YARN ,因此我设置master属性为yarn-client:

        OK ,完成以上配置以后,就能够从新启动zeppelin,并建立一个新的Notebook, 来测试spark, 浏览器

        由于zeppelin默认状况下是提供spark上下文环境,因此在编写spark代码的时候,不须要加%spark, app

        首先经过一个 sc.version 来查看spark版本, 注意:默认状况下zeppelin启动成功之后,并无将spark启动,只有当有spark的操做请求的时候,才会开始启动,因此在第一次执行spark请求的时候会比较慢。 工具

       

      若是执行结果显示出了spark的版本信息,那么就说明与spark后端执行引擎对接成功了。 测试

      在此再额外补充一个可能出现的问题,由于我在第一次尝试的时候就出现了,当我执行sc.version的时候报异常:

com.fasterxml.jackson.databind.JsonMappingException: Could not find creator property with name 'id' (in class org.apache.spark.rdd.RDDOperationScope)
      经过分析发现该异常的缘由是:jackson包版本冲突。

       冲突缘由:zeppelin 0.5.6使用的jackson版本是2.5.3 ,而spark1.6使用的jackson版本是2.4.4,因此致使json解析的时候异常。

       该问题的解决方法就是: 删除zeppelin安装文件下lib文件夹中jackson-*2.5.3.jar, 将jackson2.4.4版本的jar包复制到该文件夹下。进行替换。

      重启zeppelin,该问题便可解决。

    

     zeppelin on spark环境已经配置完成,那么接下来的工做就是 执行spark应用,而后使用zeppelin查看统计分析结果,固然目前用的比较方便的仍是spark sql ,下面给出基于zeppelin on spark分析结果展现。


     

总结:  Zeppelin是一个比较让人惊喜的发现,在发现他以前对于spark的分析结果,咱们通常都是经过命令行的方式来查询,若是要给用户或者别人演示结果,那就更麻烦了,要不就将就的看看后端命令行结果,要不你就写个简单的web ui来进行结果展现。 这样又会带来一些问题,每次一个新的需求模型过来都要从新编程,每次一些小的参数变更都要修改代码。带来了极大的不方便。 可是自从有了zeppelin,这些问题都可以很好的解决,而且不用再担忧数据分析结果的展现问题,也为分析统计的测试带来很大的方便。

固然Zeppelin目前还处于孵化器阶段也有不足的地方,例如一些动态表单的支持还比较少,目前仅仅有文本框和下拉框。

关于Zeppelin更多的功能还在慢慢探索中:

(1) 各类Interpreter的测试,自定义Interpreter的接入方式

(2) zeppelin丰富的展现系统

(3) zeppelin的更多使用场景挖掘等等。

相关文章
相关标签/搜索