标签: apache-zeppelin

如何在现有的Apache Spark独立集群上安装Apache Zeppelin

我在AWS上有一个现有的Apache Spark(1.3版本)独立集群,我想安装Apache Zeppelin.

我有一个非常简单的问题,我是否必须在Spark的主人身上安装Zeppelin?

如果答案是肯定的,我可以使用该指南https://github.com/apache/incubator-zeppelin#build吗?

谢谢大家

bigdata amazon-web-services apache-spark apache-spark-sql apache-zeppelin

6
推荐指数
1
解决办法
3441
查看次数

Zeppelin抛出java.lang.OutOfMemoryError:Java堆空间

我试图使用Zeppelin与以下代码:

val dataText = sc.parallelize(IOUtils.toString(new URL("http://XXX.XX.XXX.121:8090/my_data.txt"),Charset.forName("utf8")).split("\n"))


case class Data(id: string, time: long, value1: Double, value2: int, mode: int)
val dat = dataText .map(s => s.split("\t")).filter(s => s(0) != "Header:").map(
    s => Data(s(0), 
            s(1).toLong,
            s(2).toDouble,
            s(3).toInt,
            s(4).toInt
        )
).toDF()
dat.registerTempTable("mydatatable")
Run Code Online (Sandbox Code Playgroud)

这一直让我误以为:

java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2367)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:535)
    at java.lang.StringBuilder.append(StringBuilder.java:204)
    at org.apache.commons.io.output.StringBuilderWriter.write(StringBuilderWriter.java:138)
    at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2002)
    at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1980)
    at org.apache.commons.io.IOUtils.copy(IOUtils.java:1957)
    at org.apache.commons.io.IOUtils.copy(IOUtils.java:1907)
    at org.apache.commons.io.IOUtils.toString(IOUtils.java:778)
    at org.apache.commons.io.IOUtils.toString(IOUtils.java:896)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:38)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:43)
    at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:45)
    at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:47)
    at $iwC$$iwC$$iwC$$iwC.<init>(<console>:49)
    at $iwC$$iwC$$iwC.<init>(<console>:51) …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-zeppelin

6
推荐指数
1
解决办法
7652
查看次数

ClassNotFoundException:org.apache.spark.repl.SparkCommandLine

我是Apache Zeppelin的新手,我尝试在本地运行它.我尝试运行一个简单的健全性检查,看看它是否sc存在并得到以下错误.

我编译它为pyspark和spark 1.5(我使用spark 1.5).我将内存增加到5 GB并将端口更改为8091.

我不确定我做错了什么,所以我得到以下错误,我该如何解决它.

提前致谢

抛出java.lang.ClassNotFoundException:org.apache.spark.repl.SparkCommandLine在java.net.URLClassLoader.findClass(URLClassLoader.java:381)在java.lang.ClassLoader.loadClass(ClassLoader.java:424)在sun.misc.启动$ AppClassLoader.loadClass(Launcher.java:331)在java.lang.ClassLoader.loadClass(ClassLoader.java:357)在org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:401)在org.apache .zeppelin.interpreter.ClassloaderInterpreter.open(ClassloaderInterpreter.java:74)org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:68)at org.apache.zeppelin.spark.PySparkInterpreter.getSparkInterpreter(PySparkInterpreter.java) :485)org.apache.zeppelin.spark.PySparkInterpreter.createGatewayServerAndStartScript(PySparkInterpreter.java:174)org.apache.zeppelin.spark.PySparkInterpreter.open(PySparkInterpreter.java:152)org.apache.zeppelin.interpreter. org.apache.zeppelin.interpreter.Lazy中的ClassloaderInterpreter.open(ClassloaderInterpreter.java:74)org.apache.zeppelin.interpret(LazyOpenInterpreter.java:92)中的OpenInterpreter.open(LazyOpenInterpreter.java:68)位于org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer $ InterpretJob.jobRun(RemoteInterpreterServer.java: 302)在org.apache.zeppelin.scheduler.Job.run(Job.java:171)在org.apache.zeppelin.scheduler.FIFOScheduler $ 1.run(FIFOScheduler.java:139)在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511)在java.util.concurrent.FutureTask.run(FutureTask.java:266)在java.util.concurrent.ScheduledThreadPoolExecutor中$ ScheduledFutureTask.access $ 201(ScheduledThreadPoolExecutor.java:180)在爪哇. util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java: 617)在java.lang.Thread.run(Thread.java:745)

更新 我的解决方案是将我的scala版本从2.11.*降级到2.10.*,再次构建Apache Spark并运行Zeppelin.

scala apache-spark pyspark apache-zeppelin

6
推荐指数
1
解决办法
2336
查看次数

在单个图表中显示多个数据点

斯卡拉:

val df = sc.parallelize(Seq(
    ("Jan" , "1", "1","3"),
    ("Feb" , "2", "5","2"),
    ("Mar" , "2", "3","1")))
    .toDF("time" , "f1", "f2", "f3")

 df.registerTempTable("inout") 
Run Code Online (Sandbox Code Playgroud)

sql:

%sql 
select time , f1 , f2 , f3
from inout 
Run Code Online (Sandbox Code Playgroud)

但是我想在单个可视化上绘制所有数据点的图形,因此应绘制三条线,其中每条线显示f1,f2,f3的点.目前只显示"f1":

在此输入图像描述

如何在单线图中显示所有数据?

换句话说,如何将这三个折线图显示为单个图表?:

在此输入图像描述

apache-zeppelin

6
推荐指数
1
解决办法
2122
查看次数

将Apache Zeppelin笔记本集成到Web应用程序中

我想将Apache Zeppelin笔记本集成到另一个已与Apache Spark集成的Web应用程序中。

最好的方法是什么?我正在考虑两种可能性:

  • 我自己使用Zeppeling REST API渲染笔记本和段落:Zeppelin提供了用于与笔记本和段落进行交互的REST API。很棒,但是我觉得在构建自己的UI来渲染笔记本和段落时,我必须从Zeppelin复制很多前端。
  • 渲染一个显示Zeppelin笔记本的iframe,并在Spark级别上进行集成:这将重用Zeppelin的笔记本渲染,但以iframe为代价。

我希望我的意图很明确。如果有一种简单的渲染Zeppelin笔记本的方法,我希望第一种选择。

apache-spark apache-zeppelin

6
推荐指数
1
解决办法
2410
查看次数

Zeppelin:如何从sql解释器填充动态表单下拉列表

我使用Zeppelin包中提供的本机驱动程序将我的Zeppelin连接到postgresql.我有一个专栏 - ID(表中有一个表'a'),其中包含进一步处理所需的所有ID.

====================================
ID      |   Value 1     |   Value2
====================================
1       |   23          |   text1
2       |   13          |   text2
3       |   03          |   text3
4       |   99          |   text4
5       |   12          |   text5
Run Code Online (Sandbox Code Playgroud)

现在,如何将此ID列填充为动态表单以进一步选择用户下拉列表?

我知道我可以使用spark上下文和JDBC驱动器.但那将是一种矫枉过正.我所有的进一步处理都是用DB进行分析.所以我更喜欢从psql解释器本身创建下拉动态表单.

interpreter dynamicform apache-zeppelin

6
推荐指数
0
解决办法
579
查看次数

如何在dockerized Apache Zeppelin后面公开Spark Driver?

我目前正在使用Apache Zeppelin + Spark 2.x内部的普通发行版构建自定义docker容器.

我的Spark作业将在远程集群中运行,我将yarn-client用作主人.

当我运行笔记本并尝试打印时sc.version,程序卡住了.如果我转到远程资源管理器,已经创建并接受了一个应用程序,但在日志中我可以阅读:

INFO yarn.ApplicationMaster: Waiting for Spark driver to be reachable

我对情况的理解是集群无法与容器中的驱动程序通信,但我不知道如何解决这个问题.

我目前正在使用以下配置:

  • spark.driver.port设置为PORT1和选项-p PORT1:PORT1传递给容器
  • spark.driver.host设置为172.17.0.2(容器的IP)
  • SPARK_LOCAL_IP设置为172.17.0.2(容器的IP)
  • spark.ui.port设置为PORT2和选项-p PORT2:PORT2传递给容器

我觉得我应该将SPARK_LOCAL_IP更改为主机ip,但如果我这样做,SparkUI无法启动,阻止该过程前一步.

提前感谢任何想法/建议!

docker apache-spark apache-zeppelin

6
推荐指数
1
解决办法
1226
查看次数

SparkSession通过JDBC通过HiveServer2连接不返回任何内容

我有一个关于在Apache Zeppelin中使用JDBC和SparkSession从远程HiveServer2读取数据的问题。

这是代码。

%spark

import org.apache.spark.sql.Row
import org.apache.spark.sql.SparkSession

val prop = new java.util.Properties
prop.setProperty("user","hive")
prop.setProperty("password","hive")
prop.setProperty("driver", "org.apache.hive.jdbc.HiveDriver")

val test = spark.read.jdbc("jdbc:hive2://xxx.xxx.xxx.xxx:10000/", "tests.hello_world", prop)

test.select("*").show()
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我没有错误,但是也没有数据,我只是检索表的所有列名,如下所示:

+--------------+
|hello_world.hw|
+--------------+
+--------------+
Run Code Online (Sandbox Code Playgroud)

代替这个:

+--------------+
|hello_world.hw|
+--------------+
+ data_here    +
+--------------+
Run Code Online (Sandbox Code Playgroud)

我正在所有这些上运行:Scala 2.11.8,OpenJDK 8,Zeppelin 0.7.0,Spark 2.1.0(bde / spark),Hive 2.1.1(bde / hive

我在Docker中运行此安装程序,每个安装程序都有自己的容器,但连接在同一网络中。

此外,它仅在我使用Spark Beeeline连接到我的远程Hive时有效。

我忘了什么吗?任何帮助,将不胜感激。提前致谢。

编辑:

我找到了一种解决方法,即在Spark和Hive之间共享docker卷或docker数据容器,更确切地说是在两者之间共享Hive仓库文件夹,并配置spark-defaults.conf。然后,您可以在没有JDBC的情况下通过SparkSession访问配置单元。这是逐步的方法:

  1. 在Spark和Hive之间共享Hive仓库文件夹
  2. 像这样配置spark-defaults.conf:

    spark.serializer     org.apache.spark.serializer.KryoSerializer
    
    spark.driver.memory              Xg
    
    spark.driver.cores       X
    
    spark.executor.memory        Xg
    
    spark.executor.cores         X
    
    spark.sql.warehouse.dir         file:///your/path/here
    
    Run Code Online (Sandbox Code Playgroud)

将“ X”替换为您的值。

希望能帮助到你。

hive scala jdbc apache-spark apache-zeppelin

6
推荐指数
0
解决办法
416
查看次数

通过zeppelin从docker-hadoop-spark - workbench访问hdfs

我安装了https://github.com/big-data-europe/docker-hadoop-spark-workbench

然后开始了docker-compose up.我导航到git自述文件中提到的各种网址,所有内容似乎都已启动.

然后我开始了一个本地的apache zeppelin:

./bin/zeppelin.sh start
Run Code Online (Sandbox Code Playgroud)

在zeppelin解释器设置中,我已导航到spark解释器并更新master以指向安装的本地群集 docker

master:从更新local[*]spark://localhost:8080

然后我在笔记本中运行以下代码:

import  org.apache.hadoop.fs.{FileSystem,Path}

FileSystem.get( sc.hadoopConfiguration ).listStatus( new Path("hdfs:///")).foreach( x => println(x.getPath ))
Run Code Online (Sandbox Code Playgroud)

我在zeppelin日志中遇到此异常:

 INFO [2017-12-15 18:06:35,704] ({pool-2-thread-2} Paragraph.java[jobRun]:362) - run paragraph 20171212-200101_1553252595 using null org.apache.zeppelin.interpreter.LazyOpenInterpreter@32d09a20
 WARN [2017-12-15 18:07:37,717] ({pool-2-thread-2} NotebookServer.java[afterStatusChange]:2064) - Job 20171212-200101_1553252595 is finished, status: ERROR, exception: null, result: %text java.lang.NullPointerException
    at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38)
    at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:33)
    at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext_2(SparkInterpreter.java:398)
    at org.apache.zeppelin.spark.SparkInterpreter.createSparkContext(SparkInterpreter.java:387)
    at org.apache.zeppelin.spark.SparkInterpreter.getSparkContext(SparkInterpreter.java:146)
    at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:843)
    at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:70)
    at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:491)
    at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
    at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139) …
Run Code Online (Sandbox Code Playgroud)

hadoop hdfs docker apache-spark apache-zeppelin

6
推荐指数
1
解决办法
373
查看次数

通过API与Jupyter Notebook交互

问题:我想通过Jupyter API与另一个应用程序中的Jupyter进行交互,特别是我至少希望从该应用程序中运行我的笔记本(对我来说,完美的变体是在运行之前编辑一些段落)。我已经阅读了API文档,但没有找到我需要的东西。

为此,我使用了具有相同结构(笔记本和段落)的Apache Zeppelin

有人出于我刚刚描述的目的使用Jupyter吗?

python remote-access jupyter apache-zeppelin jupyter-notebook

6
推荐指数
1
解决办法
3530
查看次数