前言     
       首先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防火墙的关闭)
(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 www.baidu.com 测试一下发现已经能上网了这个时候我们的系统就安装好了。
(中间插一点内容,有一个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文件夹下面

对文件进行解压

 
 

hadoop集群的搭建与配置(1)的更多相关文章

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

    对解压过后的文件进行从命名 把"/usr/hadoop"读权限分配给hadoop用户(非常重要) 配置完之后我们要创建一个tmp文件供以后的使用 然后对我们的hadoop进行配置文 ...

  2. hadoop集群环境搭建之安装配置hadoop集群

    在安装hadoop集群之前,需要先进行zookeeper的安装,请参照hadoop集群环境搭建之zookeeper集群的安装部署 1 将hadoop安装包解压到 /itcast/  (如果没有这个目录 ...

  3. hadoop集群环境搭建之zookeeper集群的安装部署

    关于hadoop集群搭建有一些准备工作要做,具体请参照hadoop集群环境搭建准备工作 (我成功的按照这个步骤部署成功了,经实际验证,该方法可行) 一.安装zookeeper 1 将zookeeper ...

  4. hadoop集群环境搭建准备工作

    一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...

  5. hadoop集群的搭建

    hadoop集群的搭建 1.ubuntu 14.04更换成阿里云源 刚刚开始我选择了nat模式,所有可以连通网络,但是不能ping通,我就是想安装一下mysql,因为安装手动安装mysql太麻烦了,然 ...

  6. Hadoop集群环境搭建步骤说明

    Hadoop集群环境搭建是很多学习hadoop学习者或者是使用者都必然要面对的一个问题,网上关于hadoop集群环境搭建的博文教程也蛮多的.对于玩hadoop的高手来说肯定没有什么问题,甚至可以说事“ ...

  7. hadoop集群的搭建(分布式安装)

    集群 计算机集群是一种计算机系统,他通过一组松散集成的计算机软件和硬件连接起来高度紧密地协同完成计算工作. 集群系统中的单个计算机通常称为节点,通常通过局域网连接. 集群技术的特点: 1.通过多台计算 ...

  8. Hadoop集群上搭建Ranger

    There are two types of people in the world. I hate both of them. Hadoop集群上搭建Ranger 在搭建Ranger工程之前,需要完 ...

  9. Hadoop集群初步搭建:

    自己整理了一下Hadoop集群简易搭建的过程,感谢尚观科技贾老师的授课和指导! 基本环境要求:能联网电脑一台:装有Centos系统的VMware虚拟机:Xmanager Enterprise 5软件. ...

随机推荐

  1. hdu 新生晚会

    Problem Description 开学了,杭电又迎来了好多新生.ACMer想为新生准备一个节目.来报名要表演节目的人很多,多达N个,但是只需要从这N个人中选M个就够了,一共有多少种选择方法?   ...

  2. NET使用了UpdatePanel后如何弹出对话框!

    原文:NET使用了UpdatePanel后如何弹出对话框! 在ajax中的UpdatePanel弹出对话窗,可以使用: ScriptManager.RegisterStartupScript(Upda ...

  3. sql事务,在sql2000里判断执行是否成功用@@ERROR 判断

    原文:sql事务,在sql2000里判断执行是否成功用@@ERROR 判断 贴个sql事务,在sql2000里判断执行是否成功用@@ERROR 判断 这个东西多少还是有点问题,sql2005了可以用t ...

  4. c语言复杂声明解析

    这是个好东西,接触c语言好几年了,第一次看到这东西,惊喜万分. 先提供个分析案例,以后看方便 vector <int> * (*seq_array[]) (int )={func1,fun ...

  5. The Swift Programming Language-官方教程精译Swift(6)控制流--Control Flow

    Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他代码的break和continu ...

  6. IOS数组排序等

    一.UITextField的代理方法 #pragma mark 当文本框开始编辑的时候调用---开始聚焦 - (void)textFieldDidBeginEditing:(UITextField * ...

  7. C# .NET ASP.NET 其中关系你了解多少

    有些人一直在做这方面..但突然有人来问你这些问题..估计有很多答不上来. 1..NET是一个平台,一个抽象的平台的概念. .NET平台其本身实现的方式其实还是库,抽象层面上来看是一个平台. 个人理解. ...

  8. Dojo仪表板

    Dojo它提供了一个良好的仪表板显示器,的影响,如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR0lTU2hpWGlTaGVuZw==/font/ ...

  9. 多线程下HashMap的死循环是如何产生的

    前言 HashMap不是线程安全的,如果需要在多线程环境中使用Map,那么我们可以使用ConcurrentHashmap. 1.举例说明: package com.test; import java. ...

  10. CSS学习笔记之CSS的继承、层叠和特殊性

    继承 CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代.比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签 ...