centos安装配置hadoop超详细过程.docx
《centos安装配置hadoop超详细过程.docx》由会员分享,可在线阅读,更多相关《centos安装配置hadoop超详细过程.docx(37页珍藏版)》请在三一办公上搜索。
1、centos安装配置hadoop超详细过程1、集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统和MapReduce为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。 对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTr
2、acker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。 从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过
3、程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务。 1.2 环境说明 集群中包括4个节点:1个Master,3个Salve,节点之间局域网连接,可以相互ping通,具体集群信息可以查看Hadoop集群。节点IP地址分布如下: 机器名称 IP地址 Master.Hadoop 192.168.1.2 Salve1.Hadoop 192.168.1.3 Salve2.Hadoop 192.168.1.4 Salve3.Hadoop 192.168.1.5 四个节点上均是CentOS
4、6.0系统,并且有一个相同的用户hadoop。Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。其实应该还应该有1个Master机器,用来作为备用,以防止Master服务器宕机,还有一个备用马上启用。后续经验积累一定阶段后补上一台备用Master机器。 1.3 网络配置 Hadoop集群要按照1.2小节表格所示进行配置,我们在Hadoop集群的CentOS6.0安装过程就按照提前规划好的主机名进行安装和配置。如果实验室后来人在安装系统时
5、,没有配置好,不要紧,没有必要重新安装,在安装完系统之后仍然可以根据后来的规划对机器的主机名进行修改。 下面的例子我们将以Master机器为例,即主机名为Master.Hadoop,IP为192.168.1.2进行一些主机名配置的相关操作。其他的Slave机器以此为依据进行修改。 1)查看当前机器名称 用下面命令进行显示机器名称,如果跟规划的不一致,要按照下面进行修改。 hostname 上图中,用hostname查Master机器的名字为Master.Hadoop,与我们预先规划的一致。 2)修改当前机器名称 假定我们发现我们的机器的主机名不是我们想要的,通过对/etc/sysconfig/
6、network文件修改其中HOSTNAME后面的值,改成我们规划的名称。 这个/etc/sysconfig/network文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。 设定形式:设定值=值 /etc/sysconfig/network的设定项目如下: NETWORKING 是否利用网络 GATEWAY 默认网关 IPGATEWAYDEV 默认网关的接口名 HOSTNAME 主机名 DOMAIN 域名 用下面命令进行修改当前机器的主机名 vim /etc/sysconfig/network 通过上面的命令我们从/etc/sysconfig/network中找到
7、HOSTNAME进行修改,查看内容如下: 3)修改当前机器IP 假定我们的机器连IP在当时安装机器时都没有配置好,那此时我们需要对ifcfg-eth0文件进行配置,该文件位于/etc/sysconfig/network-scripts文件夹下。 在这个目录下面,存放的是网络接口的制御脚本文件,ifcfg- eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg- eth3,。 这里面的文件是相当重要的,涉及到网络能否正常工作。 设定形式:设定值=值 设定项目项目如下: DEVICE 接口名 BOOTPROTO IP的
8、配置方法 HWADDR MAC地址 ONBOOT 系统启动的时候网络接口是否有效 TYPE 网络类型 NETMASK 网络掩码 IPADDR IP地址 IPV6INIT IPV6是否有效 GATEWAY 默认网关IP地址 查看/etc/sysconfig/network-scripts/ifcfg-eth0内容,如果IP不复核,就行修改。 如果上图中IP与规划不相符,用下面命令进行修改: vim /etc/sysconfig/network-scripts/ifcgf-eth0 修改完之后可以用ifconfig进行查看。 4)配置hosts文件 /etc/hosts这个文件是用来配置主机将用的
9、DNS服务器信息,是记载LAN内接续的各主机的对应HostName和IP用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名对应的IP地址。 我们要测试两台机器之间知否连通,一般用ping 机器的IP,如果想用ping 机器的主机名发现找不见该名称的机器,解决的办法就是修改/etc/hosts这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。 例如:机器为Master.Hadoop:192.168.1.2对机器为Salve1.Hadoop:192.168.1.3用命令ping记性连接测试。测试结果如下: 从上图中的值,直接对IP地
10、址进行测试,能够ping通,但是对主机名进行测试,发现没有ping通,提示unknown host未知主机,这时查看Master.Hadoop的/etc/hosts文件内容。 发现里面没有192.168.1.3 Slave1.Hadoop内容,故而本机器是无法对机器的主机名为Slave1.Hadoop 解析。 在进行Hadoop集群配置中,需要在/etc/hosts文件中添加集群中所有机器的IP与主机名,这样Master与所有的Slave机器之间不仅可以通过IP进行通信,而且还可以通过主机名进行通信。所以在所有的机器上的/etc/hosts文件末尾中都要添加如下内容: 192.168.1.2
11、Master.Hadoop 192.168.1.3 Slave1.Hadoop 192.168.1.4 Slave2.Hadoop 192.168.1.5 Slave3.Hadoop 用以下命令进行添加: vim /etc/hosts 添加结果如下: 现在我们在进行对机器为Slave1.Hadoop的主机名进行ping通测试,看是否能测试成功。 从上图中我们已经能用主机名进行ping通了,说明我们刚才添加的内容,在局域网内能进行DNS解析了,那么现在剩下的事儿就是在其余的Slave机器上进行相同的配置。然后进行测试。 1.4 所需软件 1)JDK软件 下载地址: JDK版本:jdk-6u31-
12、linux-i586.bin 2)Hadoop软件 下载地址:http:/hadoop.apache.org/common/releases.html Hadoop版本:hadoop-1.0.0.tar.gz 1.5 VSFTP上传 在Hadoop集群讲了VSFTP的安装及配置,如果没有安装VSFTP可以按照该文档进行安装。如果安装好了,就可以通过FlashFXP.exe软件把我们下载的JDK6.0和Hadoop1.0软件上传到Master.Hadoop:192.168.1.2服务器上。 刚才我们用一般用户通过FlashFXP软件把所需的两个软件上传了跟目下,我们通过命令查看下一下是否已经上传
13、了。 从图中,我们的所需软件已经准备好了。 2、SSH无密码验证配置 Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。 2.1 安装和启动SSH协议 在Hadoop集群安装CentOS6.0时,我们选择了一些基本安装包,所以我们需要两个服务:ss
14、h和rsync已经安装了。可以通过下面命令查看结果显示如下: rpm qa | grep openssh rpm qa | grep rsync 假设没有安装ssh和rsync,可以通过下面命令进行安装。 yum install ssh 安装SSH协议 yum install rsync service sshd restart 启动服务 确保所有的服务器都安装,上面命令执行完毕,各台机器之间可以通过密码验证相互登。 2.2 配置Master无密码登录所有Salve 1)SSH无密码原理 Master作为客户端,要实现无密码公钥认证,连接到服务器Salve上时,需要在Master上生成一个密钥
15、对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。 2)Master机器上生成密码对 在Master节点上执行以下命令: ssh-keygen t rsa P 这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。
16、生成的密钥对:id_rsa和id_rsa.pub,默认存储在/home/hadoop/.ssh目录下。 查看/home/hadoop/下是否有.ssh文件夹,且.ssh文件下是否有两个刚生产的无密码密钥对。 接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。 cat /.ssh/id_rsa.pub /.ssh/authorized_keys 在验证前,需要做两件事儿。第一件事儿是修改文件authorized_keys权限,另一件事儿是用root用户设置/etc/ssh/sshd_config的内容。使其无密码登录有效。 1)修改文件authorized_ke
17、ys chmod 600 /.ssh/authorized_keys 备注:如果不进行设置,在验证时,扔提示你输入密码,在这里花费了将近半天时间来查找原因。在网上查到了几篇不错的文章,把作为Hadoop集群_第5期副刊_JDK和SSH无密码配置来帮助额外学习之用。 2)设置SSH配置 用root用户登录服务器修改SSH配置文件/etc/ssh/sshd_config的下列内容。 RSAAuthentication yes # 启用 RSA 认证 PubkeyAuthentication yes # 启用公钥私钥配对认证方式 AuthorizedKeysFile .ssh/authorized_
18、keys # 公钥文件路径 设置完之后记得重启SSH服务,才能使刚才设置有效。 service sshd restart 退出root登录,使用hadoop普通用户验证是否成功。 ssh localhost 从上图中得知无密码登录本级已经设置完毕,接下来的事儿是把公钥复制所有的Slave机器上。使用下面的命令格式进行复制公钥: scp /.ssh/id_rsa.pub 远程用户名远程服务器IP:/ 例如: scp /.ssh/id_rsa.pub hadoop192.168.1.3:/ 上面的命令是复制文件id_rsa.pub到服务器IP为192.168.1.3的用户为hadoop的/home
19、/hadoop/下面。 下面就针对IP为192.168.1.3的Slave1.Hadoop的节点进行配置。 1)把Master.Hadoop上的公钥复制到Slave1.Hadoop上 从上图中我们得知,已经把文件id_rsa.pub传过去了,因为并没有建立起无密码连接,所以在连接时,仍然要提示输入输入Slave1.Hadoop服务器用户hadoop的密码。为了确保确实已经把文件传过去了,用SecureCRT登录Slave1.Hadoop:192.168.1.3服务器,查看/home/hadoop/下是否存在这个文件。 从上面得知我们已经成功把公钥复制过去了。 2)在/home/hadoop/下
20、创建.ssh文件夹 这一步并不是必须的,如果在Slave1.Hadoop的/home/hadoop已经存在就不需要创建了,因为我们之前并没有对Slave机器做过无密码登录配置,所以该文件是不存在的。用下面命令进行创建。 mkdir /.ssh 然后是修改文件夹.ssh的用户权限,把他的权限修改为700,用下面命令执行: chmod 700 /.ssh 备注:如果不进行,即使你按照前面的操作设置了authorized_keys权限,并配置了/etc/ssh/sshd_config,还重启了sshd服务,在Master能用ssh localhost进行无密码登录,但是对Slave1.Hadoop进
21、行登录仍然需要输入密码,就是因为.ssh文件夹的权限设置不对。这个文件夹.ssh在配置SSH无密码登录时系统自动生成时,权限自动为700,如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败。 对比上面两张图,发现文件夹.ssh权限已经变了。 3)追加到授权文件authorized_keys 到目前为止Master.Hadoop的公钥也有了,文件夹.ssh也有了,且权限也修改了。这一步就是把Master.Hadoop的公钥追加到Slave1.Hadoop的授权文件authorized_keys中去。使用下面命令进行追加并修改authorized_keys文件权限:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- centos 安装 配置 hadoop 详细 过程
链接地址:https://www.31ppt.com/p-3154385.html