琐碎-到底要不要SSH免密码设置


搭建了很多次hadoop2.2.0了,尝试过很多不同的启动方法、配置参数、位置,其中涉及到到底要不要配置SSH免密码登录的问题

先是搞清楚为什么需要SSH免密码登录


SSH免密码登录操作步骤:

... ...


在hadoop2.2.0中有三种启动方式:

  1. 使用hadoop-daemon.sh和yarn-daemon.sh分别启动每一个守护进程;
  2. 使用start-dfs.sh和start-yarn.sh分开启动不同模块的所有进程;
  3. 使用start-all.sh启动所有模块所有进程。

三种启动方式在实验阶段都可以使用,只不过第一种更适合于生产环境。


第一种不需要配置SSH免密码登录,第二种和第三钟需要,为什么?

第一种是逐一启动每一台机器的每一个进程,就是说如果是完全分布式环境,有多少台机器我就要在每台机器上使用这个命令去启动对应的命令,如在namenode上启动namenode就要使用sbin/hadoop-daemon.sh start namenode这个命令,在datanode上启动datanode,就要使用sbin/hadoop-daemon.sh start datanode这个命令,对应的yarn进程启动也一样,不过是使用yaen-daemon.sh。

而第二种和第三种是一种只在namenode上使用就可以启动整个集群的方便方式,它的原理是根据配置文件启动namenode上的对应进程然后再通过SSH协议登录到slave上启动对应的进程

琐碎-到底要不要SSH免密码设置


说到这已经明白了,那么我以前的一种说法或者一种认识就是错的。

因为只需要namenode远程登录到slave中启动对应进程,所以所有slave只需要拥有namenode的公钥就行了,不需要拥有其他slave的公钥。

不过我引出一种猜想,反正namenode和slave的信息是在配置文件中读出来的,所以如果slave能SSH免密码登录namenode,那么是不是就可以在namenode上格式化文件系统,而在某台slave上启动集群?呵呵。


那其他地方不用SSH协议了吗?

答案是不用了,只有启动的时候才用。(我现在的认识)

其他如心跳等是用了RPC协议,web UI使用了HTTP协议,所以在hadoop中RPC协议、HTTP协议远比SSH协议重要的多


上一篇:Entity Framework加载相关实体——延迟加载Lazy Loading、贪婪加载Eager Loading、显示加载Explicit Loading


下一篇:Asp.Net - 8.多线程