Hive部署
1.下载安装包.tar.gz
http://www.apache.org/dyn/closer.cgi/hive/
2.上传到hadoop集群上的一台机器,并解压
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /root/apps/install/
cd /root/apps/install/
mv apache-hive-1.2.1-bin hive
3.配置环境变量(/etc/profile)
export HIVE_HOME=/root/apps/install/hive
export PATH=${HIVE_HOME}/bin:$PATH
4.配置文件
cd /root/apps/install/hive/conf
vim hive-site.xml
#写入mysql配置(将hive创建的库,表等元数据信息存在mysql里)
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</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>
</configuration>
5.安装mysql并创建hive数据库(保存元数据)
#安装
yum install mysql-server
yum install mysql
service mysqld start
#第一次登录不用输root密码
mysql -u root -p
#改root密码
UPDATE user SET password=password("你的密码") WHERE user='root';
#更新
FLUSH PRIVILEGES;
#创建数据库
create database hive;
#root角色可以在所有远程电脑登录并拥有所有库中的所有表的权限
grant all privileges on *.* to root@"%" identified by "root" with grant option;
6.启动
已经配置过环境变量了(bin/hive),直接输入:hive
7.报错解决
报错一:
Terminal initialization failed; falling back to unsupported
解决:
用hive/lib/下的jline(jar包)替换hadoop中的jline(jar包)。(/root/apps/hadoop/share/hadoop/yarn/lib/jline.jar)
报错二:
#用hive创建,删除表等出现
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.MetaException
(message:For direct MetaStore DB connections, we don't support retries at the client level.)
解决:
#修改mysql的字符集
alter database hive character set latin1;
8.Hive thrift服务启动
#启动为前台:
bin/hiveserver2
#启动成功后,可以在别的节点上用beeline去连接(我在本机上连接hiveserver)
hive/bin/beeline
!connect jdbc:hive2://localhost:10000
#输入用户名,回车(就是你连接服务时当前的linux用户名)
#密码留空直接回车
作者:py小杰
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。