配置hadoop各个节点之间免密码登录实践笔记

2023-11-03

前言:
         

最近在搭建Hadoop环境需要设置无密码登陆,所谓无密码登陆其实是指通过证书认证的方式登陆,使用一种被称为"公私钥"认证的方式来进行ssh登录。

在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的。telnet,因为其不安全性,在linux系统中被搁置使用了。

       " 公私钥"认证方式简单的解释:首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa)。然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥.在使用ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了。


0-我们需要为每一台机器编辑hosts文件使主机名和主机ip映射关联起来 :vi /etc/hosts-->在里面添加所有节点的ip  主机名,类似如下格式:
                172.18.1.244    server244
                  172.18.1.246    server246
                172.18.1.249    server249  
添加完成后,再加上实现ssh免密码登录后就会在用户主目录下的.ssh文件夹下生成一个known_hosts文件
    
1-实现ssh免密码登陆之前首先得要保证你的电脑安装了ssh及sshd,并且确认本机sshd的配置文件( 需要root权限),我们先来编辑 vi /etc/ssh/sshd_config,

找到以下内容,并去掉注释符”#“

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile      .ssh/authorized_keys

 如果修改了sshd配置文件需要重启sshd服务   (需要root权限):在centos7之前可以通过service sshd restart重启,但是在centos7版本以上的输入service sshd restart它会重定向到一个新的命令,我们复制重定向的命令执行即可达到sshd重启的目的。
2-配置SSH的无密码登录可以首先新建专用用户hadoop进行操作,在此我们为每一个节点新建相同的hadoop用户,执行新建用户命令:adduser hadoop,接着为hadoop用户设置密码 passwd hadoop回车输入密码即可。
3-接着我们以hadoop用户身份登录:su hadoop,进入hadoop的家目录 cd /home/hadoop,输入:ssh-keygen -t rsa -P '',回车,会提示你保存生成的密码的位置,回车的话默认保存在当前目录下的.ssh文件夹下面,这样/home/hadoop/.ssh文件夹下面就有id_rsa和id_pub2个文件,然后我们把id_rsa.pub这个公钥文件追加到 authorized_keys文件中。

解释一下,第一条生成ssh密码的命令,-t 参数表示生成算法,有rsa和dsa两种;-P表示使用的密码,这里使用‘‘空字符串表示无密码。

第二条命令将生成的密钥写入authorized_keys文件。

这时输入 ssh localhost,弹出写入提示后回车,便可无密码登录本机(如果还是提示要输入密码则执行修改文件authorized_keys的权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能 ):

修改authorized_keys文件权限的命令是: chmod 600 ~/.ssh/authorized_keys
)。同理,将authorized_keys文件 通过 scp命令拷贝到其它主机相同目录下,则可无密码登录其它机器。拷贝的命令如下:

scp authorized_keys hadoop@172.18.1.246:/home/hadoop/.ssh  

正常情况下上面几步执行完成后,从主机A所在机器向主机A、主机B所在机器发起ssh连接,只有在第一次登录时需要输入密码,以后则不需要。

此时,只是实现了某一个节点登录自己和其他节点免密码,我们还需要以同样的方式实现其他的节点登录其它节点,就如同刚刚我们为这个节点设置的那样,也就是我们需要为其他节点生成公钥和私钥,然后把公钥保存(其实是追加)在authorized_keys文件中,接着把这个authorized_keys文件scp拷贝到其他所有节点,这样所有节点之间都可以实现和其他节点免密码登录,包括登录自己。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置hadoop各个节点之间免密码登录实践笔记 的相关文章

  • hadoop map reduce 中的错误处理

    根据文档 有几种方法可以在 MapReduce 中执行错误处理 以下是一些 A 使用枚举的自定义计数器 每个失败记录的增量 b 记录错误并稍后分析 计数器给出失败记录的数量 然而 为了获取失败记录的标识符 可能是其唯一键 以及发生异常的详细
  • 如果没有可用的指定分区路径,SPARK SQL 会失败

    我在 EMR 中使用 Hive Metastore 我可以通过 HiveSQL 手动查询表 但是当我在 Spark Job 中使用同一个表时 它说输入路径不存在 s3 导致 org apache hadoop mapred InvalidI
  • 如何在linux中的hdfs超级组中添加用户? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在研究 hdfs 然后我发现某些内容没有为超级用户执行权限检查 如果我的 linux 用户是 sandy 并且我想将 sandy 添加
  • 使用 Hive 自定义输入格式

    Update 好吧 事实证明以下不起作用的原因是因为我使用的是较新版本的InputFormat API import org apache hadoop mapred这是旧的与import org apache hadoop mapredu
  • HDFS 在大量小文件和 128 Mb 块大小上的行为

    我有很多 多达数十万个 小文件 每个文件 10 100 Kb 我的 HDFS 块大小等于 128 MB 我的复制因子等于 1 为每个小文件分配 HDFS 块有什么缺点吗 我见过相当矛盾的答案 答案说最小的文件占用整个块 https stac
  • Hadoop 构建在 Windows 中失败:native.sln 中缺少 zconf.h?

    我正在尝试在使用 Windows 10 家庭版的开发计算机上构建以下 hadoop 版本 hadoop 2 7 3 src 以下是我本地开发环境的详细信息 Windows 10家庭版 英特尔酷睿 i5 6200U CPU 2 30GHz 内
  • 在hbase中创建表

    我是 hbase 和 hadoop 的新手 无论如何 我已经成功建立了一个由3台机器组成的hadoop集群 现在我需要一些帮助来建立数据库 我有一个表 评论 包含字段 user id comments 对评论的评论 可以多个 和状态字段相同
  • 是否可以直接从文件加载镶木地板表?

    如果我有一个二进制数据文件 可以转换为 csv 格式 有什么方法可以直接从中加载镶木地板表吗 许多教程显示将 csv 文件加载到文本表 然后从文本表加载到镶木地板表 从效率的角度来看 是否可以像我已有的那样直接从二进制文件加载镶木地板表 理
  • Hive - 通过聚合跨组的值来创建映射列类型

    我有一个看起来像这样的表 customer category room date 1 A aa d1 1 A bb d2 1 B cc d3 1 C aa d1 1 C bb d2 2 A aa d3 2 A bb d4 2 C bb d4
  • HDFS容量:如何阅读“dfsadmin报告”

    我使用的是 Hadoop 2 6 0 当我运行 hdfs dfsadmin report 时 我得到类似这样的信息 简化 Configured Capacity 3 TB Present Capacity 400GB DFS Remaini
  • Hadoop setInputPathFilter错误

    我正在使用 Hadoop 0 20 2 无法更改 并且我想向我的输入路径添加一个过滤器 数据如下 path1 test a1 path1 test a2 path1 train a1 path1 train a2 我只想处理所有文件trai
  • Cat 文件与 HDFS 中的模式不匹配?

    我正在尝试 cat 与 hadoop HDFS 中的以下模式不匹配的文件 hdfs dfs cat gz 如何捕获所有不以 gz 结尾的文件 编辑 抱歉 但我需要在 Hadoop 中管理文件 显然 hdfs 附带的命令非常少 编辑2 所有文
  • Sqoop Import --password-file 功能在 sqoop 1.4.4 中无法正常工作

    我使用的是hadoop 1 2 1 sqoop版本是1 4 4 我正在尝试运行以下查询 sqoop import connect jdbc mysql IP 3306 database name table clients target d
  • Hive 中字符串数据类型是否有最大大小?

    谷歌了很多 但没有在任何地方找到它 或者这是否意味着只要允许集群 Hive 就可以支持任意大字符串数据类型 如果是这样 我在哪里可以找到我的集群可以支持的最大字符串数据类型大小 提前致谢 Hive 列表的当前文档STRING作为有效的数据类
  • 在 Hive 中分解一行 XML 数据

    我们将 XML 数据作为名为 XML 的单个字符串列加载到 Hadoop 中 我们正在尝试检索数据级别 并将其标准化或分解为单行进行处理 你知道 就像表格一样 已经尝试过分解功能 但没有得到我们想要的 示例 XML
  • Spark MLLib 存在问题,导致概率和预测对于所有内容都相同

    我正在学习如何将机器学习与 Spark MLLib 结合使用 目的是对推文进行情感分析 我从这里得到了一个情感分析数据集 http thinknook com wp content uploads 2012 09 Sentiment Ana
  • Sqoop mysql错误-通信链路故障

    尝试运行以下命令 sqoop import connect jdbc mysql 3306 home credit risk table bureau target dir home sqoop username root password
  • 异常:java.lang.Exception:使用 master 'yarn' 运行时,必须在环境中设置 HADOOP_CONF_DIR 或 YARN_CONF_DIR。在火花中

    我是新的阿帕奇火花 我已经在spark独立模式下测试了一些应用程序 但我想运行应用程序yarn模式 我正在windows中运行apache spark 2 1 0 这是我的代码 c spark gt spark submit2 master
  • 如何通过Python访问Hive?

    https cwiki apache org confluence display Hive HiveClient HiveClient Python https cwiki apache org confluence display Hi
  • hive 从两个数组创建映射或键/值对

    我有两个具有相同数量值的数组 它们映射为 1 1 我需要从这两个数组创建一个键 值对或映射 键 值 任何想法或提示都会有帮助 当前表结构 USA WEST NUMBER Street City 135 Pacific Irvine USA

随机推荐