hadoop

pqwbnv8z  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(419)

在单节点集群上安装hadoop,你知道为什么我们需要创建以下内容吗
为什么新用户需要ssh访问。。?
为什么它应该能够连接到自己的用户帐户?
为什么要为新用户指定较少的密码。。?
当所有节点都在同一台机器上时,为什么它们要显式地通信。。?
http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/

uyto3xhc

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守护进程。

vs3odd8k

vs3odd8k2#

使用此命令
$sudo addgroup hadoop如果不工作那么
$sudo adduser—ingroup hadoop hduser

u7up0aaq

u7up0aaq3#

为什么新用户需要ssh访问。。?
因为您希望与运行hadoop守护进程的用户通信。注意,ssh实际上是从一个用户(在一台机器上)到另一个用户(在另一台机器上),而不仅仅是机器到机器。
为什么它应该能够连接到自己的用户帐户?
因为您只需要一个命令就可以启动所有守护进程。否则,您必须通过为每个守护进程发出命令来单独启动守护进程。ssh是必需的,即使您在一台机器上。
为什么要为新用户指定较少的密码。。?
因为你不想每次启动hadoop守护进程时都输入密码。那会很烦人,对吧?
当所有节点都在同一台机器上时,为什么它们要显式地通信。。?
你说的明确是什么意思?请记住,ssh不用于进程之间的通信。所有的通信都是通过tcp/ip进行的。hadoop脚本需要ssh,这样就可以从一台机器上启动所有守护进程,而不必在每台机器上分别启动每个进程。
hth公司

nfeuvbwi

nfeuvbwi4#

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)。

相关问题