在外部 EC2 上运行 Zeppelin 以连接到 Amazon EMR



我想分享我在EC2上设置齐柏林飞艇服务器并将其连接到EMR以利用其计算能力的经验。

齐柏林飞艇 0.7.3 与 Spark 2.3.0 不兼容,尽管当您通过向导选项设置 EMR 时,您可以将两者放在一起。在这里,我想下载并安装齐柏林飞艇 0.7.3 以及 Spark 2.2.1,以便能够将其连接到 EMR 5.11.0。

此链接中记录了主要步骤: 在 Amazon EMR 上使用带有 Spark 的 S3 支持笔记本运行外部齐柏林飞艇实例

但是,本教程适用于较旧版本的齐柏林飞艇和火花,它工作正常,但是当涉及到较新版本的火花和齐柏林飞艇时,事情就有点棘手了。我尝试对齐柏林飞艇 0.7.3 和 spark 2.2.1 执行相同的步骤,但是当我在齐柏林飞艇控制台中尝试sc.version时,我曾经收到以下错误:

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)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

我花了几天时间才找到解决方法。解决方案是在 zeppelin-env.sh 文件中添加以下行:

export SPARK_HOME=/home/ec2-user/spark
export HADOOP_CONF_DIR=/home/ec2-user/hadoopconf
export MASTER=yarn
export HADOOP_USER_NAME=hdfs

特别是,最后一行是定义齐柏林飞艇访问 EMR 上的 hadoop 的用户的技巧。

齐柏林飞艇 0.8.0 和火花 2.3.0 也是如此。

我希望这对某人有用! :)

最新更新