阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

RedHat Linux 6.5 安装 Hadoop 2.7.3

166次阅读
没有评论

共计 4777 个字符,预计需要花费 12 分钟才能阅读完成。

因公司项目打算往 Hadoop 方向走,也打算正式的学习一下。第一次在工作中听到 Hadoop 还是在 4 年前,当时我们公司的一个技术大拿跟我说有时间可以考虑学习一下 Hadoop。当时所在的是属于为国企提供软件服务的小公司,其所需的技术含量和处理的数据量感觉完全跟所谓的“大数据”挂不上勾. 后面从该公司来到深圳之后进入现在的公司,才正式的接触到亿级以上的数据量的处理。也正是从接触这种亿级以上的数据量的处理时才真正的对所谓的性能优化有所了解和学习。采用的是传统的 IOE 架构,在日常工作中经常因程序运行性能问题而需分析和优化 Oracle 的执行计划、索引等问题。随着公司业务量增长和前端数据结构方式变更,数据量猛增,慢慢的 Oracle 已经表现得非常吃力。平时的运维成本也逐步增加(最主要是调优)。因此打算引入 Hadoop 来解决其中一部分非常耗时和重要的分析型计算。

本文采用 RedHat Linux 6.5 32 位操作系统安装最新版本的 Hadoop 2.7.3.(这里一开始就隐藏了一个天坑,后续会介绍)

  1、安装 Redhat6.5

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

    2、安装完只有需要配置自动挂载安装镜像文件,然后配置 yum 本地库指向挂载目录。具体步骤:http://www.linuxidc.com/Linux/2016-11/136701.htm(可解决后面程序需要安装的软件包,此步骤不是 hadoop 安装成功的必要条件,可以在需要安装的时候手动挂载)

更多参考

CentOS7 搭建本地 yum 源服务器 http://www.linuxidc.com/Linux/2016-07/133362.htm

yum 的配置文件说明 http://www.linuxidc.com/Linux/2013-04/83298.htm

RedHat 6.1 下安装 yum(图文) http://www.linuxidc.com/Linux/2013-06/86535.htm

YUM 安装及清理 http://www.linuxidc.com/Linux/2013-07/87163.htm

CentOS 6.4 上搭建 yum 本地源 http://www.linuxidc.com/Linux/2014-07/104533.htm

  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 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

CentOS 6.3 下 Hadoop 伪分布式平台搭建  http://www.linuxidc.com/Linux/2016-11/136789.htm

Ubuntu 14.04 LTS 下安装 Hadoop 1.2.1(伪分布模式)http://www.linuxidc.com/Linux/2016-09/135406.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

实战 CentOS 系统部署 Hadoop 集群服务 http://www.linuxidc.com/Linux/2016-11/137246.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

Hadoop 2.6.0 HA 高可用集群配置详解  http://www.linuxidc.com/Linux/2016-08/134180.htm

Spark 1.5、Hadoop 2.7 集群环境搭建  http://www.linuxidc.com/Linux/2016-09/135067.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137605.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4777字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中