嗨,我是Hadoop的新手。
Hadoop版本(2.2.0)
目标:
与以下问题建立关系:
问题:
在群集中,主服务器中的用户名需要与从服务器中的用户名相同。我问这个的原因是,当我尝试使用start-dfs.sh时,集群的后配置说日志说他们能够ssh到从属节点但是无法找到位置“/ home / xxx /在奴隶中的hadoop / bin / hadoop-daemon.sh“。 “xxx”是我的主用户名而不是奴隶。此外,由于我的纯Windows版本的奴隶安装在C:/ hadoop / ...下,主人看看env变量$ HADOOP_HOME来检查安装在奴隶的位置?我需要设置其他任何env变量吗?
我的目标是在奴隶上使用Windows hadoop构建,因为hadoop现在正式支持Windows。但是,在cygwin下运行Linux构建来实现这一点更好。问题来了,因为我看到start-dfs.sh试图执行hadoop-daemon.sh而不是某些* .cmd。
如果这个设置将来有用,我可能会遇到的问题是Pig,Mahout等是否会在这种设置中运行,因为我还没有看到Pig,Mahout for Windows的版本。这些组件是否只需要存在于主节点上,还是需要位于从属节点中。我首先使用mahout脚本尝试独立模式时看到了两种运行mahout的方法,我可以在linux中使用它,然后使用yarn jar命令,我在使用windows版本时传入了mahout jar。在Mahout / Pig(使用提供的sh脚本时)的情况下,假设奴隶已经安装了jar,那么Ubuntu + Windows组合似乎不起作用。请指教。
正如我所提到的,这更像是一个实验,而不是一个实施计划。我们的最终环境将完全在Linux上。谢谢你的建议。
答案 0 :(得分:1)
使用更加标准的部署hadoop的方法可能会取得更大的成功。尝试使用ubuntu vm for master和slave。
您还可以尝试进行伪分布式部署,其中所有进程都在单个VM上运行,因此无需考虑多个操作系统。
答案 1 :(得分:1)
我只使用相同的用户名。通常,SSH允许使用-l命令以不同的登录名登录。但这可能会变得棘手。您必须在从属文件中列出您的从属。
至少在手册https://hadoop.apache.org/docs/r0.19.1/cluster_setup.html#Slaves我找不到任何添加用户名的内容。可能值得尝试将-l login_name添加到slave conf文件中的slavenode,看看它是否有效。