zoukankan      html  css  js  c++  java
  • Hive0.11安装配置学习笔记

     转:http://springsfeng.iteye.com/blog/1734517

    1 . 首先请安装好MySQL并修改root账户密码,使用root账户执行下面命令:

          su - root

          mysql

          GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'root' WITH GRANT OPTION; 

    2.  创建Hive用户: 使用root账户执行下面命令:

          su - root

          mysql -uroot -p

          CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive'; 

          CREATE USER 'hive'@'linux-fdc.linux.com' IDENTIFIED BY 'hive'; 

          CREATE USER 'hive'@'192.168.81.251' IDENTIFIED BY 'hive'; 

          CREATE DATABASE metastore;
          CREATE DATABASE metastore DEFAULT CHARACTER SET latin1 DEFAULT COLLATE latin1_swedish_ci; 

          
          GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'localhost' IDENTIFIED BY 'hive' WITH GRANT OPTION; 

          GRANT ALL PRIVILEGES ON metastore.* TO 'hive'@'192.168.81.251' IDENTIFIED BY 'hive' WITH GRANT OPTION;  
          flush privileges;

    3.  导入MySQL 脚本

         使用hive账户登录:

         mysql -uhive -p -h192.168.81.251

         mysql> use metastore;
         Database changed
         mysql> source /opt/custom/hive-0.11.0/scripts/metastore/upgrade/mysql/hive-schema-0.10.0.mysql.sql

    4.  Hive安装配置

         (1) 编译:针对当前Hive-0.11.0-SNAPSHOT版本

         下载最新的Hive源码包:hive-trunk.zip, 解压至:/home/kevin/Downloads/hive-trunk,修改:

         build.properties, 中: 

    Java代码  收藏代码
    1. ...  
    2. hadoop-0.20.version=0.20.2  
    3. hadoop-0.20S.version=1.1.2  
    4. hadoop-0.23.version=2.0.3-alpha  
    5. ...  

        若需修改其他依赖包的版本,请修改:ivy目录下的libraries.properties文件, 例如修改hbase

        的版本:

        ...

        guava-hadoop23.version=11.0.2
        hbase.version=0.94.6
        jackson.version=1.8.8

        ...

        在当前目录下执行:

         ant tar -Dforrest.home=/usr/custom/apache-forrest-0.9

         其中,forrest.home参考:http://springsfeng.iteye.com/admin/blogs/1734557中的第一部分,

         第3小节。

         (2)  解压:从编译后的build下Copy hive-0.11.0-SNAPSHOT.tar.gz至:/usr/custom/并解压。

         (3)  配置环境变量:

         exprot HIVE_HOME=/usr/custom/hive-0.11.0 
         exprot PATH=$HIVE_HOME/bin:$PATH

         (4) 配置文件:

         复制conf目录下的.template生成对应的.xml或.properties文件:
         cp hive-default.xml.template hive-site.xml 
         cp hive-log4j.properties.template hive-log4j.properties

         (5) 配置hive-config.sh:       

    Xml代码  收藏代码
    1. ...  
    2. #  
    3. # processes --config option from command line  
    4. #  
    5.   
    6. export JAVA_HOME=/usr/custom/jdk1.6.0_43  
    7. export HIVE_HOME=/usr/custom/hive-0.11.0  
    8. export HADOOP_HOME=/usr/custom/hadoop-2.0.3-alpha  
    9.   
    10.   
    11. this="$0"  
    12. while [ -h "$this" ]; do  
    13.   ls=`ls -ld "$this"`  
    14.   link=`expr "$ls" : '.*-> (.*)$'`  
    15.   if expr "$link" : '.*/.*' > /dev/null; then  
    16.     this="$link"  
    17.   else  
    18.     this=`dirname "$this"`/"$link"  
    19.   fi  
    20. done  
    21. ...  

        (6) 配置日志hive-log4j.properties:针对0.10.0版本的特别处理。

         将org.apache.hadoop.metrics.jvm.EventCounter改成:org.apache.hadoop.log.metrics

         .EventCounter , 这样将解决异常:

         WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated.  
         Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.

         (7) 创建hive-site文件:

    Xml代码  收藏代码
    1. <configuration>  
    2.   
    3.     <!-- WARNING!!! This file is provided for documentation purposes ONLY! -->  
    4.     <!-- WARNING!!! Any changes you make to this file will be ignored by Hive. -->  
    5.     <!-- WARNING!!! You must make your changes in hive-site.xml instead. -->  
    6.   
    7.     <!-- Hive Execution Parameters -->  
    8.     <property>  
    9.         <name>javax.jdo.option.ConnectionURL</name>  
    10.         <value>jdbc:mysql://localhost:3306/metastore_db?createDatabaseIfNotExist=true</value>  
    11.         <description>  
    12.             JDBC connect string for a JDBC metastore.  
    13.             请注意上面value标签之间的部分前后之间不能有空格,否则HiveClient提示:  
    14.             FAILED: Error in metadata: java.lang.RuntimeException: Unable   
    15.             to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient  
    16.         </description>  
    17.     </property>  
    18.       
    19.     <property>  
    20.         <name>javax.jdo.option.ConnectionDriverName</name>  
    21.         <value>com.mysql.jdbc.Driver</value>  
    22.         <description>Driver class name for a JDBC metastore</description>  
    23.     </property>  
    24.   
    25.     <property>  
    26.         <name>javax.jdo.option.ConnectionUserName</name>  
    27.         <value>hive</value>  
    28.         <description>username to use against metastore database</description>  
    29.     </property>  
    30.   
    31.     <property>  
    32.         <name>javax.jdo.option.ConnectionPassword</name>  
    33.         <value>hive</value>  
    34.         <description>password to use against metastore database</description>  
    35.     </property>  
    36.   
    37.     <property>  
    38.         <name>hive.metastore.uris</name>  
    39.         <value>thrift://linux-fdc.linux.com:8888</value>  
    40.         <description>  
    41.             Thrift uri for the remote metastore. Used by metastore  
    42.             client to connect to remote metastore.  
    43.         </description>  
    44.     </property>  
    45.   
    46. </configuration>  

        (8) 配置MySQL-Connector-Java

        下载mysql-connector-java-5.1.22-bin.jar放在/usr/custom/hive-0.11.0/lib目录下,否则执行

        show tables; 命令时提示找不到ConnectionDriverName。

    5. 启动使用

        (1) 启动
        进入bin目录下,执行命令:hive 
       (2) 查看当前库及表 
       show databases;   //默认为:default 
       show tables; 
       (3) 创建表示例

       这部分为我自己的测试, 测试数据见附件。

       
       CREATE TABLE cite (citing INT, cited INT) 
       ROW FORMAT DELIMITED 
       FIELDS TERMINATED BY ',' 
       STORED AS TEXTFILE; 
        
       CREATE TABLE cite_count (cited INT, count INT); 
        
       INSERT OVERWRITE TABLE cite_count 
       SELECT cited,COUNT(citing) 
       FROM cite 
       GROUP BY cited; 
        
       SELECT * FROM cite_count WHERE count > 10 LIMIT 10; 
        
       CREATE TABLE age (name STRING, birthday INT) 
       ROW FORMAT DELIMITED 
       FIELDS TERMINATED BY ' ' 
       LINES TERMINATED BY ' ' 
       STORED AS TEXTFILE; 
        
       CREATE TABLE age_out (birthday INT, birthday_count INT) 
       ROW FORMAT DELIMITED 
       FIELDS TERMINATED BY ' ' 
       LINES TERMINATED BY ' ' 
       STORED AS TEXTFILE; 
       (4) 查看表结构
       desribe cite; 
       (5) 加载数据
       hive> LOAD DATA LOCAL INPATH '/home/kevin/Documents/age.txt' OVERWRITE INTO TABLE age;

  • 相关阅读:
    [BZOJ3413]匹配
    [BZOJ3879]SvT
    [BZOJ1339] [Baltic2008] Mafia / 黑手党
    [BZOJ1834] [ZJOI2010] network 网络扩容
    [BZOJ1449] [JSOI2009]球队收益 / [BZOJ2895] 球队预算
    [BZOJ2597] [WC2007]剪刀石头布
    [BZOJ1283]序列
    [BZOJ2127]happiness
    Java公开课-04.异常
    Java公开课-03.内部类
  • 原文地址:https://www.cnblogs.com/tangtianfly/p/3401914.html
Copyright © 2011-2022 走看看