Hadoop文档记录Word格式文档下载.docx
- 文档编号:788775
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:76
- 大小:4.02MB
Hadoop文档记录Word格式文档下载.docx
《Hadoop文档记录Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Hadoop文档记录Word格式文档下载.docx(76页珍藏版)》请在冰点文库上搜索。
Salve2.Hadoop
192.168.1.4
Salve3.Hadoop
192.168.1.5
四个节点上均是CentOS6.0系统,并且有一个相同的用户hadoop。
Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;
3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。
其实应该还应该有1个Master机器,用来作为备用,以防止Master服务器宕机,还有一个备用马上启用。
后续经验积累一定阶段后补上一台备用Master机器。
1.3
网络配置
Hadoop集群要按照1.2小节表格所示进行配置,我们在"
Hadoop集群(第1期)"
的CentOS6.0安装过程就按照提前规划好的主机名进行安装和配置。
如果实验室后来人在安装系统时,没有配置好,不要紧,没有必要重新安装,在安装完系统之后仍然可以根据后来的规划对机器的主机名进行修改。
下面的例子我们将以Master机器为例,即主机名为"
Master.Hadoop"
,IP为"
192.168.1.2"
进行一些主机名配置的相关操作。
其他的Slave机器以此为依据进行修改。
1)查看当前机器名称
用下面命令进行显示机器名称,如果跟规划的不一致,要按照下面进行修改。
hostname
上图中,用"
hostname"
查"
Master"
机器的名字为"
,与我们预先规划的一致。
2)修改当前机器名称
假定我们发现我们的机器的主机名不是我们想要的,通过对"
/etc/sysconfig/network"
文件修改其中"
HOSTNAME"
后面的值,改成我们规划的名称。
这个"
文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。
设定形式:
设定值=值
"
的设定项目如下:
NETWORKING
是否利用网络
GATEWAY
默认网关
IPGATEWAYDEV
默认网关的接口名
HOSTNAME
主机名
DOMAIN
域名
用下面命令进行修改当前机器的主机名(备注:
修改系统文件一般用root用户)
vim
/etc/sysconfig/network
通过上面的命令我们从"
中找到"
进行修改,查看内容如下:
3)修改当前机器IP
假定我们的机器连IP在当时安装机器时都没有配置好,那此时我们需要对"
ifcfg-eth0"
文件进行配置,该文件位于"
/etc/sysconfig/network-scripts"
文件夹下。
在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg-
eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-
eth3,……。
这里面的文件是相当重要的,涉及到网络能否正常工作。
设定项目项目如下:
DEVICE
接口名(设备,网卡)
BOOTPROTO
IP的配置方法(static:
固定IP,
dhcpHCP,
none:
手动)
HWADDR
MAC地址
ONBOOT
系统启动的时候网络接口是否有效(yes/no)
TYPE
网络类型(通常是Ethemet)
NETMASK
网络掩码
IPADDR
IPV6INIT
IPV6是否有效(yes/no)
默认网关IP地址
查看"
/etc/sysconfig/network-scripts/ifcfg-eth0"
内容,如果IP不复核,就行修改。
如果上图中IP与规划不相符,用下面命令进行修改:
/etc/sysconfig/network-scripts/ifcgf-eth0
修改完之后可以用"
ifconfig"
进行查看。
4)配置hosts文件(必须)
/etc/hosts"
这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName和IP]用的。
当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。
我们要测试两台机器之间知否连通,一般用"
ping
机器的IP"
,如果想用"
机器的主机名"
发现找不见该名称的机器,解决的办法就是修改"
这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。
例如:
机器为"
Master.Hadoop:
对机器为"
Salve1.Hadoop:
192.168.1.3"
用命令"
ping"
记性连接测试。
测试结果如下:
从上图中的值,直接对IP地址进行测试,能够ping通,但是对主机名进行测试,发现没有ping通,提示"
unknown
host——未知主机"
,这时查看"
的"
文件内容。
发现里面没有"
192.168.1.3
Slave1.Hadoop"
内容,故而本机器是无法对机器的主机名为"
解析。
在进行Hadoop集群配置中,需要在"
文件中添加集群中所有机器的IP与主机名,这样Master与所有的Slave机器之间不仅可以通过IP进行通信,而且还可以通过主机名进行通信。
所以在所有的机器上的"
文件末尾中都要添加如下内容:
192.168.1.2
Slave1.Hadoop
192.168.1.4
Slave2.Hadoop
192.168.1.5
Slave3.Hadoop
用以下命令进行添加:
/etc/hosts
添加结果如下:
现在我们在进行对机器为"
的主机名进行ping通测试,看是否能测试成功。
从上图中我们已经能用主机名进行ping通了,说明我们刚才添加的内容,在局域网内能进行DNS解析了,那么现在剩下的事儿就是在其余的Slave机器上进行相同的配置。
然后进行测试。
(备注:
当设置SSH无密码验证后,可以"
scp"
进行复制,然后把原来的"
hosts"
文件执行覆盖即可。
)
1.4
所需软件
1)JDK软件
下载地址:
JDK版本:
jdk-6u31-linux-i586.bin
2)Hadoop软件
http:
//hadoop.apache.org/common/releases.html
Hadoop版本:
hadoop-1.0.0.tar.gz
1.5
VSFTP上传
在"
Hadoop集群(第3期)"
讲了VSFTP的安装及配置,如果没有安装VSFTP可以按照该文档进行安装。
如果安装好了,就可以通过FlashFXP.exe软件把我们下载的JDK6.0和Hadoop1.0软件上传到"
服务器上。
刚才我们用一般用户(hadoop)通过FlashFXP软件把所需的两个软件上传了跟目下,我们通过命令查看下一下是否已经上传了。
从图中,我们的所需软件已经准备好了。
2、SSH无密码验证配置
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure
Shell)来启动和停止各个DataNode上的各种守护进程的。
这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。
2.1
安装和启动SSH协议
安装CentOS6.0时,我们选择了一些基本安装包,所以我们需要两个服务:
ssh和rsync已经安装了。
可以通过下面命令查看结果显示如下:
rpm
–qa
|
grep
openssh
rsync
假设没有安装ssh和rsync,可以通过下面命令进行安装。
yum
install
ssh
安装SSH协议
rsync
(rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)
service
sshd
restart
启动服务
确保所有的服务器都安装,上面命令执行完毕,各台机器之间可以通过密码验证相互登。
2.2
配置Master无密码登录所有Salve
1)SSH无密码原理
Master(NameNode
JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode
Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。
当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。
Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。
这就是一个公钥认证过程,其间不需要用户手工输入密码。
重要过程是将客户端Master复制到Slave上。
2)Master机器上生成密码对
在Master节点上执行以下命令:
ssh-keygen
–t
rsa
–P
'
这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。
生成的密钥对:
id_rsa和id_rsa.pub,默认存储在"
/home/hadoop/.ssh"
目录下。
/home/hadoop/"
下是否有"
.ssh"
文件夹,且"
文件下是否有两个刚生产的无密码密钥对。
接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。
cat
~/.ssh/id_rsa.pub
>
~/.ssh/authorized_keys
在验证前,需要做两件事儿。
第一件事儿是修改文件"
authorized_keys"
权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"
/etc/ssh/sshd_config"
的内容。
使其无密码登录有效。
1)修改文件"
chmod
600
备注:
如果不进行设置,在验证时,扔提示你输入密码,在这里花费了将近半天时间来查找原因。
在网上查到了几篇不错的文章,把作为"
Hadoop集群_第5期副刊_JDK和SSH无密码配置"
来帮助额外学习之用。
2)设置SSH配置
用root用户登录服务器修改SSH配置文件"
的下列内容。
RSAAuthentication
yes
#
启用
RSA
认证
PubkeyAuthentication
启用公钥私钥配对认证方式
AuthorizedKeysFile
.ssh/authorized_keys
公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效。
restart
退出root登录,使用hadoop普通用户验证是否成功。
localhost
从上图中得知无密码登录本级已经设置完毕,接下来的事儿是把公钥复制所有的Slave机器上。
使用下面的命令格式进行复制公钥:
scp
远程用户名@远程服务器IP:
~/
hadoop@192.168.1.3:
上面的命令是复制文件"
id_rsa.pub"
到服务器IP为"
的用户为"
hadoop"
下面。
下面就针对IP为"
的Slave1.Hadoop的节点进行配置。
1)把Master.Hadoop上的公钥复制到Slave1.Hadoop上
从上图中我们得知,已经把文件"
传过去了,因为并没有建立起无密码连接,所以在连接时,仍然要提示输入输入Slave1.Hadoop服务器用户hadoop的密码。
为了确保确实已经把文件传过去了,用SecureCRT登录Slave1.Hadoop:
192.168.1.3服务器,查看"
下是否存在这个文件。
从上面得知我们已经成功把公钥复制过去了。
2)在"
下创建"
文件夹
这一步并不是必须的,如果在Slave1.Hadoop的"
/home/hadoop"
已经存在就不需要创建了,因为我们之前并没有对Slave机器做过无密码登录配置,所以该文件是不存在的。
用下面命令进行创建。
用hadoop登录系统,如果不涉及系统文件修改,一般情况下都是用我们之前建立的普通用户hadoop进行执行命令。
mkdir
~/.ssh
然后是修改文件夹"
的用户权限,把他的权限修改为"
700"
,用下面命令执行:
700
如果不进行,即使你按照前面的操作设置了"
权限,并配置了"
,还重启了sshd服务,在Master能用"
localhost"
进行无密码登录,但是对Slave1.Hadoop进行登录仍然需要输入密码,就是因为"
文件夹的权限设置不对。
这个文件夹"
在配置SSH无密码登录时系统自动生成时,权限自动为"
,如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败。
对比上面两张图,发现文件夹"
权限已经变了。
3)追加到授权文件"
到目前为止Master.Hadoop的公钥也有了,文件夹"
也有了,且权限也修改了。
这一步就是把Master.Hadoop的公钥追加到Slave1.Hadoop的授权文件"
中去。
使用下面命令进行追加并修改"
文件权限:
~/id_rsa.pub
4)用root用户修改"
具体步骤参考前面Master.Hadoop的"
设置SSH配置"
,具体分为两步:
第1是修改配置文件;
第2是重启SSH服务。
5)用Master.Hadoop使用SSH无密码登录Slave1.Hadoop
当前面的步骤设置完毕,就可以使用下面命令格式进行SSH无密码登录了。
远程服务器IP
从上图我们主要3个地方,第1个就是SSH无密码登录命令,第2、3个就是登录前后"
@"
后面的机器名变了,由"
变为了"
Slave1"
,这就说明我们已经成功实现了SSH无密码登录了。
最后记得把"
目录下的"
文件删除掉。
rm
–r
~/id_rsa.pub
到此为止,我们经过前5步已经实现了从"
到"
SSH无密码登录,下面就是重复上面的步骤把剩余的两台(Slave2.Hadoop和Slave3.Hadoop)Slave服务器进行配置。
这样,我们就完成了"
配置Master无密码登录所有的Slave服务器"
2.3
配置所有Slave无密码登录Master
和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加到Master的"
文件夹下的"
中,记得是追加(>
)。
为了说明情况,我们现在就以"
无密码登录"
为例,进行一遍操作,也算是巩固一下前面所学知识,剩余的"
Slave2.Hadoop"
和"
Slave3.Hadoop"
就按照这个示例进行就可以了。
首先创建"
自己的公钥和私钥,并把自己的公钥追加到"
文件中。
用到的命令如下:
接着是用命令"
复制"
的公钥"
目录下,并追加到"
中。
1)在"
服务器的操作
用到的命令如下:
hadoop@192.168.1.2:
然后删除掉刚才复制过来的"
文件。
最后是测试从"
无密码登录。
从上面结果中可以看到已经成功实现了,再试下从"
至此"
与"
之间可以互相无密码登录了,剩下的就是按照上面的步骤把剩余的"
之间建立起无密码登录。
这样,Master能无密码验证登录每个Slave,每个Slave也能无密码验证登录到Master。
3、Java环境安装
所有的机器上都要安装JDK,现在就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。
安装JDK以及配置环境变量,需要以"
root"
的身份进行。
3.1
安装JDK
首先用root身份登录"
后在"
/usr"
java"
文件夹,再把用FTP上传到"
下的"
jdk-6u31-linux-i586.bin"
复制到"
/usr/java"
文件夹中。
/usr/java
cp
/home/hadoop/
jdk-6u31-linux-i586.bin
接着进入"
目录下通过下面命令使其JDK获得可执行权限,并安装JDK。
+x
./jdk-6u31-linux-i586.bin
按照上面几步进行操作,最后点击"
Enter"
键开始安装,安装完会提示你按"
键退出,然后查看"
下面会发现多了一个名为"
jdk1.6.0_31"
文件夹,说明我们的JDK安装结束,删除"
文件,进入下一个"
配置环境变量"
环节。
3.2
配置环境变量
编辑"
/etc/profile"
文件,在后面添加Java的"
JAVA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Hadoop 文档 记录