• Hive安装与配置--- 基于MySQL元数据


          hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

    一、hive安装

    1、官网下载地址:http://hive.apache.org/downloads.html

    下载后解压到指定目录,例如 /usr/local/hive

    # tar -xvf apache-hive-2.0.0-bin.tar.gz  ;  mv apache-hive-2.0.0-bin /usr/local/hive

    2、配置环境变量

    # vim /etc/profile

    export  HIVE_HOME=/usr/local/hive/

    export  PATH=$HIVE_HOME/bin:$PATH 

    # source /etc/profile

    3、创建Hive在HDFS中所需的目录

    # cd /usr/local/hadoop/bin
    # ./hadoop fs -mkdir /tmp
    # ./hadoop fs -mkdir /user/hive/warehouse
    # ./hadoop fs -chmod g+w /tmp
    # ./hadoop fs -chmod g+w /user/hive/warehouse

     

    二、配置hive

    Hive配置文件介绍:

    hive-site.xml      hive的配置文件
    hive-env.sh        hive的运行环境文件
    hive-default.xml.template  默认模板
    hive-env.sh.template        hive-env.sh默认配置
    hive-exec-log4j.properties.template    exec默认配置
    hive-log4j.properties.template              log默认配置
     
    vim hive-env.sh
    HADOOP_HOME=/usr/local/hadoop
    export HIVE_CONF_DIR=/usr/local/hive/conf
    export HIVE_HOME=/usr/local/hive
    export HADOOP_HEAPSIZE=2048

    vim hive-site.xml    主要修改:连接字符串、驱动、用户名、密码等几处

    <?xml version="1.0"?>  
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
       
    <configuration>  
      
    <property>  
      <name>hive.metastore.warehouse.dir</name>  
      <value>/user/hive/warehouse</value>  
    </property>  
           
    <property>  
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://mysqlserver:3306/hive_data?createDatabaseIfNotExist=true</value>  
    </property>  
           
    <property>  
      <name>javax.jdo.option.ConnectionDriverName</name>  
      <value>com.mysql.jdbc.Driver</value>  
    </property>  
           
    <property>  
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>hive</value>    
    </property>  
           
    <property>  
      <name>javax.jdo.option.ConnectionPassword</name>  
      <value>a367Nx52ixeorqmx5OaZ</value>  
    </property>  
          
    <property>  
      <name>hive.metastore.local</name>  
      <value>false</value>  
    </property>  
          
    <property>  
      <name>hive.metastore.uris</name>  
      <value>thrift://dataMaster30:9083</value>  
    </property>
    
    <property>
      <name>hive.querylog.location</name>
      <value>/data/logs/hive/query</value>
    </property>  
          
    </configuration>

    hive日志默认放在/tmp/${user.name}目录下

    可以通过配置 hive-log4j2.properties 来进行log相关的设置

    property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}

     

    三、安装配置MySQL

    create database hive;
    grant all on hive.* to hive@'%'  identified by 'hive';  
    flush privileges;  
    下载mysql驱动,并将驱动复制到$HIVE_HOME/lib类库,下载地址: http://dev.mysql.com/downloads/connector/j/
    mysql-connector-java-5.1.31-bin.jar
     
     
    三、启动测试hive
    1、启动hadoop后,执行hive命令,如果不报错,表明基于独立元数据库的 Hive 已经安装成功了
    # hive
    hive> show databases;
    OK
    default
    Time taken: 0.907 seconds, Fetched: 1 row(s)
     
    2、在Hive中创建一张测试表test1
    hive> create table test1(name string, age int);
    hive> show tables;
    hive> desc test1
     
    3、登录mysql,访问hive数据库
    从 MySQL 数据库上查看元数据信息用到的 SQL 语句:
    use hive;                 //使用 hive 数据库库
    show tables;            //显示 hive 数据库中的数据表
    select * from TBLS;  //查看 hive 的元数据信息
    通过以上的步骤,我们完整的安装了一个Hive,并通过添加和删除一张数据库表的演示,来展示了Hive和Mysql元数据库之间的关系操作
    到此Hive集成Mysql作为元数据已完成。
     
    四、元数据mysql远程模式配置
    <property>
                    <name>hive.metastore.uris</name>
                    <value>thrift://192.168.223.129:9083</value> 
                    <description>运行hive的主机地址及端口(特别重要ip不要弄错)</description>
    </property>
     
    启动元数据服务:
    bin/hive --service metastore &    (默认监听端口是:9083
     
     
    启动hive报错时可以参照以下方法排除:
    配置 hive.metastore.uris 
            a.不启动metastore和hiveserver服务
              直接命令行hive进入hive shell环境,然后执行show databases  报错如下:
              ERROR ql.Driver: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate    org.apache.hadoop.hive.metastore.HiveMetaStoreClient

          b.第二种种情况
              1.配置 hive.metastore.uris 
              2.启动metastore服务  hive  --service metastore
              然后直接命令行hive进入hive shell环境,然后执行show databases    

             c:第三种情况
               1.注释配置项 hive.metastore.uris 
               2.不启动metastore服务
               然后直接命令行hive进入hive shell环境,然后执行show databases
        
     
     
    参考资料:http://blog.csdn.net/blueheart20/article/details/38460541
     
     
  • 相关阅读:
    【BZOJ 1069】【SCOI 2007】最大土地面积 凸包+旋转卡壳
    【POJ 2187】Beauty Contest 凸包+旋转卡壳
    1056: [HAOI2008]排名系统
    1874: [BeiJing2009 WinterCamp]取石子游戏
    1055: [HAOI2008]玩具取名
    2338: [HNOI2011]数矩形
    1060: [ZJOI2007]时态同步
    1054: [HAOI2008]移动玩具
    1053: [HAOI2007]反素数ant
    1052: [HAOI2007]覆盖问题
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/5542644.html
Copyright © 2020-2023  润新知