设为首页 收藏本站
查看: 1228|回复: 0

[经验分享] Redhat 6.5 Hadoop安装详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-28 09:36:14 | 显示全部楼层 |阅读模式
因公司项目打算往hadoop方向走,也打算正式的学习一下。第一次在工作中听到hadoop还是在4年前,当时我们公司的一个技术大拿跟我说有时间可以考虑学习一下hadoop。当时所在的是属于为国企提供软件服务的小公司,其所需的技术含量和处理的数据量感觉完全跟所谓的“大数据”挂不上勾.后面从该公司来到深圳之后进入现在的公司,才正式的接触到亿级以上的数据量的处理。也正是从接触这种亿级以上的数据量的处理时才真正的对所谓的性能优化有所了解和学习。采用的是传统的IOE架构,在日常工作中经常因程序运行性能问题而需分析和优化oracle的执行计划、索引等问题。随着公司业务量增长和前端数据结构方式变更,数据量猛增,慢慢的oracle已经表现得非常吃力。平时的运维成本也逐步增加(最主要是调优)。因此打算引入Hadoop来解决其中一部分非常耗时和重要的分析型计算。  本文采用Redhat6.5 32位操作系统安装最新版本的hadoop 2.7.3.(这里一开始就隐藏了一个天坑,后续会介绍)
  1、安装Redhat6.5

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

    2、安装完只有需要配置自动挂载安装镜像文件,然后配置yum本地库指向挂载目录。具体步骤:http://jingyan.baidu.com/article/bad08e1e9900ec09c8512105.html (可解决后面程序需要安装的软件包,此步骤不是hadoop安装成功的必要条件,可以在需要安装的时候手动挂载)
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之旅了。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-306472-1-1.html 上篇帖子: 简单搭建hadoop运行环境 下篇帖子: hadoop keybores
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表