环境要求:
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两个值:
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命令可以看到两个进行运行在后台
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