一、上传hive 0.11解压后的文件到linux
1、用的版本是shark站点提供的,可能是针对shark修改了代码。
2、追加mysql、oracle两个jdbc驱动包到lib目录下。
二、配置相关文件
1、.bash_profile文件
export HIVE_HOME=/home/kituser/bigdata/hive-0.11.0-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export PATH=$PATH:$HIVE_HOME/bin
2、hive-site.xml
<property>
<name>hive.metastore.local</name>
<value>true</value>
<description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>
</property><property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://172.16.19.139:3306/hive_11_201402</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property><property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property><property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
三、配置mysql数据库
创建mysql数据库,字符集选择“latin1”,否则在使用hive过程中会报错。
四、较验hive
1、启动hive:
hive
nohup hive --service hiveserver
2、测试sql:
show tables;
create table shark_test01(id int, name string);
select * from shark_test01;
exit;
查看hive创建的文件:hadoop fs -ls -R /user/hive
五、错误及解决
错误3:
MetaException(message:file:/user/hive/warehouse/xxxx is not a directory or unable to create one)
解决:
CLASSPATH中加入HADOOP_CONF_DIR
错误2:
Error in metadata: MetaException(message:Got exception: org.apache.hadoop.hive.metastore.api.MetaException javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) : Specified key was too long; max key length is 767 bytes
解决:
只要修改MySQL中Hive元数据库MetaStore的字符集便可。
alter database dbname character set latin1;
错误1:
java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient。
解决:
在CLASSPATH中要有mysql的jdbc驱动。