zoukankan      html  css  js  c++  java
  • hadoop集群的搭建与配置(1)

    前言     
           首先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文件夹下面

    对文件进行解压

     
     
    博客园内容
  • 相关阅读:
    JS重写alert,保证弹窗错误的友好性
    wpf窗体中复合控件焦点控制
    mybatis特殊字符转义
    SpringMVC HandlerMethodArgumentResolver自定义参数转换器
    IntelliJ IDEA创建maven web项目
    shiro app
    Linux查看日志定位问题
    Flask中使用Flask-Migrate扩展迁移数据库
    flask + pymysql操作Mysql数据库
    HTTP
  • 原文地址:https://www.cnblogs.com/xiaoxutongxue/p/3500273.html
Copyright © 2011-2022 走看看