Hive的安装和配置

在hadoop帐户下
一、下载hive-0.8.1.tar.gz
wget mirrors.cnnic.cn/apache/hive/stable/hive-0.11.0.tar.gz
 
二、解压到/opt/modules目录下
tar -zxvf hive-0.11.0.tar.gz
cd hive-0.11.0
 
三、配置Hive的环境变量(该步在root帐户下)
vi /etc/profile.d/java.sh
export HIVE_HOME=/opt/modules/hive-0.11.0
export PATH=$HIVE_HOME/bin:$PATH
手动立即生效
source /etc/profile
 
四、拷贝hive的配置模板文件
cd conf/
cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
 
五、修改hive-env.sh文件
指定HADOOP_HOME及HIVE_CONF_DIR的路径如下:
HADOOP_HOME=/opt/modules/hadoop/hadoop-1.0.3
export HIVE_CONF_DIR=/opt/modules/hive-0.11.0/conf
 
六、修改hive-site.xml文件
指定mysql数据库驱动、数据库名、用户名和密码,修改的内容如下所示:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=latin1</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>654321</value>
<description>password to use against metastore database</description>
</property>
 
七、拷贝mysql的驱动mysql-connector-java-5.1.18.jar到hive-0.11.0/lib目录下
 
八、在HDFS中创建/tmp和/user/hive/warehouse并设置权限
./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是否安装成功,如下所示
[root@hadoop1 bin]# hive
WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.
Logging initialized using configuration in jar:file:/work/hive/hive-0.8.1/lib/hive-common-0.8.1.jar!/hive-log4j.properties
Hive history file=/tmp/root/hive_job_log_root_201302171656_1326720941.txt
hive> create table user(id int,name string);
OK
Time taken: 3.242 seconds
hive> select * from user;
OK
Time taken: 0.275 seconds
hive> exit;
[root@hadoop1 bin]#
 
 
十、报错
FAILED: Error in metadata: javax.jdo.JDODataStoreException: An exception was thrown while adding/validating class(es) : Specified key was too long; max key length is 767 bytes
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
修改方法(mysql中):
alter database hive character set latin1;
原文地址:https://www.cnblogs.com/jingyunyb/p/3401300.html