Zeppelin是一个交互式笔记本。它允许您将代码写入网页,执行代码,然后在表格或图形中显示结果。它还可以做更多事情,因为它能支持Markdown和JavaScript (Angular)。
这样,您可以编写代码,对用户隐藏这些代码,创建漂亮的报告并进行分享。另外,您还可以创建实时报告和图形,并使用网页接口与用户共享。
Zeppelin支持多种不同的语言解析器和特性,例如:
Alluxio Kylin
Amgular Lens
BigQuery Livy
Cassandra Markdown
ElasticSearch Pig
Hadoop File操作 Psql
Flink Python
Hbase Linux shell (sh)
Ignite Spark
JDBC
您还可以添加第三方解析器。
以下是Spark的例子。但首先看一个小Markdown:
您可以点击箭头运行代码,它将以markdown格式显示文本,例如,与在Github中创建README.md文件的语法相同。
安装Spark
您可以将Zeppelin作为已经与Spark等捆绑的Jupyter笔记本运行。将其与apt-get或yum一同安装。它可以从此处下载。然后,解压并拷贝conf/zeppelin-site.xml.模板到conf/zeppelin-site.xml。
然后,您可能必须将其监听的IP地址从0.0.0.0改为其他地址:
zeppelin.server.addr
77.235.46.77
Server address
然后启动:
bin/zeppelin-daemon.sh
关于安全的重要事项
如果您设置了Zepplin,则可以通过公共互联网接入,接下来,为其设置密码非常重要。这是因为别人可以创建bash shell解析器,对您的服务器造成严重破坏。请遵循Zeppelin的这些简单指令去做。
Spark举例
以下列出了如何创建文本文件、将其转换为Spark数据框、然后使用SQL进行查询并创建表格显示格式和图形的简单例子。
1. 首先从此处下载本例中使用的数据。然后将数据拷贝到Hadoop文件系统或本地文件系统中。
2. 然后打开Zeppelin。它通常监听http://localhost:8080。
3. 接下来点击“Create new note”。
4. 这时选择Spark解析器,为笔记本命名。假设Spark主机与Zeppelin位于同一台服务器上。注意您可以更改解析器选项卡上的属性。
5. 然后,将以下代码发布到下述单元格中。由于我们选择了解析器Spark,因此不必使第一行为%spark。注意:有一点让人讨厌的是,您不能使用鼠标右键选择粘贴。相反,必须使用 (-ctl-)(-v-)。
以下粉色标出了一些按钮。从左向右、从上到下分别是:
运行代码(称为段落)
清除输出,即清除所显示的结果
运行一个段落
访问子菜单
增加一个新段落
import org.apache.spark.sql.types._
import org.apache.spark.sql.{Row}
var data = sc.textFile("file:/home/walker/Downloads/lpsa.data")
val schemaStr = "a b c d e"
val fields = schemaStr.split(" ").map(fieldName => StructField(fieldName, DoubleType, nullable = true))
val schema = StructType(fields)
val parsedData = data.map( l => l.replace(",", " ").split(" "))
case class DataClass(a: Double, b: Double, c: Double, d: Double, e: Double)
var x = parsedData.map(b => DataClass(b(0).toDouble, b(1).toDouble, b(2).toDouble, b(3).toDouble, b(4).toDouble))
var df = x.toDF()
df.createTempView("df")
6. 在解析器的下一个段落中,您可以在刚才注册为临时表格的表格中再次使用常规SQL。在下方输入代码,然后运行。接下来查看以下数据。您这时可以看到可用于创建图形的按钮。
%sql
select * from df
点击饼图图标制作饼图。(我们此处仅选择两栏。在设置选项下进行更改。)
根据我的经验,Zeppelin存在缺陷。它有时会丢失笔记本,不能始终更新变量,而且图形特性会崩溃。因此,您可能必须删除段落,然后重新创建,这样才能修复错误。另外,您还需要将笔记本导出为JSON格式进行备份。
在这里,您可以练习使用Spark、JDBC、其他大数据数据库、或者%angular,而且如果您了解HTML和JavaScript,可以添加推送按钮,或者输入字段等。您还可以将Zeppelin与您的Github账号连接,将代码保存在账号中,并支持不同的版本。您还可以将Zeppelin存储在Amazon S3或Windows Azure中。如果丢失,由于它存储在/notebook 文件夹中,名称与笔记本的URL相同,因此,对于http://localhost:8080/#/notebook/2CJJYEZTG,它以JSON格式存储在文件夹notebook/2CJJYEZTG中。
网友评论