Hive之一:hive2.1.1安装部署
一、Hive 运行模式
1. 内嵌模式
将元数据保存在本地内嵌的 Derby 数据库中,这是使用 Hive 最简单的方式。但是这种方式缺点也比较明显,因为一个内嵌的 Derby 数据库每次只能访问一个数据文件,这也就意味着它不支持多会话连接。
2. 本地模式
这种模式是将元数据保存在本地独立的数据库中(一般是 MySQL),这用就可以支持多会话和多用户连接了。
3. 远程模式
此模式应用于 Hive 客户端较多的情况。把 MySQL 数据库独立出来,将元数据保存在远端独立的 MySQL 服务中,避免了在每个客户端都安装 MySQL 服务从而造成冗余浪费的情况。
二、下载安装 Hive
http://hive.apache.org/downloads.html
tar -xzvf apache-hive-2.1.1-bin.tar.gz ##解压
三、配置系统环境变量
修改 /etc/profile 文件 vi /etc/profile 来修改(root用户操作):
export JAVA_HOME="/usr/local/jdk1.8.0_172"
export HIVE_HOME=/home/duanxz/hive/apache-hive-2.1.-bin
export PATH="$PATH:$JAVA_HOME/bin:$HIVE_HOME/bin:$HIVE_HOME/conf"
四、内嵌模式
(1)修改 Hive 配置文件
$HIVE_HOME/conf 对应的是 Hive 的配置文件路径,类似于之前学习的Hbase, 该路径下的 hive-site.xml 是 Hive 工程的配置文件。默认情况下,该文件并不存在,我们需要拷贝它的模版来实现:
hive-site.xml 的主要配置有:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
<description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/<username> is created, with ${hive.scratch.dir.permission}.</description>
</property>
hive.metastore.warehouse.dir
该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路径下。hive.exec.scratchdir
该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下。
同时我们还要修改 Hive 目录下 /conf/hive-env.sh 文件(请根据自己的实际路径修改),该文件默认也不存在,同样是拷贝它的模版来修改:
cp hive-env.sh.template hive-env.sh
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/usr/local/hadoop-2.7. # Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/duanxz/hive/apache-hive-2.1.-bin/conf # Folder containing extra ibraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/home/duanxz/hive/apache-hive-2.1.-bin/bin
(2)创建必要目录
前面我们看到 hive-site.xml 文件中有两个重要的路径,切换到 hadoop 用户下查看 HDFS 是否有这些路径:
duanxz@three:~$ sudo chmod a+w hive
hadoop fs -ls /
没有发现上面提到的路径,因此我们需要自己新建这些目录,并且给它们赋予用户写(W)权限。
$HADOOP_HOME/bin/hadoop fs -mkdir -p /hive/warehouse
$HADOOP_HOME/bin/hadoop fs -mkdir -p /tmp/hive/
hadoop fs -chmod /hive/warehouse
hadoop fs -chmod /tmp/hive
检查是否新建成功 hadoop fs -ls / 以及 hadoop fs -ls /tmp/hive/ :
(3)修改 io.tmpdir 路径
同时,要修改 hive-site.xml 中所有包含 ${system:java.io.tmpdir} 字段的 value 即路径(vim下 / 表示搜索,后面跟你的关键词,比如搜索 hello,则为 /hello , 再回车即可),你可以自己新建一个目录来替换它,例如
(4)运行 Hive
./bin/hive
报错
解决办法:./schematool -initSchema -dbType derby
报错
解决方法:删除/home/hadoop/cloud/apache-hive-2.1.1-bin目录下 rm -rf metastore_db/ ,再初始化:./bin/schematool -initSchema -dbType derby
重新运行
但在我的机器上没有metastore_db/这个目录,也修改下初始化命令,执行目录向上退一级再执行:
./bin/schematool -initSchema -dbType derby
执行成功,如下图:

再启动hive:
./bin/hive
报错

/tmp/hive 没写的权限
duanxz@three:~/hive/apache-hive-2.1.-bin$ hadoop fs -chmod a+w /tmp/hive
启动城后,如下:

关闭就杀死对应的进程即可
duanxz@three:~$ jps
RunJar
Hive本身自带一个数据库,但是有弊端,hive本身数据库,每次只允许一个用户登录
mysql安装:http://blog.csdn.net/u014695188/article/details/51532410
设置mysql关联hive
修改配置文件
### 创建hive-site.xml文件
在hive/conf/目录下创建hive-site.xml文件
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- <configuration>
- <property>
- <name>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://192.168.169.134: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>123456</value>
- </property>
- <property>
- <name>hive.metastore.schema.verification</name>
- <value>false</value>
- <description>
- Enforce metastore schema version consistency.
- True: Verify that version information stored in metastore matches with one from Hive jars. Also disable automatic
- schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures
- proper metastore schema migration. (Default)
- False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
- </description>
- </property>
- </configuration>
报错:Caused by: MetaException(message:Version information not found in metastore. )
解决:hive-site.xml加入
- <property>
- <name>hive.metastore.schema.verification</name>
- <value>false</value>
- <description>
- Enforce metastore schema version consistency.
- True: Verify that version information stored in metastore matches with one from Hive jars. Also disable automatic
- schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures
- proper metastore schema migration. (Default)
- False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
- </description>
- </property>
报错:缺少mysql jar包
解决:将其(如mysql-connector-Java-5.1.15-bin.jar)拷贝到$HIVE_HOME/lib下即可。
报错:
- Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized.
- Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed,
- don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)
解决:
- #数据库的初始化。
- bin/schematool -initSchema -dbType mysql
启动:
- bin/hive
启动后mysql 多了hive 数据库
创建数据库
创建测试表
use db_hive_test;
create table student(id int,name string) row format delimited fields terminated by '\t';
加载数据到表中
新建student.txt 文件写入数据(id,name 按tab键分隔)
vi student.txt
- 1001 zhangsan
- 1002 lisi
- 1003 wangwu
- 1004 zhaoli
load data local inpath '/home/hadoop/student.txt' into table db_hive_test.student
查询表信息
select * from student;
查看表的详细信息
desc formatted student;
通过ui页面查看创建的数据位置
http://192.168.169.132:50070/explorer.html#/user/hive/warehouse/db_hive_test.db
通过Mysql查看创建的表
查看hive的函数
show functions;
查看函数详细信息
desc function sum;
desc function extended
感谢:https://www.cnblogs.com/hmy-blog/p/6506417.html
Hive之一:hive2.1.1安装部署的更多相关文章
- Hive 系列(一)安装部署
Hive 系列(一)安装部署 Hive 官网:http://hive.apache.org.参考手册 一.环境准备 JDK 1.8 :从 Oracle 官网下载,设置环境变量(JAVA_HOME.PA ...
- Ubuntu16.04 和 hadoop2.7.3环境下 hive2.1.1安装部署
参考文献: http://blog.csdn.NET/reesun/article/details/8556078 http://blog.csdn.Net/zhongguozhichuang/art ...
- hive2.1.1安装部署
转至:https://i.cnblogs.com/EditPosts.aspx?opt=1 一.Hive 运行模式 与 Hadoop 类似,Hive 也有 3 种运行模式: 1. 内嵌模式 将元数据保 ...
- Hive 环境的安装部署
Hive在客户端上的安装部署 一.客户端准备: 到这我相信大家都已经打过三节点集群了,如果是的话则可以跳过一,直接进入二.如果不是则按流程来一遍! 1.克隆虚拟机,见我的博客:虚拟机克隆及网络配置 2 ...
- 【Hadoop离线基础总结】impala简单介绍及安装部署
目录 impala的简单介绍 概述 优点 缺点 impala和Hive的关系 impala如何和CDH一起工作 impala的架构及查询计划 impala/hive/spark 对比 impala的安 ...
- Hive基础概念、安装部署与基本使用
1. Hive简介 1.1 什么是Hive Hives是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.2 为什么使用Hive ① 直接使用 ...
- 【Hadoop离线基础总结】Hive的安装部署以及使用方式
Hive的安装部署以及使用方式 安装部署 Derby版hive直接使用 cd /export/softwares 将上传的hive软件包解压:tar -zxvf hive-1.1.0-cdh5.14. ...
- 【原】Centos6.5下cdh4.6 hive安装部署
1.前提条件: 只需要选择一台服务器即可,这里选择安装在namenode上:安装用户为cloud-user 2.安装包: sudo yum install -y hive hive ...
- CentOS下SparkR安装部署:hadoop2.7.3+spark2.0.0+scale2.11.8+hive2.1.0
注:之前本人写了一篇SparkR的安装部署文章:SparkR安装部署及数据分析实例,当时SparkR项目还没正式入主Spark,需要自己下载SparkR安装包,但现在spark已经支持R接口,so更新 ...
随机推荐
- Beta周第14次Scrum会议(11/23)【王者荣耀交流协会】
一.小组信息 队名:王者荣耀交流协会 小组成员 队长:高远博 成员:王超,袁玥,任思佳,王磊,王玉玲,冉华 小组照片 二.开会信息 时间:2017/11/23 17:02~17:14,总计12min. ...
- 2017.4.7 Sprng MVC工作流程描述图
图一: 图二: Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获: 2. Dispa ...
- log4j.properties与db.properties
log4j.properties与db.properties db.driver=com.mysql.jdbc.Driver db.url=jdbc:mysql:///mybatis?useUnico ...
- C++学习(三十一)(C语言部分)之 栈和队列(括号匹配示例)
括号匹配测试代码笔记如下: #include<stdio.h> #include<string.h> #include <stdlib.h> #define SIZ ...
- Python3实现生成验证码图片
import randomfrom PIL import Image, ImageFont, ImageDrawfrom io import BytesIOfrom ttt import settin ...
- ionic1页面间传递参数的问题
1. $scope.routeinfo是我要传递的参数--到scheddulcontent这个页面去: $state.go( "scheddulcontent" , { 'rou ...
- apache geode 试用
使用docker 运行,文档参考的官方的5 分钟学习文档 拉取镜像 docker pull apachegeode/geode 启动 docker run -it -p 10334:10334 -p ...
- mtail 提取应用日志数据到时序数据库的工具-支持prometheus
mtail 是谷歌开源的一款很不错的应用日志提取工具,我们可以方便的用来提取应用的数据 到常见的监控系统(prometheus,stats,collectd,gragphite....) 说明: de ...
- C# 远程调用实现案例
C#远程调用实现案例 2007年11月19日 13:45:00 阅读数:6012 C#实现远程调用主要用到“System.Runtime.Remoting”这个东西.下面从三个方面给于源码实例. ·服 ...
- Zabbix-2.4-安装-2
zabbix自定义报警-动作 打开资产自动接收 这里看到主机资产有数据了,这里的数据,就是来自下面的关联 上面的数据就是设置login-user时候设置的关联 有些关联显示的慢,比如下面 ...

