hadoop入门系列之三【hadoop的安装与配置】

本文详细介绍了如何在生产环境中搭建Hadoop完全分布式集群,包括配置hosts、创建Hadoop账户、SSH无密码访问、安装JDK以及配置和启动Hadoop服务等关键步骤。确保每个节点的正确配置,通过SSH测试连接,最后验证Hadoop集群的运行状态和运行示例程序wordcount,完成集群搭建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、概述

Hadoop安装分为三种方式,分别为单机、伪分布式、完全分布式,安装过程不难,在此主要详细叙述完全分布式的安装配置过程,毕竟生产环境都使用的完全分布式,前两者作为学习和研究使用。按照下述步骤一步一步配置一定可以正确的安装Hadoop分布式集群环境。

2、Hadoop分布式集群搭建

2.1、软件准备


2.2、环境准备

2.3、操作步骤

  • 配置hosts

说明:配置hosts文件的作用,主要用于确定每个节点的IP地址,方便后续master节点能快速查询到并访问各个节点,hosts文件路径为/etc/hosts,三台服务器上的配置过程如下:

以下操作在三台服务器上都操作。

[root@master ~]# vi /etc/hosts


配置好之后在各台服务器上使用域名看是否能ping通

在master上ping slave1


在master上ping slave2


在slave1上ping master


在slave1上ping slave2


在slave2上ping master


在slave2上ping slave1


如果以上步骤均和图中操作一致则说明hosts没有配置错误,接下来关闭三台服务器的防火墙操作,以免在后面的操作引起不必要的错误。


  • 创建Hadoop账户

说明:创建hadoop集群专门设置的一个用户组以及用户。

以下操作在三台服务器上都操作

#创建用户组为hadoop

#[root@master ~]# groupadd hadoop

添加一个hadoop用户,此用户属于hadoop组,并且具有root权限

[root@master ~]# useradd -s /bin/bash -d /home/hodoop -m hadoop -g hadoop -G root

#设置hadoop用户的密码 为hadoop(自定义即可)

[root@master ~]# passwd hadoop

更改用户 hadoop 的密码 。

新的 密码:

无效的密码: 它基于字典单词

无效的密码: 过于简单

重新输入新的 密码:

passwd: 所有的身份验证令牌已经成功更新。

#创建好账户之后最好用su hadoop验证下能否正常切换至hadoop账户

[root@slave1 ~]# su hadoop

[hadoop@slave1 root]$ 

至此创建hadoop账户步骤完成,很简单吧,创建hadoop密码建议三台服务器的hadoop账户密码均为一样,避免在后续的操作中出现不必要的麻烦和错误,因为后续很多地方需要输入hadoop密码。

  • SSH无密码访问主机

说明:这一部分在搭建hadoop集群的环境过程很重要,非常重要,很多细小的点需要注意,请仔细按照步骤一步一步的来完成配置,在此也对SSH做一个简单的介绍,SSH主要通过RSA算法来产生公钥与私钥,在数据传输过程中对数据进行加密来保障数据的安全性和可靠性,公钥部分是公共部分,网络上任一节点均可以访问,私钥主要用来对数据进行加密。以防数据被盗取,总而言之,这是一种非对称加密算法,想要破解还是非常有难度的,hadoop集群的各个节点之间需要进行数据访问,被访问的节点对于访问用户节点的可靠性必须进行验证,hadoop采用的是ssh的方法通过密钥验证以及数据加解密的方式进行远程安全登录操作,当然,如果hadoop对每个节点的访问均需要进行验证,其效率将会大大的降低,所以才需要配置SSH免密码的方法直接远程连入被访问的节点,这样将大大提高访问效率。

以下操作三台服务器均要操作

#确定每台服务器的是否安装ssh服务,如下则说明ssh服务已经正常安装,下面操作为通过ssh远程访问登陆自己

[root@master ~]# ssh localhost

root@localhost's password: 

Last login: Fri Jun 26 16:48:43 2015 from 192.168.1.102

[root@master ~]# 

#退出当前登陆

[root@master ~]# exit

logout

Connection to localhost closed.

[root@master ~]# 

#当然还可以通过以下方式验证ssh的安装(非必须)


#如果没有上述截图所显示的,可以通过yum或者rpm安装进行安装(非必须)

[root@master ~]# yum install ssh

#安装好之后开启ssh服务,ssh服务一般又叫做sshd(非必须,前提是没有安装ssh)

[root@master ~]# service sshd start

#或者使用/etc/init.d/sshd start(非必须)

[root@master ~]# /etc/init.d/sshd start

#查看或者编辑ssh服务配置文件(必须,且三台服务器都要操作)

[root@master ~]# vi /etc/ssh/sshd_config

#找到sshd_config配置文件中的如下三行,并将前面的#去掉


说明:当然你可以在该配置文件中对ssh服务进行各种配置,比如说端口,在此我们就只更改上述图中三行配置,其他保持默认即可

#重启ssh服务(必须)

[root@master ~]# service sshd restart

停止 sshd:                                                [确定]

正在启动 sshd:                                            [确定]

说明:接下来的步骤非常关键,严格对照用户账户,以及路径进行操作

#每个节点分别产生公私钥。

[hadoop@master ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa


以上是产生公私密钥,产生的目录在用户主目录下的.ssh目录下


说明:id_dsa.pub为公钥,id_dsa为私钥。

#将公钥文件复制成authorized_keys文件,这个步骤很关键,且authorized_keys文件名要认真核对,它和之前的步骤修改sshd_config中需要去掉注释中的文件名是一致的,不能出错。

[hadoop@master .ssh]$ cat id_dsa.pub >> authorized_keys


#单机回环ssh免密码登陆测试


可以注意到红线框中标注,为什么还需要提示输入确认指令以及密码,不是免密码登陆吗?先将疑问抛在此处,在后续操作中我们解决这个问题。

#修改authorized_keys文件权限为600

[hadoop@master.ssh]$ chmod 600 authorized_keys

以上步骤三台服务器均要操作,再次提醒!!!

#让主节点(master)能够通过SSH免密码登陆两个节点(slave)

说明:为了实现这个功能,两个slave节点的公钥文件中必须包含主节点(master)的公钥信息,这样当master就可以顺利安全地访问这两个slave节点了

注意:以下操作只在slave1和slave2节点上操作

[hadoop@slave1 .ssh]$ scp hadoop@master:~/.ssh/id_dsa.pub ./master_dsa.pub


上图中密码红线框处很关键,是master主机的hadoop账户的密码,如果你三台服务器hadoop账户的密码设置不一致,就有可能出现忘记或者输入错误密码的问题。同时在.ssh目录下多出了master_dsa.pub公钥文件(master主机中的公钥)

#将master_dsa.pub文件包含的公钥信息追加到slave1的authorized_keys

[hadoop@slave1 .ssh]$ cat master_dsa.pub >> authorized_keys

说明:操作至此还不能实现master中ssh免密码登陆slave1,为什么呢?因为ssh访问机制中需要远程账户有权限控制

#修改authorized_keys文件权限为600

[hadoop@slave1 .ssh]$ chmod 600 authorized_keys

#重启sshd服务,此时需要切换账号为root账号

[root@slave1 hodoop]# service sshd restart

停止 sshd:                                                [确定]

正在启动 sshd:                                            [确定]

#在master节点中实现ssh slave1免密码远程登陆slave1

[hadoop@slave1 ~]$ ssh slave1

The authenticity of host 'slave1 (::1)' can't be established.

RSA key fingerprint is c8:0e:ff:b2:91:d7:3a:bb:63:43:c8:0a:3e:2a:94:04.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'slave1' (RSA) to the list of known hosts.

Last login: Sun Jun 28 02:20:38 2015 from master

[hadoop@slave1 ~]$ exit

logout

Connection to slave1 closed.

[hadoop@slave1 ~]$ ssh slave1

Last login: Sun Jun 28 02:24:05 2015 from slave1

[hadoop@slave1 ~]$ 

说明:上述红色标注命令处在master节点首次远程访问slave1时,需要yes指令确认链接,当yes输入链接成功后,退出exit,在此ssh slave1时,就不要求输入yes指令,此时你就可以像上述显示中一样通过hadoop账户登陆到slave1中了。

slave2节点也要进行上述操作,最终实现如下即可表明master节点可以免密码登陆到slave2节点中

[hadoop@master ~]$ ssh slave2

Last login: Sat Jun 27 02:01:15 2015 from localhost.localdomain

[hadoop@slave2 ~]$

至此SSH免密码登陆各个节点配置完成。

  • 安装JDK

此过程请参考以下操作,最终结果保证三台服务器jdk均能正常运行即可

http://www.cnblogs.com/zhoulf/archive/2013/02/04/2891608.html

注意选择服务器对应的版本

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来生做一个苦行僧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值