RedHat Linux 6.5 安装 Hadoop 2.7.3

  1、安装Redhat6.5

     1、按照正常步骤安装好Redhat6.5(选择base server,mini后面需要手动安装的程序包太多,Desktop安装了太多无用的程序包)

更多参考

  2、安装JDK  

    1、JDK版本需要在1.7+,本文安装的是JDK1.7

    安装步骤:

     cd /usr

 mkdir java

 a)将jdk-8u60-linux-x64.tar.gz拷贝到java目录下

 b)解压jdk到当前目录

 tar -zxvf jdk-8u60-linux-x64.tar.gz

 c)安装完毕为他建立一个链接以节省目录长度

  ln -s /usr/java/jdk1.8.0_60/ /usr/jdk.7

 d).编辑配置文件,配置环境变量

vim /etc/profile

添加如下内容:

JAVA_HOME=/usr/jdk

CLASSPATH=$JAVA_HOME/lib/

HADOOP_HAOME

PATH=$PATH:$JAVA_HOME/bin:$

export PATH JAVA_HOME CLASSPATH

 e)执行source profile

     f) 测试java安装是否成功 java -version

   3、配置ssh

    在hadoop分布式安装(包括伪分布式)过程中需要使用ssh免密码登录,因此需要配置ssh。这步骤如下:

   #修改ssh配置

    /etc/ssh/sshd_conf 

    RSAAuthentication yes

    PubkeyAuthentication yes

    AuthorizedKeysFile      .ssh/authorized_keys

    $ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa--生成两个文件id_rsa和id_rsa.pub

    $cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys--这个名字和配置文件中的名字一致

   

    $chmod g-w authorized_keys-- 修改一下authorized_keys的权限

    $ssh localhost-- 测试OK

   4、配置环境变量

    # JAVA_HOME SET

    JAVA_HOME=/usr/jdk1.7

    CLASSPATH=$JAVA_HOME/lib/

    HADOOP_HOME=/app/hadoop-2.7.3

    HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

    HADOOP_OPTS='-Djava.library.path=$HADOOP_HOME/lib'

    M2_HOME=/app/apache-maven-3.2.5

    JRE_HOME=$JAVA_HOME/jre

    CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME:/lib:$CLASSPATH

    PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$M2_HOME/bin

    MAVEN_OPTS='-Xms256m -Xmx512m'

    export PATH JAVA_HOME MAVEN_OPTS CLASSPATH HADOOP_COMMON_LIB_NATIVE_DIR HADOOP_OPTS     M2_HOME CLASSPATH JRE_HOME

   

     --其中以下两句是为了解决安装过程中出现的Could not resolve hostname now.: Name or service not kn问题

     export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native  

     export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib" 

  5、配置hadoop

    hadoop有三种运行模式:

    a)独立(或本地)模式:无需运行任何守护进程,所有程序都运行在同一个JVM上面。适用于MapReudce的测试和调试,在开发阶段比较适合.

    b)伪分布式:Hadoop的守护进程会运行在本地机器上,模拟一个小型集群。

    c)全分布式: Hadoop守护进程运行在一个集群上面,此模式属于生产环境配置。

     本文采用的是伪分布式配置,需要配置以下三个文件($hadoopHome/etc/hadoop):

   

    core-site.xml:

        <configuration>

                 <property>

                            <name>fs.defaultFS</name>

                            <value>hdfs://localhost/</value>

                  </property>

        </configuration>

    mapred-site.xml

        <configuration>

         <property>

                <name>mapred.job.tracker</name>

                <value>localhost:8021</value>

         </property>

        </configuration>


    hdfs-site.xml

        <configuration>

                <property>

                        <name>dfs.replication</name>

                        <value>1</value>

                </property>

        </configuration>

 6、格式化HDFS文件系统

    执行:hadoop namenode -format 

 7、启动HDFS和MapReduce

    执行:start-dfs.sh

       start-mapred.sh

     此处执行start-dfs.sh的时候就会出现文章开头所说的天坑,警告信息如下:

     WARN util.NativeCodeLoader: Unable to load native-hadoop library for your     platform... using builtin-java classes where applicable

    问题原因:因hadoop的2.7版本的动态链接库文件是64位的,而我的虚拟机装的是32位。查看动态链接库文件信息如下:

    [hadoop@hadoop native]$ file libhadoop.so.1.0.0

    libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

    解决方法:

        1、在本地编译hadoop,然后用本地编译的动态链接文件替换掉。或者有其他方法欢迎指教。本地编译方法见我另一篇文章介绍:

        2、直接用本地编译的tar包解压,使用本地变异的包

        3、但是仍有此警告,程序可以正常运行(重新编译之前不可用)

  8、验证是否安装成功:

    http://localhost:8088/cluster

    http://localhost:50070/dfshealth.html#tab-overview

    可以正常访问则,可以开始你的hadoop之旅了。

下面关于Hadoop的文章您也可能喜欢,不妨看看:

猜你喜欢

转载自www.linuxidc.com/Linux/2016-11/137605.htm