centos安装配置hadoop超详细过程.docx
《centos安装配置hadoop超详细过程.docx》由会员分享,可在线阅读,更多相关《centos安装配置hadoop超详细过程.docx(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1、集群部署介绍、集群部署介绍1.1 Hadoop 简介简介Hadoop 是 Apache 软件基金会旗下的一个开源分布式计算平台。以 Hadoop 分布式 文 件 系 统(HDFS,HadoopDistributedFilesystem)和 MapReduce(Google MapReduce 的开源实现)为核心的 Hadoop 为用户提供了系统底层细节透明的分布式基础架构。对于 Hadoop 的集群来讲,可以分成两大类角色:Master 和 Salve。一个 HDFS 集群是由一个 NameNode 和若干个 DataNode 组成的。其中 NameNode 作为主服务器,管理文件系统的命
2、名空间和客户端对文件系统的访问操作;集群中的 DataNode 管理存储的数据。MapReduce 框架是由一个单独运行在主节点上的 JobTracker 和运行在每个集群从节点的 TaskTracker 共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个 Job 被提交时,JobTracker 接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker 的执行。从上面的介绍可以看出,HDFS 和 MapReduce 共同组成了 H
3、adoop 分布式系统体系结构的核心。HDFSHDFS 在集群上实现分布式文件系统,MapReduceMapReduce 在集群上实现了分布式计算和任务处理。HDFS 在 MapReduce 任务处理过程中提供了文件操作和存储等支持,MapReduce 在HDFS 的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了 Hadoop 分布式集群的主要任务。1.21.2环境说明环境说明集群中包括 4 个节点:1 个 Master,3 个 Salve,节点之间局域网连接,可以相互ping 通,具体集群信息可以查看HadoopHadoop 集群(第集群(第 2 2 期)期)。节
4、点 IP 地址分布如下:机器名称机器名称IP 地址地址Master.Hadoop192.168.1.2Salve1.Hadoop192.168.1.3Salve2.Hadoop192.168.1.4Salve3.Hadoop192.168.1.5四个节点上均是 CentOS6.0 系统,并且有一个相同的用户 hadoophadoop。Master 机器主要配置 NameNode 和 JobTracker 的角色,负责总管分布式数据和分解任务的执行;3 个 Salve机器配置 DataNode 和 TaskTracker 的角色,负责分布式数据存储以及任务的执行。其实应该还应该有 1 个 Mas
5、ter 机器,用来作为备用备用,以防止 Master 服务器宕机宕机,还有一个备用马上启用。后续经验积累一定阶段后补上补上一台备用 Master 机器。1.31.3网络配置网络配置Hadoop 集群要按照 1.21.2 小节小节表格所示进行配置,我们在HadoopHadoop 集群(第集群(第 1 1 期)期)的CentOS6.0 安装过程就按照提前规划好的主机名进行安装和配置。如果实验室后来人在安装系统时,没有配置好,不要紧,没有必要重新安装,在安装完系统之后仍然可以根据后来的规划对机器的主机名进行修改。下面的例子我们将以 Master 机器为例,即主机名为Master.Hadoop,IP
6、为192.168.1.2进行一些主机名配置的相关操作。其他的 Slave 机器以此为依据进行修改。1 1)查看当前机器名称)查看当前机器名称用下面命令进行显示机器名称,如果跟规划的不一致,要按照下面进行修改。hostname上图中,用hostname查Master机器的名字为Master.Hadoop,与我们预先规划的一致。2 2)修改当前机器名称)修改当前机器名称假 定假 定 我 们 发 现 我 们 的 机 器 的 主 机 名 不 是 我 们 想 要 的,通 过 对/etc/sysconfig/network/etc/sysconfig/network文件修改其中HOSTNAMEHOSTNA
7、ME后面的值,改成我们规划的名称。这个/etc/sysconfig/network/etc/sysconfig/network文件是定义 hostname 和是否利用网络的不接触网络设备的对系统全体定义的文件。设定形式设定形式:设定值=值/etc/sysconfig/network的设定项目设定项目如下:NETWORKING是否利用网络GATEWAY默认网关IPGATEWAYDEV默认网关的接口名HOSTNAME主机名DOMAIN域名用下面命令进行修改当前机器的主机名(备注:备注:修改系统文件一般用 rootroot 用户)vim/etc/sysconfig/network通过上面的命令我们从
8、/etc/sysconfig/network中找到HOSTNAME进行修改,查看内容如下:3 3)修改当前机器)修改当前机器 IPIP假定假定我们的机器连 IP 在当时安装机器时都没有配置好,那此时我们需要对ifcfg-eth0ifcfg-eth0文件进行配置,该文件位于/etc/sysconfig/network-scripts/etc/sysconfig/network-scripts文件夹下。在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg-eth0 是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-et
9、h2,ifcfg-eth3,。这里面的文件是相当重要的,涉及到网络能否正常工作。设定形式:设定值=值设定项目项目如下:DEVICE接口名(设备,网卡)BOOTPROTOIP 的配置方法(static:固定 IP,dhcpHCP,none:手动)HWADDRMAC 地址ONBOOT系统启动的时候网络接口是否有效(yes/no)TYPE网络类型(通常是 Ethemet)NETMASK网络掩码IPADDRIPADDRIP 地址IPV6INITIPV6 是否有效(yes/no)GATEWAY默认网关 IP 地址查看/etc/sysconfig/network-scripts/ifcfg-eth0内容,
10、如果 IP 不复核,就行修改。如果上图中 IP 与规划不相符,用下面命令进行修改:vim/etc/sysconfig/network-scripts/ifcgf-eth0修改完之后可以用ifconfig进行查看。4 4)配置)配置 hostshosts 文件(文件(必须必须)/etc/hosts/etc/hosts这个文件是用来配置主机将用的 DNSDNS 服务器信息,是记载 LAN 内接续的各主机的对应HostName 和 IP用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的 IP 地址。我们要测试两台机器之间知否连通,一般用ping机器的 IP,如果想用ping
11、机器的主机名发现找不见该名称的机器,解决的办法就是修改/etc/hosts/etc/hosts这个文件,通过把 LAN 内的各主机的 IP 地址和 HostName 的一一对应一一对应写入这个文件的时候,就可以解决问题。例如:机器为Master.Hadoop:192.168.1.2对机器为Salve1.Hadoop:192.168.1.3用命令ping记性连接测试。测试结果如下:从上图中的值,直接对 IP 地址进行测试,能够 ping 通,但是对主机名进行测试,发现没有 ping 通,提示unknownhost未知主机,这时查看Master.Hadoop的/etc/hosts文件内容。发现里面
12、没有192.168.1.3Slave1.Hadoop内容,故而本机器是无法对机器的主机名为Slave1.Hadoop解析。在进行 HadoopHadoop 集群集群配置中,需要在/etc/hosts文件中添加集群中所有机器的 IP 与主机名,这样 Master 与所有的 Slave 机器之间不仅可以通过 IP 进行通信,而且还可以通过主机名进行通信。所以在所有的机器上的/etc/hosts文件末尾末尾中都要添加如下内容:192.168.1.2Master.Hadoop192.168.1.3Slave1.Hadoop192.168.1.4Slave2.Hadoop192.168.1.5Slave
13、3.Hadoop用以下命令进行添加:vim/etc/hosts添加结果如下:现在我们在进行对机器为Slave1.Hadoop的主机名进行 ping 通测试,看是否能测试成功。从上图中我们已经能用主机名进行 ping 通了,说明我们刚才添加的内容,在局域网内能进行 DNS 解析了,那么现在剩下的事儿就是在其余的 Slave 机器上进行相同的配置。然后进行测试。(备注:备注:当设置 SSH 无密码验证后,可以scp进行复制,然后把原来的hosts文件执行覆盖即可。)1.41.4所需软件所需软件1 1)JDKJDK 软件软件下载地址:http:/ 版本:jdk-6u31-linux-i586.bin
14、2 2)HadoopHadoop 软件软件下载地址:http:/hadoop.apache.org/common/releases.htmlHadoop 版本:hadoop-1.0.0.tar.gz1.51.5VSFTPVSFTP 上传上传在HadoopHadoop 集群(第集群(第 3 3 期)期)讲了 VSFTP 的安装及配置,如果没有安装 VSFTP 可以按照该文档进行安装。如果安装好了,就可以通过 FlashFXP.exeFlashFXP.exe 软件把我们下载的 JDK6.0 和Hadoop1.0 软件上传到Master.Hadoop:192.168.1.2Master.Hadoop
15、:192.168.1.2服务器上。刚才我们用一般用户(hadoop)通过 FlashFXP 软件把所需的两个软件上传了跟目下,我们通过命令查看下一下是否已经上传了。从图中,我们的所需软件已经准备好了。2 2、SSHSSH 无密码验证配置无密码验证配置Hadoop 运行过程中需要管理远端 Hadoop 守护进程,在 Hadoop 启动以后,NameNode 是通过 SSH(SecureShell)来启动和停止各个 DataNode 上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置 SSH 运用无密码公钥认证的形式,这样 NameNode 使用 SSH 无
16、密码登录并启动 DataName 进程,同样原理,DataNode 上也能使用 SSH 无密码登录到 NameNode。2.12.1安装和启动安装和启动 SSHSSH 协议协议在Hadoop 集群(第 1 期)安装 CentOS6.0 时,我们选择了一些基本安装包,所以我们需要两个服务:ssh 和 rsync 已经安装了。可以通过下面命令查看结果显示如下:rpmqa|grepopensshrpmqa|greprsync假设假设没有安装 ssh 和 rsync,可以通过下面命令进行安装。yuminstallssh安装 SSH 协议yuminstallrsync(rsync 是一个远程数据同步工具
17、,可通过 LAN/WAN 快速同步多台主机间的文件)servicesshdrestart启动服务确保所有的服务器都安装,上面命令执行完毕,各台机器之间可以通过密码验证相互登。2.22.2配置配置 MasterMaster 无密码登录所有无密码登录所有 SalveSalve1 1)SSHSSH 无密码原理无密码原理Master(NameNode|JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器 Salve(DataNode|Tasktracker)上时,需要在 Master 上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的 Slave 上。当 Master 通
18、过 SSH 连接 Salve时,Salve 就会生成一个随机数并用 Master 的公钥对随机数进行加密,并发送给 Master。Master 收到加密数之后再用私钥解密,并将解密数回传给 Slave,Slave 确认解密数无误之后就允许 Master 进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端 Master 复制到 Slave 上。2 2)MasterMaster 机器上生成密码对机器上生成密码对在 Master 节点上执行以下命令:ssh-keygentrsaP这条命是生成其无密码密钥对无密码密钥对,询问其保存路径时直接回车直接回车采用默认路径。生成
19、的密钥对:id_rsa 和 id_rsa.pub,默认存储在/home/hadoop/.ssh/home/hadoop/.ssh目录下。查看/home/hadoop/下是否有.ssh文件夹,且.ssh文件下是否有两个刚生产的无密码密钥对。接着在 Master 节点上做如下配置,把 id_rsa.pub 追加到授权的 key 里面去。cat/.ssh/id_rsa.pub/.ssh/authorized_keys在验证前,需要做两件事儿。第一件事儿是修改文件authorized_keysauthorized_keys权限(权限权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用的设置非常
20、重要,因为不安全的设置安全设置,会让你不能使用 RSARSA 功能功能),另一件事儿是用 root 用户设置/etc/ssh/sshd_config/etc/ssh/sshd_config的内容。使其无密码登录有效。1 1)修改文件)修改文件 authorized_keysauthorized_keys chmod600/.ssh/authorized_keys备注:备注:如果不进行设置,在验证时,扔提示你输入密码,在这里花费了将近半天时间来查找原因。在网上查到了几篇不错的文章,把作为HadoopHadoop 集群集群_ _第第 5 5 期副刊期副刊_JDK_JDK 和和SSHSSH 无密码配
21、置无密码配置来帮助额外学习之用。2 2)设置)设置 SSHSSH 配置配置用 rootroot 用户登录服务器修改 SSH 配置文件/etc/ssh/sshd_config的下列内容。RSAAuthenticationyes#启用RSA认证PubkeyAuthenticationyes#启用公钥私钥配对认证方式AuthorizedKeysFile.ssh/authorized_keys#公钥文件路径(和上面生成的文件同)设置完之后记得重启重启 SSHSSH 服务服务,才能使刚才设置有效。servicesshdrestart退出退出 rootroot 登录登录,使用 hadoophadoop 普
22、通用户验证是否成功。sshlocalhost从上图中得知无密码登录本级已经设置完毕,接下来的事儿是把公钥公钥复制所有所有的Slave 机器上。使用下面的命令格式进行复制公钥:scp/.ssh/id_rsa.pub远程用户名远程服务器 IP:/例如:scp/.ssh/id_rsa.pubhadoop192.168.1.3:/上面的命令是复制复制文件id_rsa.pubid_rsa.pub到服务器 IP 为192.168.1.3192.168.1.3的用户为hadoophadoop的/home/hadoop/home/hadoop/下面。下面就针对 IP 为192.168.1.3的 Slave1.
23、Hadoop 的节点进行配置。1 1)把)把 Master.HadoopMaster.Hadoop 上的公钥复制到上的公钥复制到 Slave1.HadoopSlave1.Hadoop 上上从上图中我们得知,已经把文件id_rsa.pub传过去了,因为并没有建立起无密码连接,所以在连接时,仍然要提示输入输入 Slave1.Hadoop 服务器用户 hadoop 的密码。为了确保确实已经把文件传过去了,用 SecureCRT 登录 Slave1.Hadoop:192.168.1.3 服务器,查看/home/hadoop/下是否存在这个文件。从上面得知我们已经成功把公钥复制过去了。2 2)在)在/h
24、ome/hadoop/home/hadoop/下创建下创建.ssh.ssh文件夹文件夹这一步并不是必须并不是必须的,如果在 Slave1.Hadoop 的/home/hadoop已经存在已经存在就不需要创建了,因为我们之前并没有对 Slave 机器做过无密码登录配置,所以该文件是不存在的。用下面命令进行创建。(备注:备注:用 hadoop 登录系统,如果不涉及系统文件修改,一般情况下都是用我们之前建立的普通用户 hadoop 进行执行命令。)mkdir/.ssh然后是修改文件夹.ssh.ssh的用户权限,把他的权限修改为700700,用下面命令执行:chmod700/.ssh备注:备注:如果不
25、进行,即使你按照前面的操作设置了authorized_keys权限,并配置了/etc/ssh/sshd_config,还重启了 sshd 服务,在 Master 能用sshlocalhost进行无密码登录,但是对 Slave1.Hadoop 进行登录仍然需要输入密码,就是因为.ssh文件夹的权限设置不对。这个文件夹.ssh在配置 SSH 无密码登录时系统自动生成时,权限自动为700,如果是自己手动创建,它的组权限和其他权限都有,这样就会导致 RSA 无密码远程登录失败。对比上面两张图,发现文件夹.ssh权限已经变了。3 3)追加到授权文件)追加到授权文件 authorized_keysauth
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- centos 安装 配置 hadoop 详细 过程
限制150内