如何在 apache zeppelin 中使用 hdfs shell 命令?

Posted

技术标签:

【中文标题】如何在 apache zeppelin 中使用 hdfs shell 命令?【英文标题】:How to use hdfs shell commands with apache zeppelin? 【发布时间】:2018-05-30 07:49:49 【问题描述】:

我已经通过下载和解压binary with all interpreters安装了apache zeppelin

然后我开始使用:

./bin/zeppelin.sh start

然后我使用以下代码创建了一个新笔记本:

%sh

hdfs fs -ls

当我运行它时,我得到了结果:

bash: hdfs: command not found
ExitValue: 127

zeppelin 不应该带有hdfs interpreter 或支持hdfs 命令吗?

如果 zeppelin 不包含 hdfs 文件系统,那么我启动了: https://github.com/big-data-europe/docker-hadoop-spark-workbench

然后使用 docker-compose up 启动它。我导航到 git 自述文件中提到的各种 url,一切似乎都已启动。我认为这意味着我有一些 hdfs 已启动,但我不确定我是否应该这样做,或者 zeppelin 的“所有”解释器包已经包含它,无论如何我都得到了相同的结果。

我的最终目标只是hdfssparkzeppelin 的帮助下的本地游乐场。

我应该如何使用包含all interpreters 的本地安装的apache zeppelin 运行hdfs 命令,例如hdfs fs -ls?是否包含hdfshdfs 命令?

【问题讨论】:

【参考方案1】:

确实如此,但您使用的是 shell 解释器。

确保已安装file 解释器:

$ ./bin/install-interpreter.sh --list | grep file
## file         HDFS file interpreter

如果不安装它

$ ./bin/install-interpreter.sh --name file

file解释器添加到笔记本并使用它

%file

ls /

要使用hadoop fs 命令,您需要安装 Hadoop(Hadoop 二进制文件以及正确的配置和环境变量):

%sh

$HADOOP_HOME/bin/hadoop fs -ls /

对于更复杂的任务,您将需要一个作为 HDFS 解释器(又名file 解释器)

目前只支持浏览。

【讨论】:

这听起来比实际更严重 - 下载二进制文件,编辑配置,设置 HADOOP_HOMEHADOOP_CONF_DIR(在 zeppelin-env.sh 中就可以了),你应该已经设置好了。或者直接在您的代码中使用 HDFS 客户端。 我也没有看到“文件”解释器的任何文档 - file 解释器是 HDFS 解释器。我猜名字的选择很不幸。

以上是关于如何在 apache zeppelin 中使用 hdfs shell 命令?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的应用程序中显示 jupyter notebook 或 apache zeppelin?

在 Apache Livy Interpreter for Zeppelin 中访问 zeppelin 上下文的问题

Apache Zeppelin 如何可视化来自 Hbase 的数据?

如何通过 python 解释器在 Apache Zeppelin 上使用凭证注入

Apache Zeppelin 有智能感知吗?

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