博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hadoop集群的搭建与配置(1)
阅读量:5326 次
发布时间:2019-06-14

本文共 4728 字,大约阅读时间需要 15 分钟。

前言     
       首先hadoop是在linux系统上进行搭建的,我们首先要在自己电脑上装上虚拟机然后装linux系统,因为我们是测试:在本地虚拟机上装两个linux分别搭建好hadoop环境能实现简单的数据处理就可以了,最终的效果类似于我们c#中的hello world!能做到这里我们的搭建测试环境就算基本上完成了。虚拟机以及linux系统文件在公司的ftp服务器上都有,到时候直接拿来在本地安装就可以了。中间很多东西我都是借鉴的博客园中的一篇关于hadoop的博客,想深入了解的可以上去看一下,中间有很多东西我也是引用的这篇博客中的内容,这里我把博客的地址放在这里: 。
 
环境的搭建分为四部
        第一步装linux系统,这一步比较简单跟在我们本地装windows系统一样,机械的往下走就行了,具体的细节可以参考这里: 。这里我们一并的是安装两个linux系统,完成之后我们要关闭
防火墙
SELinux为了是方便我们本地数据之间的传输,而且一般不需要SELinux的保护所以设置为disabled状态。(注释:在进行系统的配置以及修改内容的时候一般用的root用户,该用户有系统的最高权限,可以对内容进行修改。)
(1防火墙的关闭)
(2关闭SELinux)
vim /etc/sysconfig/selinux
 
把SELINUX=enforcing → →SELINUX=disabled
注释:输入vim /etc/sysconfig/selinux之后点击键盘上字幕a可以进行编辑然后Esc退出编辑,“:wq!”回车即可对编辑的内容进行保存。
(3关闭不需要的服务)
(4把配置系统可以访问网络)
vim /etc/sysconfig/network-scripts/ifcfg-etf0
刚安装好的系统NOBOOT="no"→ →ONBOOT="yes"
然后把系统关闭执行:
poweroff
系统关闭之后
对虚拟机的设置进行配置把network adapter中的network conneciton下面的两个地方勾上
 
从新启动系统,ping 测试一下发现已经能上网了这个时候我们的系统就安装好了。
(中间插一点内容,有一个SSH_linux的工具,该工具可以实现我们本地的windows系统和我们linux系统文件的一个传递,非常的方便,工具我这里有也可以去网上下载,附上截图一张
左边方框就是我们的本地电脑,右侧就是我们linux系统,可以进行拖拽进行文件的传递,但是我们要在我们的linux系统上安装和配置VSFTP
 
执行该命令没有反应说明我们还没有安装VSFTP服务,下面就要下载和安装VSFTP了(在root用户下才能安装文件)
 
 
正在下载文件
 
安装完毕
 
安装VSFTP的日志文件,这样我们的VSFTP就安装完毕了)
第二部就是实现linux系统之间的无密码登录了,正常情况下比如我们的linux系统在同一个局域网下面的登录是输入登入放的密码的,这里以我的两台服务器为例,我的一台是192.168.9.199(该机是Master服务器),另一台是192.168.9.163(该机是从服务器Slave1)如果我在master服务器上要登录Slave1,则执行命令
ssh 192.1668.9.163 
这会提示我们输入163这台服务器的登录密码。我们现在要做的就是在我们的Master和Slave1服务器之间实现无密码的登录效果如果:
我们发现我们输入地址之后前面的服务器名字直接变成Slave1了,这个时候就证明我们配置成功了,也是我们最终要的效果。下面我们就详细说一下如何实现无密码的登录的配置。(
注释:我在下面的讲解中会复制博客园的图片,他的ip和我的不一样,这个到时候要根据自己配置的时候用到的ip记性实施的更改,有不清楚的地方还可以问我
这里我先说明一下配置无密码登录的原因:
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到NameNode。
来源: <http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html>
在"Hadoop集群(第1期)"安装CentOS6.0时,我们选择了一些基本安装包,所以我们需要两个服务:ssh和rsync已经安装了。可以通过下面命令查看结果显示如下:
这个时候我们发现我们已经安装完毕了,如果没有安装也没事通过下边的命令就可以进行安装
 
 
 
配置Master无密码登录所有Salve(这里我们只演示Master到Slave的配置,Slave到Master的配置是一样的就不多做解释了
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节点上执行以下命令:
 
这条命是生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。
查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。
 
 
 接着在Master节点上做如下配置,把id_rsa.pub追加到授权的key里面去。

 在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。

  1)修改文件"authorized_keys

 

 2)设置SSH配置

  用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"下列内容

 

进入配置界面把下面的内容添加到配置里面保存退出

 

保存配置之后一定要进行文件的从新启动,不然配置的内容是不会有效果的。执行命令

service sshd restart

从启服务之后我们推出root用户,用hadoop用户进行测试

 

出现上图的效果的时候证明我们已经在本机上配置好了,下面我们就要把公钥复制到我们的Slave1机器上进行配置了,复制的命令如下:

scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/

这是我们已经把我们的文件复制到Slave1机器上了,我们可以登录我们Slave系统上查看是否有该文件

 

这个时候我们发现已经复制过去了。

2)在"/home/hadoop/"下创建".ssh"文件夹

  这一步并不是必须的,如果在Slave1.Hadoop的"/home/hadoop"已经存在就不需要创建了,因为我们之前并没有对Slave机器做过无密码登录配置,所以该文件是不存在的。用下面命令进行创建。(备注:用hadoop登录系统,如果不涉及系统文件修改,一般情况下都是用我们之前建立的普通用户hadoop进行执行命令。)

 

注释:如果不进行,即使你按照前面的操作设置了"authorized_keys"权限,并配置了"/etc/ssh/sshd_config",还重启了sshd服务,在Master能用"ssh localhost"进行无密码登录,但是对Slave1.Hadoop进行登录仍然需要输入密码,就是因为".ssh"文件夹的权限设置不对。这个文件夹".ssh"在配置SSH无密码登录时系统自动生成时,权限自动为"700",如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败。

对比上面两张图,发现文件夹".ssh"权限已经变了。

3)追加到授权文件"authorized_keys"

  到目前为止Master.Hadoop的公钥也有了,文件夹".ssh"也有了,且权限也修改了。这一步就是把Master.Hadoop的公钥追加到Slave1.Hadoop的授权文件"authorized_keys"中去。使用下面命令进行追加并修改"authorized_keys"文件权限:

4)用root用户修改"/etc/ssh/sshd_config"

  具体步骤参考前面Master.Hadoop的"设置SSH配置",具体分为两步:第1是修改配置文件;第2是重启SSH服务。

5)用Master.Hadoop使用SSH无密码登录Slave1.Hadoop

  当前面的步骤设置完毕,就可以使用下面命令格式进行SSH无密码登录了。

这个时候我们发现我们已经配置成功了。

同样的原理我们Slave登录Master也是一样的配置呢,这里图片我是在博客园截的图,他的ip地址和我的是不一样的他的Master是192.168.1.2,Slave1是192.168.1.3。

第三部就是java环境的安装了,这里我用的是jdk-7u25-linux-i586.rpm,所有的机器上都要安装JDK,现在就先在Master服务器安装,然后其他服务器按照步骤重复进行即可。安装JDK以及配置环境变量,需要以"root"的身份进行。 首先用root身份登录"Master.Hadoop"后在"/usr"下创建"java"文件夹,再把用SSH_linux上传到"/home/hadoop/"下的"jdk-6u31-linux-i586.bin"复制到"/usr/java"文件夹中。

 

接着进入"/usr/java"目录通过下面命令使其JDK获得可执行权限,并安装JDK。

 

 

回车就可以进行文件的安装了。

再次执行

 

 

这个时候证明我们已经安装完毕了。

 

java环境安装好了,我们还要配置java的环境,

这个时候我们保持退出,从新启动服务

这个是我们的java就配置完成了,我们可以通过java -version来看我们是否配置成功

这个时候证明我们java环境就配置好了。接下来我们就要把每台服务器都配置好java环境。

第四部是hadoop环境的安装。

首先用root用户登录"Master.Hadoop"机器,查看我们之前用SSH_linux上传至"/home/Hadoop"上传的"hadoop-1.0.0.tar.gz"。

然后复制到usr文件夹下面

对文件进行解压

 

 

 

 

 

 
 

转载于:https://www.cnblogs.com/xiaoxutongxue/p/3500273.html

你可能感兴趣的文章
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
Windows Phone开发(5):室内装修 转:http://blog.csdn.net/tcjiaan/article/details/7269014
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
IOS Layer的使用
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
个人作业
查看>>
下拉刷新
查看>>
linux的子进程调用exec( )系列函数
查看>>
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>