Hadoop搭建过程中实现master与slave无密码登录

一,集群部署简介

1.hadoop简介

clip_image001[12] Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统HDFS(Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。

对于Hadoop的集群来讲,可以分成两大类角色:MasterSalve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任 务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统MapReduce在集群上实现了分布式计算任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。

1.2 环境说明

我的环境是在centos 6.5中配置的,Hadoop集群包括三个节点,一个master,两个slave (slave1,slave2).

1.3 ssh 无密码验证配置

Hadoop 运行过程中需要管理远端 Hadoop 守护进程,在 Hadoop 启动以后, NameNode 是通过 SSH Secure Shell )来启动和停止各个 DataNode 上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置 SSH 运用无密码公钥认证的形式,这样 NameNode 使用 SSH 无密码登录并启动 DataName 进程,同样原理, DataNode 上也能使用 SSH 无密码登录到  NameNode

(1)ssh基本原理

SSH之所以能够保证安全,原因在于它采用了公钥加密。过程如下:

(1)远程主机收到用户的登录请求,把自己的公钥发给用户。

(2)用户使用这个公钥,将登录密码加密后,发送回来。

(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

1.4 配置master无密码登录所有的slave

(1)ssh无密码原理

Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。


(2)master 机器上设置无密码登录

1)在master节点上利用# ssh-keygen命令生成一个无密码钥对。


2)利用#cd ~/.ssh/ 进入到ssh文件夹中,查看钥对是否生成。


已经显示生成私钥id_rsa以及公钥id_rsa.pub

3)利用# cat id_rsa.pub > authorized_keys 将公钥中的内容复制到authorized_keys中。


4)用上述方法对slave1以及slave2进行操作,并将slave1和slave2中的公钥复制到master中。

5)在master上利用# scp -rp authorized_keys slave1:~/.ssh/将三台机器上的公钥拷贝到slave1这台机器上。

6)同理,利用#scp -rp authorized_keys slave2:~/.ssh/将三台机器上的公钥复制到slave2这台机器上。


此时每台机器上都保存有对方的公钥,在进行远程ssh连接的时候都不需要密码了。








  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Hadoop是一个分布式计算框架,主要用于大数据处理。本篇文章将详细介绍Hadoop搭建过程。 1. 硬件环境准备 首先需要准备一些硬件环境,包括至少3台服务器,其1台为HadoopMaster节点,其他2台为HadoopSlave节点。每台服务器需要满足以下要求: - 操作系统为Linux - 至少有8GB的内存 - 至少有100GB的磁盘空间 - 可以互相访问(如使用SSH协议) 2. 下载Hadoop 从Apache Hadoop的官方网站(https://hadoop.apache.org/)下载Hadoop的最新版本。 3. 安装Java Hadoop运行需要Java环境,所以需要在每台服务器上安装Java。可以从Oracle官网下载Java的最新版本。 4. 配置SSH密码登录 为了方便Hadoop节点之间的通信,需要配置SSH密码登录。具体方法如下: - 在Master节点上生成SSH公钥和私钥:ssh-keygen -t rsa - 将公钥复制到所有Slave节点上:ssh-copy-id username@slave-hostname - 测试SSH是否可以免密码登录ssh slave-hostname 5. 配置Hadoop - 将Hadoop安装包解压到Master节点上,并将解压后的目录重命名为hadoop。 - 修改hadoop/etc/hadoop目录下的配置文件。具体配置如下: core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master-hostname:9000</value> </property> </configuration> hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/hdfs/datanode</value> </property> </configuration> mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobtracker.address</name> <value>master-hostname:54311</value> </property> <property> <name>mapreduce.jobtracker.http.address</name> <value>master-hostname:50030</value> </property> </configuration> yarn-site.xml <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master-hostname</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 6. 启动Hadoop 首先需要格式化Hadoop的文件系统:hadoop namenode -format 然后启动Hadoop:start-all.sh 7. 测试HadoopMaster节点上执行hadoop fs -mkdir /test,然后在Slave节点上执行hadoop fs -ls /,如果能显示/test目录,则说明Hadoop已经成功搭建。 8. 常见问题解决 - Hadoop启动失败:检查配置文件是否正确,并查看日志文件。 - 数据块丢失:检查磁盘空间是否足够,并尝试重新启动Hadoop。 - 任务执行失败:检查任务日志文件,并确保输入数据格式正确。 本篇文章介绍了Hadoop搭建过程,希望对读者有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值