hive-1.2.1安装步骤
一.Hive安装和配置
1.先决条件
已经安装好hadoop-2.4.1,hbase-1.0.0。
2.下载Hive安装包
当前Hive可到apache官网下载,选择的是hive-1.2.1。运行:
wget http://www-us.apache.org/dist/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz 然后将其解压到Hadoop所在的目录:/opt下。
解压:tar -zvxf apache-hive-1.2.1-bin.tar.gz /opt
重命名下:mv /opt/apache-hive-1.2.1-bin /opt/hive-1.2.1
3.配置系统环境变量/etc/profile
export HIVE_HOME=/opt/hive-1.2.1
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf
source /etc/profile 使刚刚的配置生效
4.配置Hive
hive的配置文件放在$HIVE_HOME/conf下,里面有4个默认的配置文件模板
hive-default.xml.template
默认模板
hive-env.sh.template
hive-env.sh默认配置
hive-exec-log4j.properties.template exec默认配置
hive-log4j.properties.template
log默认配置
可不做任何修改hive也能运行,默认的配置元数据是存放在Derby数据库里面的,大多数人都不怎么熟悉,我们得改用mysql来存储我们的元数据,以及修改数据存放位置和日志存放位置等使得我们必须配置自己的环境,下面介绍如何配置。
(1)创建配置文件,直接copy默认配置文件再修改即可,用户自定义配置会覆盖默认配置
cp
$HIVE_HOME/conf/hive-default.xml.template $HIVE_HOME/conf/hive-site.xml
cp $HIVE_HOME/conf/hive-env.sh.template
$HIVE_HOME/conf/hive-env.sh
cp
$HIVE_HOME/conf/hive-exec-log4j.properties.template
$HIVE_HOME/conf/hive-exec-log4j.properties
cp
$HIVE_HOME/conf/hive-log4j.properties.template
$HIVE_HOME/conf/hive-log4j.properties
(2)修改 hive-env.sh
vi
$HIVE_HOME/conf/hive-env.sh
export HADOOP_HOME=/opt/hadoop-2.4.1
export HIVE_CONF_DIR=/opt/hive-1.2.1/conf
(3)修改 hive-log4j.properties
mkdir $HIVE_HOME/logs
vi
$HIVE_HOME/conf/hive-log4j.properties
hive.log.dir=/opt/hive-1.2.1/logs
(4)修改 hive-site.xml
vi
$HIVE_HOME/conf/hive-site.xml
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/hive-1.2.1/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/opt/hive-1.2.1/scratchdir</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/opt/hive-1.2.1/logs</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value> jdbc:mysql://localhost:3306/hivedb?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>*****(根据自己的用户名填)</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>*****(根据自己的密码填)</value>
</property>
<property>
<name>hive.aux.jars.path</name>
<value>file:///opt/hive-1.2.1/lib/hive-hbase-handler-1.2.1.jar,file:///opt/hive-1.2.1/lib/hbase-client-1.0.0.jar,file:///opt/hive-1.2.1/lib/hbase-common-1.0.0.jar,file:///opt/hive-1.2.1/lib/hbase-common-1.0.0-tests.jar,file:///opt/hive-1.2.1/lib/hbase-protocol-1.0.0.jar,file:///opt/hive-1.2.1/lib/hbase-server-1.0.0.jar,file:///opt/hive-1.2.1/lib/htrace-core-3.1.0-incubating.jar,file:///opt/hive-1.2.1/lib/zookeeper-3.4.6.jar,file:///opt/hive-1.2.1/lib/protobuf-java-2.5.0.jar,file:///opt/hive-1.2.1/lib/guava-12.0.1.jar</value>
</property>
</configuration>
下面解释下一些重要的配置项:
hive.metastore.warehouse.dir:指定hive的数据存储目录,指定的是HDFS上的位置,默认值:/user/hive/warehouse,为了便于管理,hive-1.2.1文件下创建文件warehouse。
hive.exec.scratchdir:指定hive的临时数据目录,默认位置为:/tmp/hive-${user.name}。为了便于管理,hive-1.2.1文件下创建文件scratchdir。
javax.jdo.option.ConnectionURL:指定hive连接的数据库的数据库连接字符串
javax.jdo.option.ConnectionDriverName:指定驱动的类入口名称
hive.aux.jars.path:是与hbase整合的时候需要用到的jar包,必须加上
5.复制hbase库到hive下面
cp $HBASE_HOME/lib/hbase-*
$HIVE_HOME/lib/
cp
$HBASE_HOME/lib/htrace-core-3.1.0-incubating.jar $HIVE_HOME/lib/
cp
$HBASE_HOME/lib/zookeeper-3.4.6.jar $HIVE_HOME/lib/
提示已有文件,是否覆盖,选y。
cp
$HBASE_HOME/lib/protobuf-java-2.5.0.jar $HIVE_HOME/lib/
cp $HBASE_HOME/lib/guava-12.0.1.jar $HIVE_HOME/lib/
并删除了,原HIVE_HOME/lib/下的guava-14.0.1.jar。
6.上传jdbc jar包
默认hive使用Derby数据库存放元数据,并且也集成了Derby数据库及连接驱动jar包,但此处我们换成了MySQL作为数据库,所以还必须得有MySQL的JDBC驱动包。
由于之前系统已经有jdbc jar包,且在cd /usr/share/java目录下,直接将驱动包复制到$HIVE_HOME/lib下:cp mysql-connector-java-5.1.17.jar $HIVE_HOME/lib
7.安装并配置MySQL
由于已经安装好mysql,故可以直接使用。
启动hive在进行检测的时候 ,系统提示:

经查阅资料,发现hive-1.2.1与hbase-1.0.0有版本不兼容的问题,需要重新编译hive-hbase-handle-1.2.1.jar。
8.编译hive-hbase-handle-1.2.1.jar
(1)下载hive-1.2.1源码
在虚拟机中,用wget命令在http://www-eu.apache.org/dist/hive/中下载apache-hive-1.2.1-src.tar.gz,下载好后,把下载好的文件复制到Windows系统中。
(2)在Windows系统中,用eclipse建立编译工程,名称随便,普通Java project,这里以hivehbase为名。

(3)将hive源码中的hbase-hadler部分导入到编译项目中
选择src右击import-->General-->FileSytem,下一步

找到下载解压的hive源码目录,找到hbase-hadler目录,在scr中选择java目录,确认后保证包名以org开头

(4)然后开始给eclipse项目下,创建一个Referenced Libraries目录,加入相关的jar包,确保顺利通过编译,根据hive的版本,导入的jar包也会有所差异,直到项目没有小红叉。
需要引入的jar包,如下图所示,这些包在虚拟机中的/opt/hive-1.2.1/lib和/opt/hbase-1.0.0目录下都有,直接复制拷贝过来即可,注意的是,jar的版本号会根据你所使用的hadoop、hbase、hive版本号,有所变化。
具体需要引入的jar包如下图:

(5)编译打包
选择项目src目录,右击Export-->Java-->JAR file-->Next,选择项目下的src,并设置导出路径,名称可以直接写作hive-hbase-handler-1.2.1.jar其他默认,Finish后即可。

然后把导出的hive-hbase-handler-1.2.1.jar 包放入hive-1.2.1安装路径的lib下,覆盖原来的包。此时,hive-1.2.1安装成功。
二.验证hive和hbase的整合
(1)开始时:
hive为空

hbase为空

(2)执行

(3)对比发生变化
hbase显示新建表xyz

hive显示新建表hbase_table_1

(4)通过hbase添加数据
在hbase中插入一条记录

分别查看hbase和hive表发生的变化:
- hbase变化

2.hive变化

三.Hive网络接口(Web
UI)
1.查看hive-site.xml中有关hwi的内容,默认是

将hive.hwi.war.file的值修改为/lib/hive-hwi-1.2.1.war
2.下载hive-1.2.1源码包
wget http://www-us.apache.org/dist/hive/hive-1.2.1/ apache-hive-1.2.1-src.tar.gz
tar -zxvf apache-hive-1.2.1-src.tar.gz
cd apache-hive-1.2.1-src
cd hwi/web
zip hive-hwi-1.2.1.zip ./*
再更改后缀名为war,复制到HIVE_HOME/lib/
mv hive-hwi-1.2.1.zip hive-hwi-1.2.1.war
mv hive-hwi-1.2.1.war $HIVE_HOME/lib
3.拷贝tools包
cp /usr/java/jdk1.7.0_51/lib/tools.jar /opt/hive-1.2.1/lib
如果不进行此步骤,将无法启动界面。
配置完成后,开启服务:

并且可以查看到HIVE的网页界面:

四.Hive的jdbc接口
vi
$HIVE_HOME/conf/hive-site.xml

将上标签修改为:
<property>
<name>hive.server2.thrift.bind.host</name>
<value>172.16.0.147</value>
<description>Bind
host on which to run the HiveServer2 Thrift interface.
Can be overridden by
setting $HIVE_SERVER2_THRIFT_BIND_HOST</description>
</property>
测试hiveserver2,出现:

修改hadoop 配置文件/opt/hadoop-2.4.1/etc/hadoop里的core-site.xml,加入
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
重启hadoop
将hadoop退出安全模式:
hadoop dfsadmin
-safemode leave
重新启动:

启动成功!
遇到的问题一:

解决方案:删除/opt/hive-2.0.0/lib/log4j-slf4j-impl-2.4.1.jar
遇到的问题二:

解决方案:删除/opt/hive-2.0.0/lib/hive-jdbc-2.0.0-standalone.jar
遇到的问题三:

查阅http://blog.csdn.net/zwx19921215/article/details/42776589后,采用如下方案:
1.查看hive-site.xml配置,会看到配置值含有"system:java.io.tmpdir"的配置项

2.新建文件夹/opt/hive-1.0.1/iotmp
3.将含有"system:java.io.tmpdir"的配置项的值修改为如上地址
遇到的问题四:

默认的是Derby类型,但是只支持单用户,删除/root/metastore_db,即可。
遇到的问题五:

hadoop下的jline版本较老,用hive中的jline将其替换
cp /opt/hive-1.2.1/lib/jline-2.12.jar
/opt/hadoop-2.4.1/share/hadoop/yarn/lib/
为防止误删,将老版本jline改名
mv
/opt/hadoop-2.4.1/share/hadoop/yarn/lib/jline-0.9.94.jar
/opt/hadoop-2.4.1/share/hadoop/yarn/lib/old-jline-0.9.94.jar
遇到的问题六:

但是有提示metastore.local不存在,解决方案参考下图:

经测试:

注:此项是配置在hive-site.xml中,解决报错之后就没有在之前的安装步骤写入此项。
hive-1.2.1安装步骤的更多相关文章
- Hive的架构原理&Hive的安装步骤
Hive架构图 元数据默认数据库是:Derby.开发使用MySQL Hive如何将SQL语句翻译成MapReduce的? 1.使用SQL解析器解析SQL语句 2.使用编译器进行编译逻辑 3.使用优化器 ...
- Hive使用与安装步骤
1.Hive安装与配置 Hive官网:https://hive.apache.org/ 1. 安装文件下载 从Apache官网下载安装文件 http://mirror.bit.edu.cn/apach ...
- hadoop入门学习教程--DKHadoop完整安装步骤
使用hadoop版本是DKH标准三节点发行版,DKHadoop版本的易用性比较好,环境部署要简单的多,参考此篇安装前请先下载DKHadoop版本,网盘链接:https://pan.baidu.com/ ...
- 如何搭建SVN服务器,详细安装步骤。
SVN服务器端安装 下载: VisualSVN是一款图形化svn服务器.官网 http://www.visualsvn.com/server/ 下载地址: http://www.visualsvn.c ...
- Hive的三种安装方式(内嵌模式,本地模式远程模式)
一.安装模式介绍: Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景. 1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错) ...
- arcgis10.2.2桌面版具体的安装步骤过程
先声明一下,这里的截图虽说是ArcGIS10.1版本的,但是安装步骤是对的,本人用ArcGIS10.2.2软件测试成功安装上 一.ArcGIS许可证管理器安装 1.在软件包文件夹license man ...
- LoadRunner 11 安装步骤
loadrunner 安装步骤: LoadRunner11下载: 在网上可以搜索到,在这个就不提供了. LoadRunner11原理: 破解方法和以前版本相同,我用的是LR8.0的破解文件,同样实用 ...
- MySQL安装步骤
MySQL安装步骤 1. 下载MySQL Community Server 5.6.21,注意选择系统类型(32位/64位) 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下. ...
- Java开发工具安装步骤内容如下
Java开发工具安装步骤内容如下 安装 开发工具 STS 链接下载网址 eclipse 链接下载网址 JDK安装 jdk链接下载地址 Marven环境 marven链接下载地址 Tomcat tomc ...
随机推荐
- 更新android SDK的问题
由于我大天朝将google屏蔽的原因,在更新android SDK的时候,可能速度慢还是个小问题,重要的是你更新的时候出各种错误,比如错误 Failed to fetch URL https ...
- Android 音频管理器AudioManager
音频管理器AudioManager,通过它可以管理android系统的音量或直接让系统静音,依旧是通过调用getSystemService()方法获取音频管理器AudioManager对象,获取到该对 ...
- Java代码到字节码——第一部分
Java代码到字节码——第一部分 原文地址 作者:James Bloom 译者:张坤 理解在Java虚拟机中Java代码如何别被编译成字节码并执行是非常重要的,因为这可以帮助你理解你的程序在运行时发生 ...
- php 写商城网站的总结吧
---恢复内容开始--- 在兄弟连培训,这半个月在做一期项目,期间学到了很多东西,可是还有好多没有学会灵活运用.今天在登录界面加入验证码的时候,form提交不过去input里面的验证码,session ...
- C#微信公众号开发--网页授权(oauth2.0)获取用户基本信息二
前言 这一篇实现snsapi_userinfo,写这篇时其实我是有疑惑的,因为我并没有调试成功,但是我反复检查程序和思路是没有问题的,因为我使用的测试公众号,群里一个伙计说他之前调试时用的也是测试公众 ...
- android 轮播图
轮播图是很常用的一个效果 核心功能已经实现 没有什么特殊需求 自己没事研究的 所以封装的不太好 一些地方还比较糙 为想要研究轮播图的同学提供个参考 目前测试图片为mipmap中的图片 没有写从网络加载 ...
- 六、spark常见问题总结(转载)
问题导读 1.当前集群的可用资源不能满足应用程序的需求,怎么解决? 2.内存里堆的东西太多了,有什么好办法吗? 1.WARN TaskSchedulerImpl: Initial jo ...
- GridControl的单元格中以buttonEdit实现文字和图片按钮并存的效果
话不多说,先上效果图 对于第一列的效果是如何实现的就不多说了,网上有很多例子 重点是第三列的效果实现方法,代码如下 private void GridSet() { DevExpress.XtraEd ...
- C#中int32 的有效值范围
C#中int32 的有效值范围是[Int32.MinValue, Int32.MaxValue]中的整数,或者说是从 -2^16 到 2^16-1 之间的整数
- select的onchange事件获取不了option的value
一,select的onchange事件获取不了option的value是当你使用JQ($("#xxx").val())方法的获取的值一直提示undefined 二,解决方法: va ...