在单节点集群上安装hadoop,你知道为什么我们需要创建以下内容吗为什么新用户需要ssh访问。。?为什么它应该能够连接到自己的用户帐户?为什么要为新用户指定较少的密码。。?当所有节点都在同一台机器上时,为什么它们要显式地通信。。?http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
uyto3xhc1#
在节点或本地计算机之间安装ssh不是强制性的。hadoop主要使用http在需要时跨节点进行数据传输。需要无密码ssh访问(在节点之间),这样就可以使用start-all.sh、start-dfs.sh和start-mapred.sh脚本(据我所知)在分布式集群环境中启动和停止hadoop守护程序。否则,进入每台机器并启动/停止hadoop守护进程会变得很麻烦。您还可以使用hadoop-daemons.sh或hadoop-daemon.sh来完成与hadoop用户登录相同的任务。ClouderaHadoop发行版甚至不使用这些脚本,而是提供init.d脚本来启动/停止hadoop守护进程。
vs3odd8k2#
使用此命令$sudo addgroup hadoop如果不工作那么$sudo adduser—ingroup hadoop hduser
u7up0aaq3#
为什么新用户需要ssh访问。。?因为您希望与运行hadoop守护进程的用户通信。注意,ssh实际上是从一个用户(在一台机器上)到另一个用户(在另一台机器上),而不仅仅是机器到机器。为什么它应该能够连接到自己的用户帐户?因为您只需要一个命令就可以启动所有守护进程。否则,您必须通过为每个守护进程发出命令来单独启动守护进程。ssh是必需的,即使您在一台机器上。为什么要为新用户指定较少的密码。。?因为你不想每次启动hadoop守护进程时都输入密码。那会很烦人,对吧?当所有节点都在同一台机器上时,为什么它们要显式地通信。。?你说的明确是什么意思?请记住,ssh不用于进程之间的通信。所有的通信都是通过tcp/ip进行的。hadoop脚本需要ssh,这样就可以从一台机器上启动所有守护进程,而不必在每台机器上分别启动每个进程。hth公司
nfeuvbwi4#
slaves.sh 用于启动远程节点:
slaves.sh
for slave in `cat "$HOSTLIST"|sed "s/#.*$//;/^$/d"`; do ssh $HADOOP_SSH_OPTS $slave $"${@// /\\ }" \ 2>&1 | sed "s/^/$slave: /" & if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then sleep $HADOOP_SLAVE_SLEEP fi done
它依赖于 ssh ,如你所见。虽然您可以在不需要新用户和ssh配置的情况下完成整个教程,但我猜,作为一个教程,当您必须部署/配置/启动/停止一个真正的集群(即远程节点)时,它并不能为您提供一个良好的开端。正如@jterocker指出的,像cloudera这样的发行版使用其他脚本来启动/停止守护进程(但我猜它们仍然依赖于ssh),而像hortonworks在windows上的hadoop这样的发行版将使用另一种机制(即powershell和winrm而不是ssh)。
ssh
4条答案
按热度按时间uyto3xhc1#
在节点或本地计算机之间安装ssh不是强制性的。hadoop主要使用http在需要时跨节点进行数据传输。
需要无密码ssh访问(在节点之间),这样就可以使用start-all.sh、start-dfs.sh和start-mapred.sh脚本(据我所知)在分布式集群环境中启动和停止hadoop守护程序。否则,进入每台机器并启动/停止hadoop守护进程会变得很麻烦。
您还可以使用hadoop-daemons.sh或hadoop-daemon.sh来完成与hadoop用户登录相同的任务。
ClouderaHadoop发行版甚至不使用这些脚本,而是提供init.d脚本来启动/停止hadoop守护进程。
vs3odd8k2#
使用此命令
$sudo addgroup hadoop如果不工作那么
$sudo adduser—ingroup hadoop hduser
u7up0aaq3#
为什么新用户需要ssh访问。。?
因为您希望与运行hadoop守护进程的用户通信。注意,ssh实际上是从一个用户(在一台机器上)到另一个用户(在另一台机器上),而不仅仅是机器到机器。
为什么它应该能够连接到自己的用户帐户?
因为您只需要一个命令就可以启动所有守护进程。否则,您必须通过为每个守护进程发出命令来单独启动守护进程。ssh是必需的,即使您在一台机器上。
为什么要为新用户指定较少的密码。。?
因为你不想每次启动hadoop守护进程时都输入密码。那会很烦人,对吧?
当所有节点都在同一台机器上时,为什么它们要显式地通信。。?
你说的明确是什么意思?请记住,ssh不用于进程之间的通信。所有的通信都是通过tcp/ip进行的。hadoop脚本需要ssh,这样就可以从一台机器上启动所有守护进程,而不必在每台机器上分别启动每个进程。
hth公司
nfeuvbwi4#
slaves.sh
用于启动远程节点:它依赖于
ssh
,如你所见。虽然您可以在不需要新用户和ssh配置的情况下完成整个教程,但我猜,作为一个教程,当您必须部署/配置/启动/停止一个真正的集群(即远程节点)时,它并不能为您提供一个良好的开端。正如@jterocker指出的,像cloudera这样的发行版使用其他脚本来启动/停止守护进程(但我猜它们仍然依赖于ssh),而像hortonworks在windows上的hadoop这样的发行版将使用另一种机制(即powershell和winrm而不是ssh)。