mac下hive安装

参考:http://www.cnblogs.com/yjmyzz/p/4555507.html

1

》 brew install hive

二、环境变量/etc/profile

HBASE_HOME=/usr/local/Cellar/hbase/1.2.2
HADOOP_HOME=/usr/local/Cellar/hadoop/2.7.3
export HIVE_HOME=/usr/local/Cellar/hive/2.1.0
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export PATH=$PATH:$HBASE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin

三、修改hive中的xml配置(/usr/local/Cellar/hive/2.1.0)

cp hive-default.xml.template hive-default.xml

cp hive-default.xml.template hive-site.xml

cp hive-exec-log4j2.properties.template hive-exec-log4j.properties

cp hive-log4j2.properties.template hive-log4j.properties

cp beeline-log4j.properties.template beeline-log4j.properties

即:把几个带.template后缀的模板文件,复制一份变成不带.template的配置文件,注意hive-default.xml.template这个要复制二份,一个是hive-default.xml,另一个是hive-site.xml,其中hive-site.xml为用户自定义配置,hive-default.xml为全局配置,hive启动时,-site.xml自定义配置会覆盖-default.xml全局配置的相同配置项。

下面为hive-site.xml:






   
        hive.metastore.local
        true
   

   
        javax.jdo.option.ConnectionURL
        jdbc:mysql://127.0.0.1:3306/hive?characterEncoding=UTF-8
   

    
   
        javax.jdo.option.ConnectionDriverName
        com.mysql.jdbc.Driver
   

    
   
        javax.jdo.option.ConnectionUserName
        root
   

    
   
        javax.jdo.option.ConnectionPassword
        Nokia123
   

    
   
   
        hive.exec.scratchdir
        /tmp/hive
   

    
   
        hive.exec.local.scratchdir
        /Users/jimmy/hive/tmp
   



   
        hive.downloaded.resources.dir
        /Users/jimmy/hive/tmp/${hive.session.id}_resources
   



   
        hive.metastore.warehouse.dir
        /user/hive/warehouse    
   


另:上面的配置文件中,有一些关于目录的参数,先提前把目录建好,

hive.exec.local.scratchdir
hive.downloaded.resources.dir


五、测试及验证

把mysql-connector.jar考入 hive的libexec下的lib里面

先在myswql建立好库hive

mysql》create database hive ;alter database hive character set latin1;


》$HIVE_HOME/bin/hive

如果能正常进入 hive> 即表示正常,如果报错,先初始化 ./schematool -initSchema -dbType mysql

a) 创建表测试

hive>create table test(id int);

hive》drop table track_log;
create table track_log (
id                         string ,
url                        string ,
referer                    string ,
keyword                    string ,
type                       string ,
guid                       string ,
pageId                     string ,
moduleId                   string ,
linkId                     string ,
attachedInfo               string ,
sessionId                  string ,
trackerU                   string ,
trackerType                string ,
ip                         string ,
trackerSrc                 string ,
cookie                     string ,
orderCode                  string ,
trackTime                  string ,
endUserId                  string ,
firstLink                  string ,
sessionViewNo              string ,
productId                  string ,
curMerchantId              string ,
provinceId                 string ,
cityId                     string )  
PARTITIONED BY (ds string,hour string)  

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';


导入数据:

 jimmy$

 hive -e "LOAD DATA LOCAL INPATH '/Users/jimmy/Downloads/download/pv_UV/2015082818' OVERWRITE INTO TABLE track_log PARTITION (ds='20150828',hour='18');"


启动时可能出现问题:java.sql.SQLException: Column name pattern can not be NULL or empty.

解决方案:将 $HIVE_HOME/lib 下 的 mysql-connector-java-6.0.3.jar 替换成 mysql-connector-java-5.1.39.jar。
原因分析:mysql-connector-java 6.x 版本 和 5.1.x 版本不兼容 ,nullNamePatternMatchesAll 连接属性的默认值在 mysql-connector-java 5.1 和 6.0 之间发生了改变. 在 5.1 版本中默认值是 true, 而 6.0 版本中默认值是 false。(参考http://www.th7.cn/db/mysql/201608/201725.shtml)

你可能感兴趣的:(大数据)