Hadoop入门之集群搭建

来源:互联网 发布:别克车钥匙淘宝图片 编辑:程序博客网 时间:2024/05/29 19:52

     Hadoop集群的搭建主要分为两个部分,一个是HDFS集群(主要负责文件的存储),这里需要用到NameNode和DataNode两个部分,还有一个是Yarn(主要负责任务调度,即后面需要跑的Mapreduce),这里也是两个ResourceManager和NodeManager.下面是搭建的大致流程:

  

     (如果Shell脚本写的好,可以写个Shell脚本一次性部署一下)


   1.修改主机名和IP的映射关系 :如我使用 192.168.1.101,  192.168.1.102  192.168.1.103  192.168.1.104 这四台机器搭建

         vim /etc/hosts
            
        192.168.1.101    hadoop01

        192.168.1.102    hadoop02

        192.168.1.103    hadoop03

        192.168.1.104    hadoop04

    

    2 关闭防火墙(让机器之间可以相互RPC通信)
        #查看防火墙状态
        service iptables status
        #关闭防火墙
        service iptables stop
        #查看防火墙开机启动状态
        chkconfig iptables --list
        #关闭防火墙开机启动
        chkconfig iptables off

   3.给Hadoop集群在机器上创建一个执行用户

      useradd  hadoop

      password  hadoop   --> 这里密码我也简单设置成hadoop了

 

   4. 给Hadoop用户配置sudo权限

        vim /etc/sudoers  

       末尾添加:

       hadoop   ALL=(ALL)       NOPASSWD: ALL

       以后 都尽量使用hadoop用户操作

 

 5. 安装JDK 配置/etc/proflie 中的JAVA_HOME 和PATH (网上很多,这里不详细讲了)

 

 6.上传Hadoop编译后的安装包到一台机器上,这里有一个centos6的: 链接:http://pan.baidu.com/s/1geUcZEr 密码:ksrg

       解压后配置下HADOOP_HOME

         vim /etc/proflie
        export HADOOP_HOME=/xxxxx/hadoop-xxxxx
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    source /etc/profile


7.修改Hadoop的几个配置文件 :

   注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop

      第一个:hadoop-env.sh
        vim hadoop-env.sh
       
        export JAVA_HOME=你的JAVA_HOME的真实路径
        
    第二个:core-site.xml

        <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hadoop01:9000</value>
        </property>
        <!-- 指定hadoop运行时产生文件的存储目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/hadoop/hadoop-2.4.1/tmp</value>
    </property>
        
    第三个:hdfs-site.xml   
        <!-- 指定HDFS副本的数量 -->
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        
        <property>
            <name>dfs.secondary.http.address</name>
            <value>192.168.1.101:50090</value>
        </property>

    
    
        
    第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
        mv mapred-site.xml.template mapred-site.xml
        vim mapred-site.xml
        <!-- 指定mr运行在yarn上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        
    第五个:yarn-site.xml
        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop01</value>
        </property>
        <!-- reducer获取数据的方式 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>

 

8.将修改后的Hadoop文件包通过SCP的方式发送到剩余要部署的机器上:

   scp local_file remote_username@remote_ip:remote_folder

  


9.修改主节点(NameNode)上 $HADOOP_HOME/etc/hadoop/slaves

将其余机器加上:

hadoop02

hadoop03

hadoop04


10.初始化Hadoop目录生成原始标识:

   hdfs namenode -format (hadoop namenode -format)


11. 配置ssh免登陆
    #生成ssh免登陆密钥
    #进入到我的home目录
    cd ~/.ssh

    ssh-keygen -t rsa (四个回车)
    执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
    将公钥拷贝到要免密登陆的目标机器上
    ssh-copy-id localhost
    ---------------------------
    ssh免登陆:
        生成key:
        ssh-keygen
        复制从A复制到B上:
        ssh-copy-id B
        验证:
        ssh localhost/exit,ps -e|grep ssh
        ssh A  #在B中执行


11.启动Hadoop集群

          先启动HDFS
        sbin/start-dfs.sh
        
        再启动YARN
        sbin/start-yarn.sh


12 .验证是否启动成功
        使用jps命令验证
        27408 NameNode
        28218 Jps
        27643 SecondaryNameNode
        27803 ResourceManager
    
        http://192.168.1.101:50070 (HDFS管理界面)
        http://192.168.1.101:8088 (MR管理界面)


最后上两张界面图吧:






最后祝大家都能成功!




原创粉丝点击