在单节点集群上安装hadoop,知道为什么我们需要创建以下内容
为什么我们需要新用户的 SSH 访问权限..?
为什么它应该能够连接到自己的用户帐户?
为什么我应该为新用户指定密码少..?
当所有节点都在同一台机器上时,为什么它们要显式通信..?
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
在单节点集群上安装hadoop,知道为什么我们需要创建以下内容
为什么我们需要新用户的 SSH 访问权限..?
为什么它应该能够连接到自己的用户帐户?
为什么我应该为新用户指定密码少..?
当所有节点都在同一台机器上时,为什么它们要显式通信..?
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/
在节点或本地机器之间设置无密码 ssh 不是强制性的。Hadoop 主要在需要时使用 http 进行跨节点的数据传输。
需要无密码 ssh 访问(在节点之间),以便您的 start-all.sh、start-dfs.sh 和 start-mapred.sh 脚本(据我所知)可用于启动停止 Hadoop 守护程序在分布式集群环境中。否则,进入每台机器并启动/停止 Hadoop 守护程序会很麻烦。
您还可以使用 hadoop-daemons.sh 或 hadoop-daemon.sh 来完成以您的 hadoop 用户身份登录的相同操作。
Cloudera Hadoop Distribution 甚至不使用这些脚本,而是提供 init.d 脚本来启动/停止 Hadoop 守护程序。
为什么我们需要新用户的 SSH 访问权限..?
因为您想与运行 Hadoop 守护程序的用户进行通信。请注意,ssh 实际上是从一个用户(在一台机器上)到另一个用户(在另一台机器上),而不仅仅是机器到机器。
为什么它应该能够连接到自己的用户帐户?
因为您只想通过一个命令启动所有守护程序。否则,您必须通过为每个守护程序发出命令来单独启动守护程序。即使您在单台机器上,也需要 ssh。
为什么我应该为新用户指定密码少..?
因为您不想每次启动 Hadoop 守护程序时都输入密码。那会很烦人,对吧?
当所有节点都在同一台机器上时,为什么它们要显式通信..?
你说的明确是什么意思?请记住,ssh 不适用于进程之间的通信。所有通信都通过 TCP/IP 进行。Hadoop 脚本需要 ssh,这样您就可以从一台机器上启动所有守护进程,而不必在每台机器上分别启动每个进程。
高温高压
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)。
使用此命令
$Sudo addgroup hadoop 如果不工作那么
$sudo adduser --ingroup hadoop hduser