• Hadoop2.4.1伪分布式配置详解


    实验环境:

        VMware Workstation 10.0   

        CentOS 6.5    

        Hadoop 2.4.1 

        Jdk1.7.0

    一. Linux系统环境准备    

       用WindSCP等软件,把JDK和Hadoop的安装包上传到CentOS虚拟机中。

       用户设置

         如果用普通用户进行以下操作,先把普通用户添加到/etc/sudoers文件中,以便能执行sudo命令。

    切换到root
    $su -
    添加普通用户到sudoers
    #vim /etc/sudoers
    在文件的99行添加 hadoop ALL=(ALL) ALL
    添加普通用户hadoop

         配置IP

        虚拟机使用NAT模式。

    用图形界面或直接修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
    IP:192.168.18.101
    MASK:255.255.255.0
    ROUTE:192.168.18.1

         修改主机名

        非必须步骤,为了以后的方便,还是配置的好。

    修改主机名为hadoop001,重启生效
    [root@localhost ~]# vim /etc/sysconfig/network
       NETWORKING=yes
       HOSTNAME=hadoop001
    查看主机名
    [root@localhost ~]# hostname

          配置主机名和IP的映射

    为了测试方便,也可以再配置宿主机windows的映射 C:WindowsSystem32driversetchosts
    [root@localhost ~]# vim /etc/hosts
    添加: 192.168.18.101 hadoop001

         关闭防火墙

            不关闭防火墙,其他主机不能访问http等服务。当然,如果你会,自己配置防火墙更好。

    关闭防火墙
    [root@localhost ~]# service iptables stop
    查看防火墙状态
    [root@localhost ~]# service iptables status
    iptables: Firewall is not running.
    设置开机不启动防火墙
    [root@localhost ~]# chkconfig iptables off

        配置完成,重启CentOS

    #reboot

    二. 安装JDK和Hadoop

    解压JDK和Hadoop的安装包*.tar.gz.

    配置环境变量

    重新编译环境变量配置文件
    #source /etc/profile
    测试命令
    $java -version
    $hadoop

    三.Hadoop配置

    1. etc/hadoop/hadoop-env.sh 

    修改 HADOOP_HOME/etc/hadoop/hadoop-env.sh 

    把27行,${JAVA_HOME}换成jdk的绝对路径。

    可能是hadoop的shell脚本问题,这里经常获取JAVA_HOME失败,所以替换成jdk的绝对路径。

    2. etc/hadoop/core-site.xml

    <configuration>
         <property>
             <name>fs.defaultFS</name>
             <value>hdfs://hadoop001:9000</value>
             <discription> 
                hdfs://hostname|IP:port
                 文件系统的名字,默认端口号为8020(见NameNode源码),
            </discription>
         </property>
        <property>
              <name>hadoop.tmp.dir</name>
              <value>/home/hadoop/apps/hadoop-2.4.1/tmp</value>
              <discription>
                   指定name table(fsimage)在本地系统的存放位置,
                   如果value是以逗号分隔的多个目录,则会在每个目录中保存一份,作为冗余备份。
                   注意:如果最前面不加/ 就是相对HADOOP_HOME的路径
              </discription>
         </property>
    </configuration>

    3. etc/hadoop/hdfs-site.xml

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
            <description>
                block副本的数量(副本因子)
                在搭建伪分布式时,值为1就行,覆盖hdfs-default.xml中配置的默认值3。
             </description>
        </property>
    <configuration>

    4. etc/hadoop/mapred-site.xml

     修改mapred-site.xml.template文件名为mapred-site.xml

    <configuration>
         <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
         </property>
         <description>
            指定MapReduce运行在Yarn上
         </description>
    </configuration>

    5. etc/hadoop/yarn-site.xml

    </configuration>
        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
        	<name>yarn.resourcemanager.hostname</name>
        	<value>hadoop001</value>
        </property>
        	<!-- reducer获取数据的方式 -->
        <property>
        	<name>yarn.nodemanager.aux-services</name>
        	<value>mapreduce_shuffle</value>
        </property>
    </configuration>

    四. 启动Hadoop

    SSH免密码登录

    设置无密码登录NameNode等节点。因为我们是伪分布式实验环境,所以启动或关闭HDFS和Yarn时每次输入密码不方便。

    测试一下,是否可以通过SSH免密码的登录

      $ ssh localhost

    If you cannot ssh to localhost without a passphrase, execute the following commands:

      $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
      $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
      #然后再用ssh localhost测试一下,如果不行,就改一下秘钥的权限。
      #chmod 600 .ssh/*

    格式化HDFS

        为什么需要格式化?

        和使用新买的硬盘时,也需要格式一下一个道理,根据选择的文件系统类型对磁盘进行配置。

        windows下选择NTFS文件系统,这个是HDFS文件系统,只不过HDFS的是一个逻辑磁盘

    hfds namenode -format  
    或hadoop namenode -form  这是hadoop1.x中的命令,已经过时。

    格式化成功后,Hadoop会在core-site.xml文件中配置的hadoop.tmp.dir目录下自动创建dfs/name目录。

    格式化信息:

    查看初始状态下dfs/name下只有fsimage文件。

        启动Hadoop服务

    hadoop 1.x通过start-all.sh启动hdfs和MapReduce
    $ bin/start-all.sh
    hadoop2.x
    启动hdfs服务
    $start-dfs.sh
    启动yarn
    $start-yarn.sh

        验证成功启动

      1) 用JPS查看java进程

    2)Browse the web interface for the NameNode and theMapReduce

        NameNode Web UI- http://localhost:50070/

        MapReduce Web UI - http://localhost:8088/




  • 相关阅读:
    常用的VI/VIM命令
    那些年学过的一些算法
    huffman编码
    好用java库(一):java date/time api:jodatime
    linux启动
    ubuntu学习方式
    地址
    各种各样的软件
    jquery文件
    C变量与数据
  • 原文地址:https://www.cnblogs.com/lukeguo/p/8824776.html
Copyright © 2020-2023  润新知