我使用PowerShell创建了一个Azure HDInsight集群 . 现在我需要在工作节点上安装一些自定义软件,这些软件是我将使用Hadoop流运行的映射器所必需的 . 我还没有找到任何可以帮助我完成此任务的PowerShell命令 . 我可以准备一份可以安排所有 Worker 的自定义工作,但我不相信这是最好的解决方案 . 有更好的选择吗?
edit :
使用AWS Elastic MapReduce,可以选择在创建集群时定义的引导操作中安装其他软件 . 我在寻找类似的东西 .
您可以使用引导操作来安装其他软件并更改群集上的应用程序配置 . 引导操作是Amazon EMR启动群集时在群集节点上运行的脚本 . 它们在Hadoop启动之前和节点开始处理数据之前运行 .
2 回答
简短的回答是你没有 . 从缓存的角度来看,它并不理想,但您应该能够将所有作业依赖项捆绑到映射reduce jar中,该jar由YARN(Hadoop的一部分)为您分布在集群中 . 从广义上讲,这对最终用户来说是透明的,因为它都是通过作业提交过程处理的 .
如果你需要一些大的,这是一个跨多个作业的共享依赖,并且你不希望每次都复制它,你可以将它保存在wasb:// storage,并在类路径中引用它,但这可能会导致你如果你是使用.NET Streaming API的复杂性 .
我刚刚从拼贴中听到我需要更新我的Azure PS,因为最近添加了一个新的Cmdlet
Add-AzureHDInsightScriptAction
,它就是这样做的 .Customize HDInsight clusters using Script Action