• Hadoop集群环境安装


    转载请标明出处: 
    http://blog.csdn.net/zwto1/article/details/45647643; 
    本文出自:【zhang_way的博客专栏】

    工具:

    虚拟机virtualbox.  JDK  hadoop1.1.2


                       


    Hadoop集群环境的搭建:

    说明:在hadoop伪分布式基础上进行安装集群环境

    分布结构

             主节点(1个,是hadoop):NameNode、JobTracker、SecondNameNode

             从节点(2个,是hadoop1、hadoop2):DataNode、Tasktracker

     

    Virtuabox里复制出两个节点,作为从节点。改ip.

    192.168.56.100

     

    以下命令来使设置生效。

    service network restart


    注意:当上述命令输入之后,出现了问题,这是delete掉以前的网络连接,重启系统,在自动生成的网络连接里改IP。

     

    改主机名:

    vi  /etc/sysconfig/network

    将HOSTNAME改为hadoop1 ,重启使主机名生效。

     

    如果改主节点的主机名后,要再改:

    vi /etc/hosts # 将主机名改掉。这里是DNS映射


    Hadoop 里的配置也要改关于主机的部分:

    cd /usr/local/Hadoop/conf
    vi core-site.xml
    vi mapred-site.xml


    另个节点相同操作,对网络进行配置。

     

    把复制的两个节点ssh配置删了。

    cd  /root/.ssh
    ls
    rm–rf  *


    把/usr/local 下的东西全部删了

    cd/usr/local
    ls
    rm–rf  *


    把以前配置的环境变量内容也删了

    vi  /etc/profile


    另个节点相同操作,直接如下操作:

    rm -rf/root/.ssh/*
    rm -rf/usr/local/*
    vi/etc/profile


    各节点重新产生ssh加密文件:

    ssh-keygen –t rsa
     
    [root@hadoop1local]# cd /root/.ssh
    [root@hadoop1.ssh]# cat id_rsa.pub >> authorized_keys
    [root@hadoop1.ssh]# ssh localhost
    Theauthenticity of host 'localhost (::1)' can't be established.
    RSA keyfingerprint is 2a:35:90:55:ab:b0:74:3c:e4:8a:fc:16:ad:c9:28:21.
    Are yousure you want to continue connecting (yes/no)? yes
    Warning:Permanently added 'localhost' (RSA) to the list of known hosts.
    Lastlogin: Sun May 10 15:05:52 2015 from 192.168.56.1
    [root@hadoop1~]#exit


    编辑各个节点的/etc/hosts,在该文件中含有所有节点的ip与hostname的映射信息

    查看是否ssh可以解析本主机名

    不能解析要去/etc/hosts 里进行配置 例如:

    192.168.56.101  hadoop1

     

    另一节点是相同配置的

     

    如果改了主节点的主机名的话,也要重新产生ssh机密文件,跟以上的操作是一样的。

    各主机要相互访问,ping通。要对hosts 文件进行配置

    在hosts文件里加入相应ip 和主机名,例如在主机hadoop里加入

    192.168.56.101    hadoop1

    192.168.56.102    hadoop2

     

    其他两个节点相同做法。这里有个问题如果是100台机器这样操作不累死了?解决办法:

    把一台配置好的,我们可以直接把它复制到另两个节点上。这里涉及ssh的免密码登陆。

    两两节点之间的SSH免密码登陆

    把hadoop的公钥复制到hadoop1上;

    ssh-copy-id  -i  hadoop1

    测试是否可以免密码登陆;

    ssh hadoop1
    
    

    再把hadoop2的公钥复制到hadoop1上;

    ssh-copy-id  -i hadoop1

    测试是否可以免密码登陆;

    ssh hadoop2

    hadoop和hadoop2节点应该有相同的配置。为了方便,如下操作:

    在hadoop1下 :

    [root@hadoop1.ssh]# scp /root/.ssh/authorized_keys hadoop:/root/.ssh/
    root@hadoop'spassword:
    authorized_keys                                100% 1181     1.2KB/s  00:00
    
    

    在hadoop里测试看是否复制过去了

    more  /root/.ssh/authorized_keys


    同理复制给hadoop2

     

    把hadoop的hadoop目录下的logs和tmp删除

    [root@hadooplocal]# cd hadoop
    [root@hadoophadoop]# ls
    bin          hadoop-ant-1.1.2.jar          ivy          README.txt
    build.xml    hadoop-client-1.1.2.jar       ivy.xml      sbin
    c++          hadoop-core-1.1.2.jar         lib          share
    CHANGES.txt  hadoop-examples-1.1.2.jar     libexec      src
    conf         hadoop-minicluster-1.1.2.jar  LICENSE.txt tmp
    contrib      hadoop-test-1.1.2.jar         logs         webapps
    docs         hadoop-tools-1.1.2.jar        NOTICE.txt
    [root@hadoophadoop]# rm -rf logs/
    [root@hadoophadoop]# rm -rf tmp/
    
    

    把hadoop中的jdk、hadoop文件夹复制到hadoop1和hadoop2节点

    scp –r /usr/local/jdk  Hadoop1:/usr/local/
    scp –r /usr/local/hadoop Hadoop1:/usr/local/
    scp –r /usr/local/jdk  Hadoop2:/usr/local/
    scp –r /usr/local/hadoop Hadoop2:/usr/local/


    把hadoop的/etc/profile复制到hadoop1和hadoop2节点,在目标节点中执行source  /etc/profile

    [root@hadooplocal]# scp /etc/profile  hadoop1:/etc/
    profile                            100% 1986     1.9KB/s  00:00
     
    [root@hadoop1local]# source /etc/profile
     
    [root@hadooplocal]# scp /etc/profile  hadoop2:/etc/
    profile                            100% 1986     1.9KB/s  00:00
     
    [root@hadoop2~]# source /etc/profile

     编辑hadoop的配置文件slaves,改为从节点的hostname,分别是hadoop1和hadoop2

    [root@hadooplocal]# cd hadoop/conf
    [root@hadoopconf]# vi slaves


    格式化

    在hadoop节点执行:

    hadoop namenode –format


    启动

    在hadoop节点执行start-all.sh

    浏览器查看启动成功后的界面:



    注:对于配置文件core-site.xml和mapred-site.xml在所有节点中都是相同的内容。

     

    如何将SecondaryNameNode 和NameNode分布在不同的节点上?

    在hadoop 节点下,修改masters内容

    [root@hadoopconf]# vi masters

     

    比如将里面的localhost改为Hadoop1

    效果如下:

    Hadoop:

    [root@hadoopconf]# jps

    7008JobTracker

    6836NameNode

    7105 Jps

     

    Hadoop1:

    [root@hadoop1local]# jps

    6315DataNode

    6470TaskTracker

    6561 Jps

    6384SecondaryNameNode

     

    动态的增加一个hadoop节点

    1) 配置新节点的环境

    2)  把新节点的hostname配置到主节点的slaves文件中

    3) 在新节点,启动进程

                              

      hadoop-daemon.sh start datanode
      hadoop-daemon.sh start tasktracker

    4)在主节点执行脚本 

    hadoop dfsadmin -refresh  Nodes

    动态的下架一个hadoop节点

    模拟:

    [root@hadoopconf]# jps
    7008JobTracker
    7203DataNode
    7284TaskTracker
    6836NameNode
    7401 Jps
    [root@hadoopconf]# kill -9 7203


    在浏览器界面会看到hadoop的lastcontact值会变大,启动datanode它会向namenode汇报,如果联系不上,值就会变大,该值为本次汇报的时间 –上次联系的时间。




    安全模式

    安全模式下 不可以增删改,但可以查看

    如下方式可以查看是否在安全模式下

    [root@hadoopconf]# hadoop dfsadmin -safemode get
    Safe modeis OFF

    如何进入进入安全模式如下:

    [root@hadoopconf]# hadoop dfsadmin -safemode enter
    Safe modeis ON
    [root@hadoopconf]# hadoop dfsadmin -safemode get
    Safe modeis ON

    离开安全模式:

    [root@hadoopconf]# hadoop dfsadmin -safemode leave
    Safe modeis OFF
    [root@hadoopconf]# hadoop dfsadmin -safemode get
    Safe modeis OFF

    hadoop 伪分布模式搭建(上) http://blog.csdn.net/zwto1/article/details/44002083
    hadoop伪分布模式搭建(下) http://blog.csdn.net/zwto1/article/details/44020263 



  • 相关阅读:
    解决一道leetcode算法题的曲折过程及引发的思考
    算法研究:一维多项式求值(秦九韶算法)
    通过HWND获得CWnd指针
    将标题空格替换为 '_' , 并自动复制到剪切板上
    稀疏矩阵操作算法
    微信好友分析之展示好友信息
    微信好友分析之获取好友信息
    爬取当当网的图书信息之结尾
    爬取当当网的图书信息之封装一个工具类
    爬取当当网的图书信息之实体设计
  • 原文地址:https://www.cnblogs.com/bigdata1024/p/8387448.html
Copyright © 2020-2023  润新知