hadoop集群的搭建与配置(1)

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

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

  1)修改文件"authorized_keys

hadoop集群的搭建与配置(1)第17张

 2)设置SSH配置

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

hadoop集群的搭建与配置(1)第18张

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

hadoop集群的搭建与配置(1)第19张

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

service sshd restart

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

 hadoop集群的搭建与配置(1)第20张

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

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

hadoop集群的搭建与配置(1)第21张

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

hadoop集群的搭建与配置(1)第22张

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

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

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

hadoop集群的搭建与配置(1)第23张

注释:如果不进行,即使你按照前面的操作设置了"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"文件权限:

hadoop集群的搭建与配置(1)第24张

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

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

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

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

hadoop集群的搭建与配置(1)第25张

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

同样的原理我们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"文件夹中。

hadoop集群的搭建与配置(1)第26张

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

hadoop集群的搭建与配置(1)第27张

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

再次执行hadoop集群的搭建与配置(1)第28张

hadoop集群的搭建与配置(1)第29张

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

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

hadoop集群的搭建与配置(1)第30张

hadoop集群的搭建与配置(1)第31张

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

hadoop集群的搭建与配置(1)第32张

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

hadoop集群的搭建与配置(1)第33张

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

第四部是hadoop环境的安装。

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

hadoop集群的搭建与配置(1)第34张

然后复制到usr文件夹下面

hadoop集群的搭建与配置(1)第35张

对文件进行解压

hadoop集群的搭建与配置(1)第36张

 
 

免责声明:文章转载自《hadoop集群的搭建与配置(1)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux下查看CPU、内存占用率excel导入与导出下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux学习(二) ---- Linux文件格式权限全解 ls -al [原创]

命令: $ ls -al drwxr-x---  2 user group         72 2013-09-20 16:21 .xemacs-rw-r-----  1  user group        119 2013-09-20 16:21 .xtalkrcdrwxr-x---  2 user group        104 2013-10-...

C#远程访问linux(ubuntu)或windows的mysql数据库

 1、远程访问数据库大概模型 2、mysql在win7、linux上如何设置:2.1、分配权限(linux和win7) 进行mysql命令行,进行分配权限、执行 GRANTALLPRIVILEGESON*.*TO'Lucy'@'192.168.1.102' IDENTIFIED BY'123'WITHGRANTOPTION; ALL PRIVILEGE...

Linux系统扩容根目录磁盘空间的操作方法

一、使用背景 Linux根目录磁盘空间不够用了,当修改了虚拟机模版增加磁盘大小或者插入了一块新硬盘,但是发现系统里的大小还是没改变。 产生的原因是没有给磁盘格式化,没有增加分区。 二、操作方法 1. 查看磁盘空间大小,使用df -h 命令,发现挂载根目录节点的/dev/mapper/ubuntu14--vg-root 只有28G容量。 1 2 3 4...

批量实现ssh免密登录

本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里、腾讯那样,动不动就上亿的PV量,上万台服务器。我们通常还是工作在,几十台上百台服务器这样的环境,而使用ansible或者puppet这样的自动化运维工具则显得大材小用,并且最终的效果可能还不如几个...

linux安装jdk脚本

使用Shell远程给Linux安装JDK  #1.下载JDK(不同版本JDK更换链接即可) wget命令下载的文件会在当前目录下,所以如果在下载前最好先 cd 到想把JDK安装的位置,如果没有,可以先创建相应目录 1 wget --no-check-certificate --no-cookies --header "Cookie: oraclelic...

Linux常用命令(1)

常用命令 #创建用户 useradd <用户名> <可选参数> #可选参数 -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m 选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用...