2017-04-03 48 views
0

我试图从一个可访问的数据湖复制文件到Blob存储,同时启动群集。azure HDInsight脚本动作

我使用Azure的从文档

的Hadoop DistCp使用ADL命令://data_lake_store_account.azuredatalakestore.net:443/MyFolder文件wasb://[email protected]_account_name.blob.core.windows.net/example/data/gutenberg

现在,如果我试图自动化而不是硬编码,我该如何在脚本操作中使用它。具体如何在启动集群时动态获取关联的容器名称和storage_account_name。

回答

0

首先如下,

一个脚本操作是一个简单的bash脚本,你提供一个URI来,和参数。该脚本在HDInsight群集中的节点上运行。

所以你只需要参考官方教程Script action development with HDInsight来编写脚本动作并知道如何运行它。或者您可以调用REST API Run Script Actions on a running cluster (Linux cluster only)自动运行它。

对于如何动态获取容器名称&存储账户,任何语言的方式是调用REST API Get configurations和你从core-site在JSON响应想提取属性,或者只是调用Get configuration REST API在url中使用参数core-site作为{configuration Type},并从JSON响应中提取所需的属性。

希望它有帮助。

+0

谢谢彼得。这是我正在尝试的。我使用门户创建了一个集群。现在,当我上传要在头节点上运行的shell文件时,脚本操作失败。该脚本的目标是从数据湖下载一个tar文件。所以我想测试一下,写了一个单行shell文件(mkdir test),即使这个脚本失败了。我在这里做错了什么? – kmk1

+0

@ kmk1我想你是在谈论这个线程http://stackoverflow.com/questions/43142391/script-action-to-install-spark-job-server-on-hdinsight-head-node。它似乎是你的。 –