hadoop安装配置文档Word文件下载.docx
《hadoop安装配置文档Word文件下载.docx》由会员分享,可在线阅读,更多相关《hadoop安装配置文档Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
![hadoop安装配置文档Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/20/aec81a03-6c82-4cec-96f8-cc9ef8120163/aec81a03-6c82-4cec-96f8-cc9ef81201631.gif)
[root@Masterhadoop]#passwdhadoop(为hadoop用户创建密码)
linux系统中,对用户的权限设计完善。
root用户拥有最高权限,普通用户(如hadoop)权限较低。
涉及系统的操作,用hadoop用户可能无法执行,这就需要在hadoop用户和root用户之间进行切换。
从root用户切换到hadoop用户的命令为:
suhadoop,不需要输入密码直接切换。
从hadoop用户切换到root用户的命令为:
suroot,需要输入密码,验证后才能切换。
普通用户要获取root的权限,也可以不suroot,而是在命令前加上sudo字符,具体用法,可参考互联网。
1.2网络配置
下面的例子我们将以Master机器为例,即主机名为"
Master.Hadoop"
,IP为"
192.168.1.2"
进行一些主机名配置的相关操作。
其他的Slave机器以此为依据进行修改。
1)修改当前机器名称
假定我们发现我们的机器的主机名不是我们想要的,通过对"
/etc/sysconfig/network"
文件修改其中"
HOSTNAME"
后面的值,改成我们规划的名称。
通过上面的命令我们从"
中找到"
进行修改,查看内容如下:
其他机器也变为对应的机器名称Slave1.Hadoop和Slave2.Hadoop
2)修改当前机器IP
假定我们的机器连IP在当时安装机器时都没有配置好,那此时我们需要对"
ifcfg-eth0"
文件进行配置,该文件位于"
/etc/sysconfig/network-scripts"
文件夹下。
查看"
/etc/sysconfig/network-scripts/ifcfg-eth0"
内容,如果IP不与环境说明的不符合,就行修改。
如果上图中IP与规划不相符,用下面命令进行修改:
vim/etc/sysconfig/network-scripts/ifcgf-eth0
修改完之后可以用"
ifconfig"
进行查看。
3)配置hosts文件(必须)
"
/etc/hosts"
这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName和IP]用的。
当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。
我们要测试两台机器之间知否连通,一般用"
ping机器的IP"
,如果想用"
ping机器的主机名"
发现找不见该名称的机器,解决的办法就是修改"
这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。
例如:
机器为"
Master.Hadoop:
对机器为"
Salve1.Hadoop:
192.168.1.3"
用命令"
ping"
记性连接测试。
测试结果如下:
从上图中的值,直接对IP地址进行测试,能够ping通,但是对主机名进行测试,发现没有ping通,提示"
unknownhost——未知主机"
,这时查看"
的"
文件内容。
发现里面没有"
192.168.1.3Slave1.Hadoop"
内容,故而本机器是无法对机器的主机名为"
Slave1.Hadoop"
解析。
在进行Hadoop集群配置中,需要在"
文件中添加集群中所有机器的IP与主机名,这样Master与所有的Slave机器之间不仅可以通过IP进行通信,而且还可以通过主机名进行通信。
所以在所有的机器上的"
文件末尾中都要添加如下内容:
192.168.1.2Master.Hadoop
192.168.1.3Slave1.Hadoop
192.168.1.4Slave2.Hadoop
192.168.1.5Slave3.Hadoop
用以下命令进行添加:
vim/etc/hosts
添加结果如下:
现在我们在进行对机器为"
的主机名进行ping通测试,看是否能测试成功。
从上图中我们已经能用主机名进行ping通了,说明我们刚才添加的内容,在局域网内能进行DNS解析了,那么现在剩下的事儿就是在其余的Slave机器上进行相同的配置。
然后进行测试。
(备注:
当设置SSH无密码验证后,可以"
scp"
进行复制,然后把原来的"
hosts"
文件执行覆盖即可。
)
用下面命令进行修改当前机器的主机名(备注:
修改系统文件一般用root用户)
1.3所需软件
1)JDK软件
jdk-8u5-linux-i586.rpm可以去官网上下载
2)Hadoop软件
hadoop-2.2.0.tar.gz可以去官网上下载
2、SSH无密码验证配置
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(SecureShell)来启动和停止各个DataNode上的各种守护进程的。
这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。
由于是对hadoop用户进行无密码验证,所以该过程主要部分用“hadoop”身份进行。
图片中[hadoop@Master~]代表此时操作用户为hadoop,[root@Master~]代表操作用户为root,可仔细参考图片。
2.1安装和启动SSH协议
在"
Hadoop集群(第1期)"
安装CentOS6.0时,我们选择了一些基本安装包,所以我们需要两个服务:
ssh和rsync已经安装了。
可以通过下面命令查看结果显示如下:
rpm–qa|grepopenssh
rpm–qa|greprsync
假设没有安装ssh和rsync,可以通过下面命令进行安装。
yuminstallssh安装SSH协议
yuminstallrsync(rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)
servicesshdrestart启动服务
确保所有的服务器都安装,上面命令执行完毕,各台机器之间可以通过密码验证相互登。
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–trsa–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)修改文件"
chmod600~/.ssh/authorized_keys
备注:
如果不进行设置,在验证时,扔提示你输入密码,在这里花费了将近半天时间来查找原因。
在网上查到了几篇不错的文章,把作为"
Hadoop集群_第5期副刊_JDK和SSH无密码配置"
来帮助额外学习之用。
(2)设置SSH配置
用root用户登录服务器修改SSH配置文件"
的下列内容。
RSAAuthenticationyes#启用RSA认证
PubkeyAuthenticationyes#启用公钥私钥配对认证方式
AuthorizedKeysFile.ssh/authorized_keys#公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效。
servicesshdrestart
退出root登录,使用hadoop普通用户验证是否成功。
sshlocalhost
从上图中得知无密码登录本级已经设置完毕,接下来的事儿是把公钥复制所有的Slave机器上。
使用下面的命令格式进行复制公钥:
scp~/.ssh/id_rsa.pub远程用户名@远程服务器IP:
~/
scp~/.ssh/id_rsa.pubhadoop@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的