环境要求:


mysql

hadoop


hive版本为:apache-hive-1.2.1-bin.tar


1.设置hive用户


进入mysql命令行,创建hive用户并赋予所有权限:

mysql -uroot -proot

mysql>create user 'hive' identified by 'hive';

mysql>grant all on *.* TO 'hive'@'%' with grant option;

mysql>flush privileges;

 


2.创建hive数据库


使用hive用户登录,创建hive数据库:

mysql -uhive -phive

mysql>create database hive;

mysql>show databases;

 

3.安装Hive

下载hive安装文件

可以到Apache基金hive官网http://hive.apache.org/downloads.html,选择镜像下载地址:http://mirrors.cnnic.cn/apache/hive/下载一个稳定版本,

 


把mysql驱动放到hive的lib目录下

把下载的hive安装包和mysql驱动包,使用

cd /home/hadoop/Downloads

cp mysql-connector-java-5.1.34-bin.jar /usr/local/hive-0.12.0/lib

 


4.配置/etc/profile环境变量


使用如下命令打开/etc/profile文件:

sudo vi /etc/profile

 


#set hive path

export  HIVE_HOME=/usr/local/hive
export  PATH=$PATH:$HIVE_HOME/bin
export  CLASSPATH=$CLASSPATH:$HIVE_HOME/bin


使配置文件生效:

source /etc/profile

 



5.设置hive-env.sh配置文件


进入hive-0.12.0/conf目录,复制hive-env.sh.templaete为hive-env.sh:

cd /usr/local/hive-0.12.0/conf

cp hive-env.sh.template hive-env.sh

ls

vi hive-env.sh

 

分别设置HADOOP_HOME和HIVE_CONF_DIR两个值:

 

wKiom1caOZrS03NfAAEMH90xjB4785.jpg




6.设置hive-site.xml配置文件

复制hive-default.xml.templaete为hive-site.xml

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

sudo vi hive-site.xml


 

(1)加入配置项

默认metastore在本地,添加配置改为非本地  可以忽略此步

<property>
  <name>hive.metastore.local</name>
  <value>false</value>
</property>

 

(2) 修改配置项

hive默认为derby数据库,需要把相关信息调整为mysql数据库

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://hadoop1:9083</value>
  <description>Thrift URI for the remote metastore. ...</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://hadoop1:3306/hive?=createDatabaseIfNotExist=true</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>hive</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hive</value>
  <description>password to use against metastore database</description>
</property>

 

 

(3) 订正错误项

在配置文件2000行左右配置项hive.server2.thrift.sasl.qop原来为<value>auth</auth>,按照如下进行修改:

<property>
  <name>hive.server2.thrift.sasl.qop</name>
  <value>auth</value>
  <des.....
</property>

 

并把hive.metastore.schema.verification配置项值修改为false

<property>
  <name>hive.metastore.schema.verification</name>
  <value>false</value>
   <desc....>
</property>

 




7.验证部署

启动metastore和hiveserver

在使用hive之前需要启动metastore和hiveserver服务,通过如下命令启用:



把MySQL的JDBC驱动包复制到Hive的lib目录下。

JDBC驱动包的版本:mysql-connector-java-5.1.18-bin.jar




以下也可以忽略

hive --service metastore &

hive --service hiveserver &

 

启动用通过jps命令可以看到两个进行运行在后台

 

wKioL1caOw_RahCCAAB-PSoPxk4535.jpg






8.在hive中操作

登录hive,在hive创建表并查看该表,命令如下:

hive

hive>create table test(a string, b int);

hive>show tables;

hive>desc test;




不能正常启动,处理方式为:


http://blog.csdn.net/olfisher/article/details/48730229


Terminal initialization failed; falling back to unsupported

原因是hadoop目录下存在老版本jline:

/hadoop-2.5.2/share/hadoop/yarn/lib:
-rw-r--r-- 1 root root   87325 Mar 10 18:10 jline-0.9.94.jar
 
解决方法是:

将hive下的新版本jline的JAR包拷贝到hadoop下:
cp /hive/apache-hive-1.1.0-bin/lib/jline-2.12.jar ./
 
/hadoop-2.5.2/share/hadoop/yarn/lib:
-rw-r--r-- 1 root root   87325 Mar 10 18:10 jline-0.9.94.jar.bak-rw-r--r-- 1 root root  213854 Mar 11 22:22 jline-2.12.jar