Hive基本原理及环境搭建
今天我主要是在折腾这个Hive,早上看了一下书,最开始有点凌乱,后面慢慢地发现,hive其实挺简单的,以我的理解就是和数据库有关的东西,那这样的话对我来说就容易多啦,因为我对sql语法应该是比较熟悉了,而这个是HQL的,其实很多都差不多。先来看一下Hive的基本介绍:
一、Hive基本原理
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive将元数据存储在数据库(RDBMS)中,比如MySQL、Derby中。Hive有三种模式连接到数据,其方式是:单用户模式,多用户模式和远程服务模式。(也就是内嵌模式
、本地模式、远程模式)。
1.1 Hive体系结构:
Hive体系结构图:主要分为:用户接口、Thrift服务器、元数据存储、解析器、Hadoop
1.2 Hive数据类型
Hive的存储是建立在Hadoop文件系统之上的,它本身没有专门的数据存储格式,其主要包括四类数据模型:
表(Table)
分区(Partition)
桶(Bucket)
外部表(External Table)
Hive的内置数据类型可以分为两大类:(1)、基础数据类型;(2)、复杂数据类型。其中,基础数据类型包括:TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE。
1.3Hive的执行流程要点
操作符(Operator)是Hive的最小处理单位;
每个操作符处理代表HDFS操作或MR作业;
编译器把Hive SQL转换成一组操作符;
Hive通过ExecMapper和ExecReducer来执行MapReduce任务;
执行MapReduce时有两种模式:本地模式和分布式模式;
常见的Hive操作符(部分)如下:
1.4 Hive的HQL操作
hive基本的运行操作其实和sql差不多,例如:
select u.name, o.orderid from order o join user u on o.uid = u.uid;select dealid, count(distinct uid), count(distinct date) from order group by dealid;
简单Hive表语句:
create table student
(
name string,
sex string,
age int
);
二、Hive基本配置
1、从apache官网的hadoop找到hive,目前最新版本是2.0.1,我下的就是这个,http://hive.apache.org/downloads.html,
2、下载mysql驱动,目前是5.1.38的 ,我已经把这需要的两个整理好一个压缩包了,可以通过以下链接下载:(我后续贴出)
3、分别解压到你需要的目录中,我是放置在/home/admin1/下载/hive-2.0.1中的,把mysql驱动也放到hive的这个lib包中,然后在hive-2.0.1/conf中对以下文件进行配置:
新建一个文件hive-env.sh
把里面的目录改成你的hadoop放置的目录就可以了。
export HIVE_HOME=/home/admin1/下载/hive-2.0.1
export PATH=$PATH:$HIVE_HOME/bin
HADOOP_HOME=/home/admin1/下载/hadoop-2.5.2
export HIVE_CONF_DIR=/home/admin1/下载/hive-2.0.1/conf
export HIVE_AUX_JARS_PATH=/home/admin1/下载/hive-2.0.1/lib
还需要新建一个hive-site.xml:
这里我用的是mysql的账号和密码来配置的,其他的你也可以参照配置。
<?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:derby:;databaseName=metastore_db;create=true</value>--><value>jdbc:mysql://localhost:3306/hive?=createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBCmetastore</description></property> <property><name>javax.jdo.option.ConnectionDriverName</name><!--<value>org.apache.derby.jdbc.EmbeddedDriver</value>--><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBCmetastore</description></property> <property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>username to use against metastoredatabase</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>a</value><description>password to use against metastoredatabase</description></property>
</configuration>
启动:在/home/admin1/下载/hive-2.0.1中执行:
bin/hive
若无法初始化,则:
bin/schematool -dbType mysql -initSchema
在hive2.0以上版本都需要initSchema一下,否则会报错,我也是因为这个问题折腾了好几个小时,最后发现很简单就解决了。
最后说一下的就是在安装mysql的时候,你可以直接用ubuntu里面的uk软件下载就可以了,在里面搜索mysql,然后下载mysql的服务器,客户端和工作平台就可以了,这里不再重复啰嗦了,就是需要在控制台创建一下新用户:
mysql -uroot
create user 'hive' identify by 'hive';
create database hive;
grant all privileges on *.* to 'hive'@'localhost' identified by 'hive';
flush privileges
然后可以通过hive账号进行登陆就可以了,
mysql -u hive -p
然后输入密码hive就成功登陆,把这个登陆信息配置到hive-site.xml中就可以了。
接下来就可以愉快的进行hive的使用了,创建表等。记得要把hadoop的服务打开哦 , sbin/start-all.sh
总结:今天遇到的两个主要问题就是,1:bin/hive后一直报错,最后初始化之后就可以了。2、在linux中的sublim-text无法输入中文,且无法下载gpk解决,无法编译sublime_imfix.c,后来通过在github上面发现已经编译好的库,然后导入,经过一系列复杂的操作最后成功解决了这个问题。找对方法,找对工具。
转载于:https://www.cnblogs.com/sdksdk0/p/5585051.html
Hive基本原理及环境搭建相关推荐
- 最详细的Hadoop+Hbase+Hive完全分布式环境搭建教程(二)
继续上次的教程,这次安装hbase与hive.之前有同学反应百度网盘中没有hbase安装包,这次补上了,在上篇博客的网盘链接中已经有了,最详细的Hadoop+Hbase+Hive完全分布式环境搭建教程 ...
- Linux基础环境搭建(CentOS7)- 安装Flume
Linux基础环境搭建(CentOS7)- 安装Flume 大家注意以下的环境搭建版本号,如果版本不匹配有可能出现问题! Linux基础环境搭建(CentOS7)- 虚拟机准备 Linux基础环境搭建 ...
- hive环境搭建提示: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
hive环境搭建提示: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument SLF4J: A ...
- Hive相关(概述、环境搭建、命令、API、JDBC、HBase整合等)
Hive Apache Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的类sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优 ...
- Hive环境搭建--轻量级安装so easy!
Hive环境搭建 一.准备工作 1.安装包下载 2.虚拟机需先安装好hadoop 3.安装mysql 二.安装hive 三.配置环境变量 1.配置环境变量 2.修改hive配置文件 四.启动hive ...
- zeppelin环境搭建及连接hive使用--简易版一看就会
zeppelin环境搭建及连接hive使用 一.准备工作 1.zepeelin简介 2.安装包下载 3.环境要求 二.解压安装 三.修改配置文件 1.修改配置文件zeppelin-site.xml 2 ...
- Hadoop+hive+flask+echarts大数据可视化项目之hive环境搭建与系统数据的分析思路
Hadoop+hive+flask+echarts大数据可视化项目(四) --------------hive环境搭建与系统数据的分析思路---------------- 关注过Hadoop+hive ...
- 小知识点:ARM 架构 Linux 大数据集群基础环境搭建(Hadoop、MySQL、Hive、Spark、Flink、ZK、Kafka、Nginx、Node)
换了 M2 芯片的 Mac,以前 x86 版本的 Linux 大数据集群基础环境搭建在 ARM 架构的虚拟机集群上有些用不了了,现在重新写一份基于 ARM 架构的,少数不兼容之外其他都差不多,相当 ...
- Hadoop+hive+flask+echarts大数据可视化项目之系统数据整合和hadoop环境搭建
Hadoop+hive+flask+echarts大数据可视化项目(二) --------------系统数据整合和hadoop环境搭建---------------- 关注Hadoop+Hive+F ...
- 大数据单机学习环境搭建(5)Hive建表DDL详解
专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...
最新文章
- samba服务器详解
- 项目总结二:人脸识别项目(Face Recognition for the Happy House)
- 主播靠颜值还是???!!!!!
- android10唯一识别,Android 10 如何获取唯一值?
- Linux内核权限维持,Linux权限维持笔记
- 软件测试三种错误的是,软件测试中的三种排错方法(知识篇)
- 未来已来——工作空间 WorkSpace 和物联网 IoT (1)
- 采用传输矩阵法求解光子晶体带隙
- d3.js d3.scale.ordinal() --详解 rangeBands
- webview无法播放视频
- NLP自然语言处理CRF详解
- 教程:BootToGecko系统虚机与实机开发环境搭建及FirefoxOS设备使用和开发网站推荐;
- 室内三维物体识别与姿态估计--背景
- 摒弃excel,用这款工具制作炫酷的可视化大屏
- 超融合产品的优势和适用场景
- 【裴蜀定理】CF1055C Lucky Days
- 携程移动端静态页面仿写
- 听说月薪3万的公众号运营者,都偷偷藏了这些网站
- rosbag 数据分割
- 永磁同步电机(PMSM)的FOC闭环控制详解