Apache Zeppelin是一款基于web的notebook(类似于ipython的notebook),支持交互式地数据分析。原生就支持Spark、Scala、SQL 、shell, markdown等。而且它是完全开源的,目前还处于Apache孵化阶段。本文所有的操作都是基于Apache Zeppelin 0.6.0-incubating-SNAPSHOT,spark 1.5.2的。
本文将介绍如何编译、安装以及使用Apache Zeppelin。
编译和安装Apache Zeppelin
Apache Zeppelin官方提供了Source包和二进制包,我们可以根据需要下载相关的包进行安装。这里我通过编译源码的方式来安装Apache Zeppelin,通过源码编译Zeppelin非常地简单,我这里从Zeppelin的git库里面下载最新的源码进行编译,步骤如下:
[iteblog@www.iteblog.com ~]$ git clone https://github.com/apache/incubator-zeppelin.git [iteblog@www.iteblog.com ~]$ cd incubator-zeppelin [iteblog@www.iteblog.com ~]$ mvn package -Pspark-1.5 -Dhadoop.version=2.2.0 -Phadoop-2.2 -DskipTests [INFO] Reactor Summary: [INFO] [INFO] Zeppelin ........................................... SUCCESS [ 4.336 s] [INFO] Zeppelin: Interpreter .............................. SUCCESS [ 4.525 s] [INFO] Zeppelin: Zengine .................................. SUCCESS [ 2.465 s] [INFO] Zeppelin: S park dependencies ...................... SUCCESS [ 30.643 s] [INFO] Zeppelin: S park ................................... SUCCESS [ 2.220 s] [INFO] Zeppelin: Markdown interpreter ..................... SUCCESS [ 0.223 s] [INFO] Zeppelin: Angular interpreter ...................... SUCCESS [ 0.495 s] [INFO] Zeppelin: Shell interpreter ........................ SUCCESS [ 0.203 s] [INFO] Zeppelin: Hive interpreter ......................... SUCCESS [ 1.590 s] [INFO] Zeppelin: Apache Phoenix Interpreter ............... SUCCESS [ 2.196 s] [INFO] Zeppelin: PostgreSQL interpreter ................... SUCCESS [ 0.202 s] [INFO] Zeppelin: JDBC interpreter ......................... SUCCESS [ 0.171 s] [INFO] Zeppelin: Tajo interpreter ......................... SUCCESS [ 0.436 s] [INFO] Zeppelin: Flink .................................... SUCCESS [ 0.864 s] [INFO] Zeppelin: Apache Ignite interpreter ................ SUCCESS [ 0.219 s] [INFO] Zeppelin: Kylin interpreter ........................ SUCCESS [ 0.223 s] [INFO] Zeppelin: Lens interpreter ......................... SUCCESS [ 1.030 s] [INFO] Zeppelin: Cassandra ................................ SUCCESS [ 2.954 s] [INFO] Zeppelin: Elasticsearch interpreter ................ SUCCESS [ 1.601 s] [INFO] Zeppelin: web Application .......................... SUCCESS [01:19 min] [INFO] Zeppelin: Server ................................... SUCCESS [ 54.665 s] [INFO] Zeppelin: Packaging distribution ................... SUCCESS [ 0.991 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 03:12 min [INFO] Finished at: 2016-01-20T16:35:33+08:00 [INFO] Final Memory: 97M/1298M [INFO] ------------------------------------------------------------------------
在编译Zeppelin的时候,会安装npm和node等,所以安装的进度有时会很慢。目前Zeppelin支持Spark 1.1到Spark 1.6和Hadoop 0.23到Hadoop 2.6等版本,我们可以分别通过下面选项指定相应的Spark和Hadoop版本:
-Pspark-1.6 -Pspark-1.5 -Pspark-1.4 -Pspark-1.3 -Pspark-1.2 -Pspark-1.1 -Pcassandra-spark-1.5 -Pcassandra-spark-1.4 -Pcassandra-spark-1.3 -Pcassandra-spark-1.2 -Pcassandra-spark-1.1 -Phadoop-0.23 -Phadoop-1 -Phadoop-2.2 -Phadoop-2.3 -Phadoop-2.4 -Phadoop-2.6
-Pyarn
选项,具体可以参见本博客的《在Yarn上运行Apache Zeppelin & Spark》 。 如果你需要使用到PySpark,编译的时候需要使用-Ppyspark
。
编译完Zeppelin之后,我们就可以启动Zeppelin:
[iteblog@www.iteblog.com ~]$ bin/zeppelin-daemon.sh start
停止Zeppelin可以使用:
[iteblog@www.iteblog.com ~]$ bin/zeppelin-daemon.sh stop
所有运行的日志会输入到logs
目录下,如果遇到错误可以到里面去查找相关的日志。
WARN [2016-01-20 16:36:44,830] ({main} AbstractLifeCycle.java[setFailed]:204) - FAILED SelectChannelConnector@0.0.0.0:8080: java.net.BindException: Address already in use java.net.BindException: Address already in use at sun.nio.ch.Net.bind0(Native Method) at sun.nio.ch.Net.bind(Net.java:444) at sun.nio.ch.Net.bind(Net.java:436) at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) at org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:187) at org.eclipse.jetty.server.AbstractConnector.doStart(AbstractConnector.java:316) at org.eclipse.jetty.server.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:265) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) at org.eclipse.jetty.server.Server.doStart(Server.java:293) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) at org.apache.zeppelin.server.ZeppelinServer.main(ZeppelinServer.java:114)
我们可以到conf/zeppelin-site.xml
文件里面进行配置,并修改zeppelin.server.port
属性的值为其他不被占用的端口,如下:
<property> <name>zeppelin.server.port</name> <value>8090</value> <description>Server port.</description> </property>
然后我们需要重启Zeppelin:
[iteblog@www.iteblog.com ~]$ bin/zeppelin-daemon restart
一切顺利的话,我们就可以在https://www.iteblog.com:8080上面看到下面页面信息:
本博客文章除特别声明,全部都是原创!原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【Apache Zeppelin使用入门指南:安装】(https://www.iteblog.com/archives/1573.html)
使用Ambari装Zeppelin Notebook时,出现这种错误,求大神解决
ERROR [2016-12-27 15:03:17,247] ({main} ZeppelinServer.java[main]:114) - Error while running jettyServer
javax.servlet.ServletException: Resource class org.apache.zeppelin.server.ZeppelinServer can not be instantiated due to InvocationTargetException
这个看不出什么问题啊,能提供更详细的信息吗?
这是zeppelin下的日志报的错,更详细的信息是在哪看啊?
楼主好,我编译 后 ,创建 和 使用notebook 有异常
另外 编译的1.6 的 jdbc和 livy intecepter 都用不了
谢谢 帮助
请教一下,我编译的版本是0.6.0
安装,部署完成以后,页面能访问
但是我执行
sc.version
报错
java.lang.ClassNotFoundException: org.apache.spark.repl.SparkCommandLine
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:418)
at org.apache.zeppelin.interpreter.ClassloaderInterpreter.open(ClassloaderInterpreter.java:74)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:68)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:92)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:345)
你编译的时候是否加入了
-Pspark-1.x
属性呢?太感谢了
这是是在pom.xml文件里面加入吗?
我编译的指令是:
mvn clean package -Pspark-1.5 -Dspark.version=1.5.2 -Dhadoop.version=2.6.0 -Phadoop-2.6 -Pyarn -DskipTests -Dtar -Pdist
最后:编译成功了,
不过,我添加了-Dtar -Pdist 但是没有打成tar包
整个zeppelin-0.6.0目录有1.3G
你编译的时候加了-Pspark-1.x属性,我看你是想打包编译好的文件,建议使用
mvn package -Pspark-1.5 -Dhadoop.version=2.2.0 -Phadoop-2.2 -DskipTests -Pbuild-distr
命令,这条命令会在$ZEPPELIN_SRC/zeppelin-distribution/target目录下生成zeppelin-0.6.0-incubating-SNAPSHOT.tar.gz文件。祝你成功。
您好,按照您的方法,编译通过了,也配置了
这是我的配置文件zeppelin-env.sh
export JAVA_HOME=/usr/local/jdk1.8
export MASTER=yarn-client
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export HADOOP_CONF_DIR=/usr/local/hadoop-2.6.0/etc/hadoop/
export SPARK_HOME=/usr/local/spark-1.5.2
但是启动,执行报错
sc.version
java.lang.ClassNotFoundException: org.apache.spark.repl.SparkCommandLine