前言 Hive是一个基于Hadoop的数据仓库, 可以将结构化的数据映射为一张数据表, 并提供简单的SQL查询功能, 他会将SQL转化为MapReduce的方式运行, 因为它支持原生的SQL语句,并能够将它转变为...下载HIVE 假设你的电脑已经安装了MySQL 我的Hadoop版本是2.9.2, 我下载的对应HIVE版本是1.2.2 之前下载了 2.3.4 结果版本太新不匹配 https://hive.apache.org.../downloads.html tar xvzf apache-hive-1.2.2-bin.tar.gz sudo mv apache-hive-1.2.2-bin /opt/hive-1.2.2 2...配置HIVE 2.1 配置环境变量 vim ~/.bashrc # Hive export HIVE_HOME=/opt/hive-1.2.2 export PATH=${HIVE_HOME}.../bin:$PATH source ~/.bashrc 2.2 修改HIVE配置文件 cd $HIVE_HOME/conf vim hive-site.xml # 添加如下内容
主机环境 : Ubuntu 13.10 Hadoop 1.2.1 Hive 0.12.0 下载解压和转移...: wget http://mirrors.hust.edu.cn/apache/hive/hive-0.12.0/hive-0.12.0.tar.gz tar -...cd conf cp hive-default.xml.template hive-site.xml Hive的主要配置项 : hive.metastore.warehouse.dir...指定Hive的存储目录 hive.exec.scratchdir 指定hive的数据临时文件目录 连接数据库的配置 : Hive需要将元数据存储在...hive-0.12.0/lib/hive-common-0.12.0.jar!
0.安装环境和版本 Ubuntu 16.04,Hadoop版本是2.7.2 ,选择Hive版本为 hive-2.1.17 1....Hive安装包下载 地址: https://mirrors.tuna.tsinghua.edu.cn/apache/hive/ 2.上传到服务器后解压 sudo mv apache-hive-2.1.1...=/usr/local/hive export HIVE_CONF_DIR=$HIVE_HOME/conf export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib export...1) 创建hive数据库和用户 GRANT all privileges on *.* TO 'hive' identified by 'Hive@12345'; create database hive...配置hive-site.xml文件 1) 配置hive-site.xml文件 cd $HIVE_HOME/conf cp hive-default.xml.template hive-site.xml
1.安装MySQL 1.1安装MySQL Server 在Ubuntu下面安装MySQL的Server很简单,只需要运行: sudo apt-get install mysql-server 系统会把MySQL...2.下载并配置Hive 2.1下载Hive 首先我们到官方网站,找到Hive的下载地址。...然后在master服务器上,wget下载hive的编译好的文件,我现在最新版是Hive 2.1.1 : wget http://mirror.bit.edu.cn/apache/hive/hive-2.1.1...:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/hive/lib 2.3配置hive-env.sh 所有Hive的配置是在/usr/local/hive/conf...FIELDS TERMINATED BY '\t'; 3.2插入数据 是insert语句可以插入单条数据: insert into Users values(1,'Devin'); 如果要导入数据 我们在Ubuntu
存储原理: hive的数据存储在HDFS上,hive的表其实就是HDFS的目录,hive没有自己的数据存储格式,存储结构主要包括:数据库、文件、表、视图、索引。...hive默认可以直接加载text文本文件等。创建表时,指定hive的数据的列分隔符与行分隔符,hive即可解析数据。...表: Hive中的表和关系型数据库中的表在概念上很类似,每个表在HDFS中都有相应的目录用来存储表的数据,这个目录可以通过${HIVE_HOME}/conf/hive-site.xml配置文件中的hive.metastore.warehouse.dir...如果我有一个表table1,那么在HDFS中会创建/user/hive/warehouse/table1目录(这里假定hive.metastore.warehouse.dir配置为/user/hive/...由于Hive的元数据需要不断的更新、修改,而HDFS系统中的文件是多读少改的,这显然不能将Hive的元数据存储在HDFS中。目前Hive将元数据存储在数据库中,如Mysql、Derby中。
(as of Hive 0.9.0)....(As of Hive 0.10.0; bug with float types fixed in Hive 0.14.0, decimal type support added in Hive 0.14.0...(As of Hive 1.1.0.)....(As of Hive 0.8.0.)....(As of Hive 0.10.).「将结构体数组提取出来并插入到表中」 9.Reference Hive学习之路 (九)Hive的内置函数 LanguageManual UDF
首先,Hive != SQL,虽然二者的语法很像,但是Hive最终会被转化成MapReduce的代码去执行,所以数据库的优化原则基本上都不适用于 Hive。...尽管看起来多了一条Hive QL,但是后两个任务需要扫描的数据将会变得很小。...四、UDF 在Hive中很多时候都需要做一些复杂的计算或者逻辑处理,这时候Hive本身作为一个通用框架没法很好地支持,所以有了UDF(User Defined Function)。...2、编写UDF 编写UDF十分简单,引入hive-exec包,继承org.apache.hadoop.hive.ql.exec.UDF类,实现evaluate方法即可,方法的输入和输出参数类型就是当你在...Hive中调用时的输入和返回值。
前提:开启hadoop,关闭safe模式(关闭safe模式命令:hdfs dfsadmin -safemode leave) (1)创建一个数据库hive_test ?...(2)切换到hive_test ? (3)在数据库里面创建表hive_table ?...注意:这里的数据类型的写法和mysql不是很像,因为我们是从一个结构数据直接导入到我们的hive中,所以不需要在后面加括号写多大的数据,并且后面的row format跟的东西是我们以逗号将数据分开。...在hive目录下: ? 在warehouse目录下: ? 找到了我们的hive_test表,并且在hive_test.db目录下能找到我们创建的hive_table表: ?...(6)将此文件导入hive_table中 ? (7)查看数据是否加入成功 ? ? ? 可见导入成功 (8)再次查看hdfs ? 可见,相当于将此文件复制到了hdfs下
这种存储方式的弊端是在同一个目录下同时只能有一个hive客户端能使用数据库。...> hive.metastore.warehouse.dir /user/hive_remote...> hive.metastore.warehouse.dir /user/hive...2.Remote分开:将hive-site.xml配置文件拆为如下两部分 服务端配置文件(因为服务端需要和Mysql通信,所以服务端需要Mysql的lib安装包到Hive_Home/conf目录下...dev/null & 客户端直接使用hive命令即可!!!
Hive基础02、安装Hive 前置 开启【hdfs】,六个服务都要在。...start-all.sh jps 安装Hive 1、解压【Hive】 tar -zxvf apache-hive-2.1.0-bin.tar.gz 由于命名不合适,所以更换一下: mv apache-hive...-2.1.0-bin/ hive 2、修改配置 在“/opt/hive/conf”目录下拷贝“hive-default.xml.template”与“hive-env.sh.template”两个文件...,并将拷贝后文件的名称分别变为“hive-site.xml”与“hive-env.sh” cd /opt/soft/hive/conf/ cp hive-default.xml.template...hive-site.xml cp hive-env.sh.template hive-env.sh 3、添加环境变量 vi hive-env.sh export JAVA_HOME=/opt/soft
如上图所示: Hive 提供了 CLI(hive shell)、JDBC/ODBC(Java 访问 hive)、WeibGUI 接口(浏览器访问 hive); Hive 中有一个元数据存储(Metastore...2.Hive 基本操作 2.1 Hive 常用命令 在终端输入 hive -help 会出现: usage: hive -d,--define Variable...另外,Hive 也会读入 Hadoop 的配置,因为 Hive 是作为 Hadoop 的客户端启动的,Hive 的配置会覆盖 Hadoop 的配置。...3、 只需要在创建表的时候告诉 Hive 数据中的「列分隔符和行分隔符」,Hive 就可以解析数据 Hive 的默认列分隔符:控制符 「Ctrl + A,\x01 Hive」 的; Hive 的默认行分隔符...6.Reference 尚硅谷Hive教程(新版hive框架详解) Hive学习之路 (一)Hive初识 Hive内部表与外部表的区别
一.前述 本节主要描述Hive的优化使用,Hive的优化着重强调一个 把Hive SQL 当做Mapreduce程序去优化 二.主要优化点 1.Hive运行方式: 本地模式 集群模式 本地模式 开启本地模式...: set hive.exec.mode.local.auto=true; 注意: hive.exec.mode.local.auto.inputbytes.max默认值为128M 表示加载文件的最大值...对于小表可以直接从从hdfs直接拿到本地计算 2.并行计算 通过设置以下参数开启并行模式: set hive.exec.parallel=true; 注意:hive.exec.parallel.thread.number...= true; (该参数为true时,Hive自动对左边的表统计量,如果是小表就加入内存,即对小表使用Map join)(默认左边的加载到内存中去) 相关配置参数: hive.mapjoin.smalltable.filesize...sum,count时使用) 通过设置以下参数开启在Map端的聚合: set hive.map.aggr=true; 相关配置参数: hive.groupby.mapaggr.checkinterval
Hive的所有数据都存在HDFS中. (1)Table:每个表都对应在HDFS中的目录下,数据是经过序列化后存储在该目录中。...同时Hive也支持表中的数据存储在其他类型的文件系统中,如NFS或本地文件系统。...Hive的整体架构图如下: ?...HiveMetastoreCatalog是Spark中对Hive Metastore访问的wrapper.HiveMetastoreCatalog通过调用相应的Hive API可以获得数据库中的表及表的分区...它会通过Hive client来访问MetaStore的元数据。
Hive基础06、Hive引入数组 目录 Hive基础05、Hive引入数组 1、建表语句 2、创建【arrayInfo.txt】 3、上传到【/soft/temp/】 4、引入数组操作 ----...外部表在建表的同时必须指定一个指向实际数据的路径(LOCATION),Hive在创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。...5、CLUSTERED BY 对于每一个表(table)或者分区, Hive 可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分,Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中...8、LOCATION 定义 hive 表的数据在 hdfs 上的存储路径,一般管理表(内部表不不要自定义),但是如果定义的是外部表,则需要直接指定一个路径。
Hive降低了将这些应用程序转移到Hadoop系统上的难度。凡是会使用SQL语言的开发人员都可以很轻松的学习并使用Hive。...如果没有Hive,那么这些用户就必须学习新的语言和工具,然后才能应用到生产环境中。另外,相比其他工具,Hive更便于开发人员将基于SQL的应用程序转移到Hadoop中 。...如果没有Hive,那么开发者将面临一个艰巨的挑战,如何将他们的SQL应用程序移植到Hadoop上。 Hive不是一个完整的数据库。...Hadoop以及HDFS的设计本身约束和局限性地限制了Hive所能胜任的工作。其中最大的限制就是Hive不支持记录级别的更新、插入或者删除操作。但是用户可以通过查询生成新表或者将查询结果导入到文件中。...传统数据库中在秒级别可以完成的查询,在Hive中,即使数据集相对较小,往往也需要执行更长的时间。 引自Hive编程指南
Hive是什么? 由facebook开源的用于解决海量结构化日志的数据统计,后称Apache Hive 的开源项目。 Hive是基于Hadoop文件系统上的数据仓库架构。存储用HDFS,计算用MR。...同时Hive还定义了类SQL语言--Hive QL,允许用户进行和SQL相似的操作。他可以将结构化数据的数据文件转化为一张数据表,并提供简单的查询功 能。可以将SQL转化为MapReduce语句。...Hive可以理解成为一个工具,不存在主从结构,不用安装到每台机器上,只需要安装几台就行了。 默认数据库:derby,后期转换成关系型数据库mysql。...看看下图hive在Hadoop生态系统中的位置。 ? 接着看下Hive体系结构。 ? Meta store引进元数据。 HDFS和MapReduce。
Hive.png Hive 运行方式 命令行 脚本 jdbc webui 搭建模式 local 单用户模式 远程模式/多用户模式 一般模式 Beeline · 服务器hiveserver2启动 · 客户端...beeline连接 HQL 建表(create) 内部表 · hive管理,删除表时源数据消失 外部表 · 非hive管理,删除表时源数据不消失 查看表描述(desc) DML 和sql基本类似,用到查询即可...分区 静态分区 动态分区 分桶 适用场景 抽样 map-join 索引 提高检索性能 SerDe 用于序列化与反序列化 构建数据存储和执行引擎之间用于解耦 用于hive和hbase的交互中 JDBC...默认端口10000 Hive函数 内置函数 自定义函数 继承udf或者udaf 重写evaluate方法 参数 配置文件 set命令 hive cli时设置(一次性) Lateral View 解决多个
Hive基础05、Hive引入数据 前提 Hive表中的数据不能通过insert语句插入,而是load data语句进行加载,其中加载的数据来源主要包括: 1、本地文件系统加载数据 2、HDFS...文件系统加载数据 load data [local] inpath 'filePath' [overwrite] into table tableName 目录 Hive基础05、Hive引入数据...temp/info.txt' overwrite into table users; 引入数据成功: 导入完成查询一下看看: select * from users; 上传完成后可以在:【/user/hive...2、HDFS文件系统加载数据 首先要从hive中退出来,使用【exit;】即可 换个文件【hadoopInfo.txt】 1 文鸯 大将军 男 2 满宠 装逼死得快 ...重新引入一下: 先删除 truncate table users; 退出并重新添加数据: exit; 上传数据: hadoop fs -put /opt/temp/hadoopInfo.txt / 再次进入hive
Hive基础07、Hive引入Map 1、建表语句 创建一个成绩表,记录学生的各个科目成绩: 英文关键字解析: 1、CREATE TABLE 创建一个指定名字的表,如果库中已有相同名的表,则抛出异常...外部表在建表的同时必须指定一个指向实际数据的路径(LOCATION),Hive在创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。...5、CLUSTERED BY 对于每一个表(table)或者分区, Hive 可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分,Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中...8、LOCATION 定义 hive 表的数据在 hdfs 上的存储路径,一般管理表(内部表不不要自定义),但是如果定义的是外部表,则需要直接指定一个路径。
——2015.07.28 一、Hive概述 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据表,并提供类似于SQL(HiveSQL)的操作功能。...Hive的基本操作与传统的数据库的操作类似,所不同的是Hive的SQL语句会转换成MapReduce程序执行,对于特定的查询等操作,具有更高的性能。...这部分的笔记是假设已经搭建好Hive以及Hadoop集群,主要精力放在对Hive以及Hadoop的基本操作上。 二、Hive表的基本操作之DDL 1、启动Hive Hive ?...当出现hive>就表示已经进入Hive环境,此时可以进行Hive的基本操作。 2、建立Hive表 格式: ?...注意点:每一个Hive语句以“;”结束。
领取专属 10元无门槛券
手把手带您无忧上云