zoukankan      html  css  js  c++  java
  • Hadoop安装

    简介

    随着云时代的到来,大数据(big data)也越来越受大家的关注,比如互联网行业日常生成的运营、用户行为数据,随着时间及访问量的增长这一规模日益庞大,单位可达日TB或PB级别。如何在如此庞大的数据中挖掘出对我们有用的信息?目前业界主流存储与分析平台是Hadoop为主的开源生态圈,MapReduce作为Hadoop的数据集的并行运算模型,除了提供Java编写MapReduce任务外,还兼容了Streaming方式,我们可以使用任意脚本语言来编写MapReduce任务,优点是开发简单且灵活。

    环境

    角色 主机名 IP 功能 存储分区
    Master  wx 192.168.1.22 NameNode|Secondarynamenode|JobTracker /data
    Slave test1 192.168.1.23 DataNode|TaskTracker /data
    Slave  test2 192.168.1.24 DataNode|TaskTracker  /data


             

       

    Hadoop部署

    无密钥登录

    部署Hadoop需要Master无密码访问所有Slave主机,需要配置ssh登录认证:

    192.168.1.22:

    ssh-keygen -t rsa #生成密钥对。一路回车,在/root/.ssh/目录下会生成id_rsa(私钥)、id_rsa.pub(公钥)密钥对
    
    ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.23 #将公钥发送的被控主机

    安装java

    ssh登录Master主机,安装JDK环境(本次安装的是java1.7,使用的是yum安装,也可以根据需要采用源码安装):

    yum install java-1.7.0* -y

    安装Hadoop

    wget http://apache.fayea.com/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
    tar -zxvf hadoop-2.6.4.tar.gz

    解压完成后修改配置文件:

    【hadoop-2.6.4/etc/hadoop/hadoop-env.sh】

    hadoop-env.sh:配置环境变量,指定JAVA_HOME

    #export JAVA_HOME=${JAVA_HOME}
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111.x86_64 #将上面的${JAVA_HOME}修改为本机的java路径

    【hadoop-2.6.4/etc/hadoop/core-site.xml】
    core-site.xml:Hadoopcore配置项,主要针对Common组件的属性配置。

    <configuration>
    <property>
      <name>hadoop.tmp.dir</name> #Hadoop用户的临时存储目录(可自定义路径),默认路径为:/tmp/hadoop-${user.name}
      <value>/data/tmp/hadoop-${user.name}</value>
    </property>
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://192.168.1.22:9000</value> #master主机IP:9000端口
    </property>
    </configuration>

    【hadoop-2.6.4/etc/hadoop/hdfs-site.xml】
    hdfs-site.xml:Hadoop的HDFS组件的配置项,包括Namenode、Secondarynamenode和Datanode

    <configuration>
    <property>
      <name>dfs.namenode.name.dir</name> #Namenode持久存储名字空间、事务日志路径
      <value>/data/hdfs/name</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name> #Datanode数据存储路径
      <value>/data/hdfs/data</value>
    </property>
    <property>
      <name>dfs.datanode.max.xcievers</name> #Datanode所允许同时执行的发送和接收任务数量,默认为256
      <value>4096</value>
    </property>
    <property>
      <name>dfs.replication</name> #数据备份的个数,默认为3
      <value>2</value>
    </property>
    <property>
      <name>dfs.namenode.secondary.http-address</name>  #配置Secondarynamenode地址
      <value>192.168.1.22:50090</value>
    </property>
    </configuration>

    【hadoop-2.6.4/etc/hadoop/mapred-site.xml】
    mapred-site.xml:配置map-reduce组件的属性,包括jobtracker和tasktracker。

    <configuration>
    <property>
      <name>mapreduce.framework.name</name>  #使用yarn框架(MapReduce框架)
      <value>yarn</value>
    </property>
    <property>
      <name>mapreduce.jobhistory.address</name>  #MapReduce JobHistory Server地址
      <value>192.168.1.22:10020</value>
    </property>
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>   #MapReduce JobHistory Server Web UI地址
      <value>192.168.1.22:19888</value>
    </property>
    </configuration>

    【hadoop-2.6.4/etc/hadoop/yarn-site.xml】

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    <property>
      <name>yarn.resourcemanager.hostname</name>   #ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等
      <value>192.168.1.22</value>
    </property>
    <property>
      <name>yarn.nodemanager.aux-services</name>   #NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序
      <value>mapreduce_shuffle</value>
    </property>
    </configuration>

    【hadoop-2.6.4/etc/hadoop/masters】 该配置文件Master端生效
    masers:配置Secondarynamenode项,起到HDFS文件系统元数据(metadata)信息的备份作用,当NameNode发生故障后可以快速还原数据。

    192.168.1.22 #本次Namenode和Secondnamenode在同一台服务器上,生产环境应该分别使用独立的服务器


    【hadoop-2.6.4/etc/hadoop/slaves】 
    slaves:配置所有Slave主机信息,填写IP地址即可。该配置文件放在Master端生效

    192.168.1.23
    192.168.1.24


    配置完成后,从Master端复制Hadoop环境到所有Slave端,目标路径要与Master保持一致。java环境也要保持一致。

    scp -r /usr/local/hadoop-2.6.4/ root@192.168.1.23:/usr/local/
    scp -r /usr/local/hadoop-2.6.4/ root@192.168.1.24:/usr/local/

    配置环境变量

    vim .bashrc
    
    #JAVA
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111.x86_64
    #Hadoop
    export HADOOP_HOME=/usr/local/hadoop-2.6.4
    export PATH=$PATH:/usr/local/hadoop-2.6.4/bin:/usr/local/hadoop-2.6.4/sbin

    在启动hadoop之前,我们需要做一步非常关键的步骤,需要在Master端格式化文件系统的namenode。(启动只在Master端做,Slave不用)

    hdfs namenode -format

    启动

    start-dfs.sh
    start-yarn.sh
    mr-jobhistory-daemon.sh start historyserver

    至此,安装成功。

    访问测试

    http://192.168.1.22:50070 HDFS存储管理地址
    http://192.168.1.22:8088 Map/Reduce管理地址

    问题解决 

    问题:

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

    解决:

    wget http://dl.bintray.com/sequenceiq/sequenceiq-bin/hadoop-native-64-2.6.0.tar

    解压到 hadoop-2.6.4/lib/native/


    参考资料:

    根据刘天斯《Python自动化运维技术与最佳实践》整理

    http://cloud.51cto.com/art/201311/419266.htm

    http://www.cnblogs.com/skyme/archive/2011/10/26/2223984.html

    http://www.powerxing.com/install-hadoop-cluster/

  • 相关阅读:
    2020毕业设计选用4412开发板,实战教程,小成果不放过
    学习嵌入式有决心4412再送免费教程
    iTOP4412开发板can测试工具使用文档
    iTOP4412Ubuntu系统源码ubuntu没有声音的解决办法
    修身养性,为人处事100条
    用X++实现有规律分割的长字符串,分别提取(如逗号隔开)
    自定义Dialog中对数组的取值
    Common实现任何Form定位查询转到当前Form种过滤符合条件的数据区域
    用X++得到当前用户是否有某Security Key的权限级别,完整Job演示
    获取table中的系统字段信息
  • 原文地址:https://www.cnblogs.com/MacoLee/p/5796152.html
Copyright © 2011-2022 走看看