Amazon EMR上的Radoop初始化失败

安德鲁安德鲁 RapidMiner认证专家,RapidMiner认证大师,会员职位:47大师
2020年8月编辑 帮助

我很快就能让Radoop与Amazon EMR集群一起工作了。我的设置包括在一台Windows笔记本电脑上安装RapidMiner Studio和Radoop,该笔记本电脑对EMR机器具有完全不受约束的防火墙访问权限。我没有使用SOCKS(尽管我开始使用这个)。我使用的是Amazon提供的最新的Spark、Hive和Hadoop组件。

当组件上传到/tmp/radoop/_shared/db_default/ HDFS位置时,全连接测试失败。我可以看到在端口50010上正在连接数据节点,从我的笔记本电脑上看,这似乎失败了,因为ip地址未知。我已经尝试了dfs.client.use.datanode.hostname true/false解决方案,我看到这改变了它试图使用的名称-在一个设置中节点是/:50010(这是奇数),而在另一个设置中它是:50010(这是可信的,但不能解析)。

我没有在EMR集群上安装RapidMiner组件的奢侈,所以我的问题是,让名称节点暴露给运行RapidMiner Studio和Radoop的PC的最佳方法是什么?

标记:

最佳答案

  • 安德鲁安德鲁 RapidMiner认证专家,RapidMiner认证大师,会员职位:47大师
    解决方案接受

    你好彼得,

    我很高兴地说Spark的建议起作用了,现在我可以让Radoop连接完全工作了。

    正如我所承诺的,这里列出了要达到这个快乐的地方所要做的事情。

    创建EMR集群,并使用高级选项选择Hadoop、Pig、Spark、Hive和Mahout。

    登录到主节点并使用命令行确定eth0接口的内部IP地址。

    ifconfig

    在登录时,需要执行一些配置步骤才能使环境正常工作。这些在Radoop文档中有描述在这里。我观察到Java不需要任何特殊的配置,EMR是最新的。需要在HDFS中创建各种暂存位置的命令。我在下面重复了一下

    Hadoop fs -mkdir -p /tmp/ Hadoop -yarn/staging/history
    hadoop fs -chmod -R 777 /tmp/hadoop-yarn
    Hadoop fs -mkdir /user
    Hadoop fs -chmod 777 /user

    需要安装较低版本的Spark。下面是步骤。

    wget -O /home/hadoop/spark-1.6.3-bin/hadoop . 2.6.tgzhttps://d3kbcqa49mib13.cloudfront.net/spark-1.6.3-bin-hadoop2.6.tgz
    cd /home/hadoop
    Tar -xzvf spark-1.6.3-bin-hadoop2.6.tgz
    spark-1.6.3-bin-hadoop2.6/lib/spark-assembly-1.6.3-hadoop2.6.0.jar /tmp/

    继续按照说明设置网络连接。使用上面找到的IP地址作为NameNode地址、资源管理器地址和JobHistory服务器地址。不要试图使用任何其他名称或IP地址,因为它将不起作用。

    配置Hive Server地址为localhost。

    设置Hive端口为1235。

    将Spark版本设置为Spark 1.6,并将程序集jar位置设置为

    hdfs: / / / tmp / spark-assembly-1.6.3-hadoop2.6.0.jar

    设置Hadoop高级参数的方法如下

    dfs.client.use.legacy.blockreader真实
    hadoop.rpc.socket.factory.class.default org.apache.hadoop.net.SocksSocketFactory
    hadoop.socks.server localhost: 1234

    现在创建SOCKS连接。在Linux上,命令是这样的。

    SSH -i 。pem -N -D 1234 -L localhost:1235::10000(电子邮件保护)< nameofmaster >

    在上面的命令中,<>之间的内容需要由您所处环境的信息提供。

    在Windows操作系统下,使用Putty创建SOCKS连接。Radoop文档给出了一个很好的描述在这里。确保将hive-internal-address替换为使用ifconfig命令确定的ipaddress。

    现在您可以运行Radoop连接测试了,如果幸运的话,一切都会很顺利……

    耶!

    安德鲁

    phellinger yyhuang zprekopcsak

答案

  • zprekopcsakzprekopcsak RapidMiner认证专家、会员职位:47大师

    嗨,安德鲁,

    您需要使用一些网络技巧,因为您从集群接收的datanode IP地址是您的PC无法路由到的AWS内部IP地址。dfs.client.use.datanode.hostname不起作用,因为Hadoop服务没有暴露在面向公众的ip上。

    如果您可以在与EMR集群相同的本地网络(AWS术语中的VPC)中启动另一个EC2实例,那么我建议在该EC2实例上安装RapidMiner服务器并启用Radoop代理。更多详情请看这里:https://docs.www.turtlecreekpls.com/radoop/installation/networking-setup.html#radoop-proxy

    如果无法启动另一个实例,则需要设置SOCKS代理或VPN。

    最好,Zoltan

    phellinger
  • 安德鲁安德鲁 RapidMiner认证专家,RapidMiner认证大师,会员职位:47大师

    你好Zoltan

    我最初尝试使用SOCKS,但由于某种错误的配置,我无法使其工作。我能确信使用SOCKS方法最终将成为可能吗?在我花时间在上面之前,我只需要确保我能让它工作。我保证会把我所做的写下来。

    问候

    安德鲁

  • 安德鲁安德鲁 RapidMiner认证专家,RapidMiner认证大师,会员职位:47大师

    我几乎让它工作-最后一部分现在是一个失败的Spark位置

    [Jun 9, 2017 12:11:17 PM] SEVERE:任何支持的Spark版本的Spark作业都无法成功。似乎指定的汇编jar或其位置不正确:local:///usr/lib/spark/jars

    但是在EMR主节点上,我可以看到该位置的本地jar文件。是否需要特定的文件?

    phellinger
  • phellingerphellinger 员工,成员职位:103RM工程

    嗨,安德鲁,

    我能够在Spark 2.1的EMR-5.6.0上重现您的问题。

    值得注意的是,Amazon在推出新的EMR版本方面非常灵活:smileyhappy:,有时最新版本的变化会影响初始的RapidMiner连接设置。让我看看这个,但可能需要一些时间。

    同时,您也可以在这个集群上使用Spark 1.6,只需从http://spark.apache.org,将程序集放在HDFS上,并将Radoop连接更改为指向该程序集。例如,将这些命令运行为hadoop用户对主(我希望我没有打字错误):

    wget -O /home/hadoop/spark-1.6.3-bin-hadoop2.6.tgzhttps://d3kbcqa49mib13.cloudfront.net/spark-1.6.3-bin-hadoop2.6.tgz
    cd /home/hadoop
    Tar -xzvf spark-1.6.3-bin-hadoop2.6.tgz
    spark-1.6.3-bin-hadoop2.6/lib/spark-assembly-1.6.3-hadoop2.6.0.jar /tmp/

    截图2017-06-09:16.53.32.png

    最好的

    彼得

  • 安德鲁安德鲁 RapidMiner认证专家,RapidMiner认证大师,会员职位:47大师

    哎呀,我在说明书上打错字了

    应该是

    wget -O /home/hadoop/spark-1.6.3-bin-hadoop2.6.tgzhttps://d3kbcqa49mib13.cloudfront.net/spark-1.6.3-bin-hadoop2.6.tgz

    而且,Windows Putty的SOCKS说明是不正确的。要使用的地址是localhost -令人困惑-但它似乎可以工作。

  • phellingerphellinger 员工,成员职位:103RM工程

    嗨,安德鲁,

    谢谢你的精彩总结!

    我唯一没有得到的是Windows上的localhost地址注释。你的意思是你必须使用“localhost”作为地址(端口10000)而不是Hive节点的IP地址吗?我希望只有当HiveServer2在主节点上运行时才会起作用。

    最好的

    彼得

  • 安德鲁安德鲁 RapidMiner认证专家,RapidMiner认证大师,会员职位:47大师

    你好,彼得

    我有这些Putty设置。

    Capture.PNG腻子的设置

    如果我将本地端口1235设置更改为其他可能的候选名称或ip地址,我将在Radoop连接的快速测试中遇到失败。

    问候

    安德鲁

  • phellingerphellinger 员工,成员职位:103RM工程

    我们对亚马逊电子病历指南做了一个小的更新https://docs.www.turtlecreekpls.com/radoop/installation/distribution-notes.html

    都是Spark 1。x和Spark 2。X可以很容易地使用。最有效的配置是:将Spark assembly / Spark jars以压缩格式上传至HDFS,并在Radoop连接中提供HDFS的URL。

    (这个错误是由于Spark库只安装在主节点上,因此提交的作业无法在工作节点上找到它们。)

    最好的

    彼得

登录注册置评。