hadoop2.x伪分布式搭建

【前言】之前搭建了hadoop1.x的伪分布式与全分布式,由于hadoop2.x与hadoop1.x在安装和配置上有较大的区别,所以对hadoop2.x的安装也做一个笔记以便日后学习。
话不多说,直接开始。

【1】准备
java1.7的tar包,hadoop2.x的tar包

【2】安装JDK

    2.1上传
    
    2.2解压jdk
        #创建文件夹
        mkdir /usr/java
        #解压
        tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/
        
    2.3将java添加到环境变量中
        vim /etc/profile
        #在文件最后添加
        export JAVA_HOME=/usr/java/jdk1.7.0_55
        export PATH=$PATH:$JAVA_HOME/bin
    
        #刷新配置
        source /etc/profile

                #获取配置
                echo $JAVA_HOME

【3】安装hadoop2.x

    3.1上传
    
    3.2解压hadoop包
        tar -zxvf hadoop-2.2.0.tar.gz 
                cp hadoop-2.2.0 /usr/local
        
    2.3修改配置文件
        这里要修改五个配置文件,注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
                (1)hadoop-env.sh
                (2)core-site.xml
                (3)hdfs-site.xml
                (4)mapred-site.xml      @(这个文件没有 执行mv mapred-site.xml.template mapred-site.xml命令)
                (5)yarn-site.xml

【4】具体配置内容

第一个:hadoop-env.sh
        vim hadoop-env.sh
        #第27行
        export JAVA_HOME=/usr/java/jdk1.7.0_65
第二个:core-site.xml
        
        
            fs.defaultFS
            hdfs://hadoop:9000
        
        
        
            hadoop.tmp.dir
            /itcast/hadoop-2.4.1/tmp
        
第三个:hdfs-site.xml
        
        
            dfs.replication
            1
        
第四个:mapred-site.xml 
        
        
            mapreduce.framework.name
            yarn
        
第五个:yarn-site.xml
        
        
            yarn.resourcemanager.hostname
            itcast01
        
        
        
            yarn.nodemanager.aux-services
            mapreduce_shuffle
        

注意:另外如果要使用远程调试hadoop还

需要在$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件的最后添加你想debug的进程

    #远程调试namenode
    export HADOOP_NAMENODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=8888,server=y,suspend=y"
    #远程调试datanode
    export HADOOP_DATANODE_OPTS="-agentlib:jdwp=transport=dt_socket,address=9888,server=y,suspend=y"

    #远程调试RM
    export YARN_RESOURCEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y"

    #远程调试NM
    export YARN_NODEMANAGER_OPTS="-agentlib:jdwp=transport=dt_socket,address=10888,server=y,suspend=y"

【5】配置hadoop的相关环境变量

vim /etc/proflie
        export JAVA_HOME=/usr/java/jdk1.7.0_65
        export HADOOP_HOME=/itcast/hadoop-2.4.1
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

【6】格式化namanode(可以理解为U盘的格式化)

hdfs namenode -format (hadoop namenode -format)
hadoop2.x伪分布式搭建_第1张图片
2016-12-06_141758.png

【7】启动hadoop

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

当然,这里也可以用start-all.sh(已过期,但可用)

【8】验证

使用jps命令验证
        27408 NameNode
        28218 Jps
        27643 SecondaryNameNode
        28066 NodeManager
        27803 ResourceManager
        27512 DataNode
    
        http://hadoop:50070 (HDFS管理界面)
        http://hadoop:8088 (MR管理界面)
hadoop2.x伪分布式搭建_第2张图片
2016-12-06_141503.png
hadoop2.x伪分布式搭建_第3张图片
2016-12-06_141041.png
hadoop2.x伪分布式搭建_第4张图片
2016-12-06_141103.png

【9】其他问题
有时候我们虽然安装和启动都OK,但是往往在执行hadoop的shell命令时会遇到这样的问题;

1551669463(1).jpg
[root@hadoop sbin]# hadoop fs -ls /
19/03/04 03:09:23 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[root@hadoop sbin]#
[root@hadoop sbin]#

这是什么问题呢?
1、有可能是hadoop的预编译包是32bit的,运行在64bit上就会有问题。
2、原来系统预装的glibc库和hadoop期望的版本不一致所导致,所以打印警告信息

解决办法:修改hadoop的log4配置(/etc/hadoop/log4j.properties)
文件中添加

log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR

你可能感兴趣的:(hadoop2.x伪分布式搭建)