zoukankan      html  css  js  c++  java
  • Hadoop 2.6.0-cdh5.4.0集群环境搭建和Apache-Hive、Sqoop的安装

    搭建此环境主要用来hadoop的学习,因此我们的操作直接在root用户下,不涉及HA。

    Software:

     Hadoop 2.6.0-cdh5.4.0
     Apache-hive-2.1.0-bin  
     Sqoop-1.4.6-cdh5.5.2  
     JDK1.7.0_79   
    

    集群信息:

    一个主节点,2个从节点。

    192.168.75.128 master 
    192.168.75.129 slave01
    192.168.75.130 slave02
    

    搭建步骤:

    搭建步骤不详细化,主要把相关的hadoop的配置和关键操作写出来。

    修改主机名

    vim /etc/sysconfig/network(永久修改)

    修改主机名IP映射

    vim /etc/hosts

    这里要注意IP在前面,主机名在后面,由于我颠倒位置,导致了主机名和IP无法进行映射。

    SSH免密码登陆

    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

    将每个节点的ssh秘钥互相拷贝到各自的authorized_keys,实现各个节点的免密码登陆。

    安装JDK

    安装Hadoop

    这里主要是hadoop的配置文件的修改。

    core-site.xml:

    <configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
        <description>NameNode URI</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/tmp</value>
    </property>
    <property>
          <name>hadoop.proxyuser.root.groups</name>
          <value>*</value>
          <description>Allow the superuser oozie to impersonate any members of the group group1 and group2</description>
        </property>
    <property>
          <name>hadoop.proxyuser.root.hosts</name>
          <value>*</value>
          <description>The superuser can connect only from host1 and host2 to impersonate a user</description>
    </property>
    </configuration>

    hadoop-env.sh:

    主要配置下java的安装路径

    # The java implementation to use.
    export JAVA_HOME=/data/jdk1.7.0_79

    hdfs-site.xml:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:///data/hadoop/hadoopdata/hdfs/namenode</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:///data/hadoop/hadoopdata/hdfs/datanode</value>
        </property>
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>master:50090</value>
        </property>
        <property>
         <name>dfs.permissions</name>
         <value>false</value>
       </property>
    </configuration>

    mapred-env.sh:

    export JAVA_HOME=/data/jdk1.7.0_79

    mapred-site.xml:

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
            <description>Execution framework set to Hadoop YARN.</description>
        </property>
    </configuration>

    slaves:

    配置从节点都是哪些。

    slave01
    slave02

    yarn-env.sh:

    主要也是对java的安装路径进行修改。

    # some Java parameters
    export JAVA_HOME=/data/jdk1.7.0_79

    yarn-site.xml:

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
            <description>Shuffle service that needs to be set for Map Reduce applications.</description>
        </property>
    </configuration>

    配置完成之后,我们需要做的事情是:

    • 配置hadoop和jdk的环境变量在/etc/profile文件里
    • 将jdk、hadoop和/etc/profile配置文件通过scp命令分发到各个节点上,命令格式如下:
    scp -r hadoop/   root@slave01:/data

    通过source /etc/profile 使环境变量立即生效!

    由于hadoop的节点之间需要通信(RPC机制),这样一来就需要监听对应的端口,这里我就直接将防火墙关闭了,命令如下:

    chkconfig  iptables off

    格式化namenode:

    首次启动需要格式化节点:

    hadoop namenode –format

    启动hadoop:

    ./start-all.sh

    hadoop安装成功后,我们可以通过访问:http://master:8088/clusterhttp://master:50070/dfshealth.html#tab-overview查看到下面的关于hadoop的信息。

    这里写图片描述
    从上图我们可以看到集群的总内存大小、CPU的总核数、以及活着的总节点数。

    datanode的信息:

    In Service表示datanode节点正在服务中。

    两个datanode信息

    Hadoop集群安装完毕!

    安装Hive

    hive只需要在主节点安装一个就好了。它主要是将SQL解析为MR任务。
    将hive安装包解压之后,主要对配置文件做下修改。

    hive-env.sh:

    # Set HADOOP_HOME to point to a specific hadoop install directory
    HADOOP_HOME=/data/hadoop/
    
    # Hive Configuration Directory can be controlled by:
    export HIVE_CONF_DIR=/data/apache-hive-2.1.0-bin/conf
    #Folder containing extra ibraries required for hive #compilation/execution can be controlled by:
    export HIVE_AUX_JARS_PATH=/data/apache-hive-2.1.0-bin/lib

    hive-site.xml:

    主要对存储hive元数据信息的库-mysql的连接信息做配置。

    <configuration>
    <property>  
      <name>javax.jdo.option.ConnectionURL</name>  
      <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8</value>  
      <description>JDBC connect string for a JDBC metastore</description>  
    </property>  
    <property>  
      <name>javax.jdo.option.ConnectionDriverName</name>  
      <value>com.mysql.jdbc.Driver</value>  
      <description>Driver class name for a JDBC metastore</description>  
    </property>  
    <property>  
      <name>javax.jdo.option.ConnectionUserName</name>  
      <value>root</value>
      <description>username to use against metastore database</description>  
    </property>  
    <property>  
      <name>javax.jdo.option.ConnectionPassword</name>  
      <value>123456</value>  
      <description>password to use against metastore database</description>  
    </property>
     <property> 
          <name>hive.server2.thrift.port</name> 
          <value>10000</value> 
     </property>
     <property>
           <name>hive.server2.thrift.bind.host</name>
           <value>hive安装节点的IP</value>
     </property>
        <property>
            <name>datanucleus.readOnlyDatastore</name>
            <value>false</value>
        </property>
        <property> 
            <name>datanucleus.fixedDatastore</name>
            <value>false</value> 
        </property>
        <property> 
            <name>datanucleus.autoCreateSchema</name> 
            <value>true</value> 
        </property>
        <property>
            <name>datanucleus.autoCreateTables</name>
            <value>true</value>
        </property>
        <property>
            <name>datanucleus.autoCreateColumns</name>
            <value>true</value>
        </property>
      <property>
        <name>hive.exec.dynamic.partition.mode</name>
        <value>nonstrict</value>
       </property>
    </configuration>
    

    记得将mysql驱动包扔到hive的lib里。

    因为hive的元数据是存在mysql里,所以需要事先安装mysql环境。

    安装的时候,主要这几个命令会经常用到:

    #连接mysql数据库
    #设置密码
    
    use mysql;
    update user set password=password('密码') where user='root';
    flush privileges;
    
    #设置Mysql远程访问
    grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;

    最后配置下hive的环境变量:

    export HIVE_HOME=/data/apache-hive-2.1.0-bin/
    export PATH=${HIVE_HOME}/bin:$PATH

    安装Sqoop

    Sqoop主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

    安装

    将sqoop安装包解压

    sqoop配置文件修改:

    #Set path to where bin/hadoop is available
    export HADOOP_COMMON_HOME=/data/hadoop/
    
    #Set path to where hadoop-*-core.jar is available
    export HADOOP_MAPRED_HOME=/data/hadoop/
    
    #set the path to where bin/hbase is available
    #export HBASE_HOME=/home/hadoop/software/hbase
    
    #Set the path to where bin/hive is available
    export HIVE_HOME=/data/apache-hive-2.1.0-bin/
    
    #Set the path for where zookeper config dir is
    #export ZOOCFGDIR=/home/hadoop/software/zookeeper
    

    配置Sqoop的环境变量:

    export SQOOP_HOME=/data/sqoop/
    export PATH=${SQOOP_HOME}/bin:$PATH

    sqoop导数据命令:

    sqoop import -m 1 --connect jdbc:mysql://master:3306/test --username root --password 123456    --table test  --target-dir  /data/test

    sqoop导数据成功的信息:

    这里写图片描述

    至此,hadoop集群、Hive和Sqoop的安装就完成了!

  • 相关阅读:
    分布式存储之GlusterFS
    应用中间件服务-weblogic
    生产环境tomcat升级新版本(tomcat漏洞修复)
    代码版本管理工具-gitlab
    链路追踪-skywalking
    去年前端校招面试的一些经验(阿里美团爱奇艺)
    mantis提交问题时报APPLICATION ERROR #27异常
    mantis无法上传附件,core/file_api.php: 1023异常
    centos7.2下安装mantis2.19.0
    linux常用命令
  • 原文地址:https://www.cnblogs.com/bigdata1024/p/8387428.html
Copyright © 2011-2022 走看看