【HIVE】hive的安装与使用教程
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
Hive 没有专门的数据格式。 Hive 可以很好的工作在 Thrift 之上,控制分隔符,也允许用户指定数据格式。
Hive简介:
1)声明编程;
2)Hive不包括计算框架,把计算交给:MR、Spark、Tez;
3)Hive SQL;
4)与传统的关系型数据库(Mysql)有区别;
5)数据仓库;
6)场景:
对历史数据做离线“分析”
7)Hive 诟病:慢
MR慢
如果想提速:设置计算引擎:Spark
Hive是:提供一个大数据的SQL的接口,不做计算。用来做数据分析。
使用Mysql保存元数据信息:字段、字段类型、分割方式、存储方式。。。
Hive 安装准备:
1)Hadoop;
2)Mysql;
3)mysql-connector-java,放在$HIVE_HOME/lib目录下;
mysql安装:
mysql的安装
1. 只需要安装在集群里面的一台节点上即可,此处选择hadoop1节点
2. 在Hadoop1上安装mariadb
yum -y install mariadb-server mariadb
3. 开启服务并开机自启
systemctl start mariadb.service
systemctl enable mariadb.service
4. 设置密码。第一次登陆时直接空密码登陆,之后使用sql语句设置密码
mysql -u root -p
登录之后,先查看databases是否正常,之后sql语句设置密码
> use mysql;
> update user set password=password( '123456' ) where user= 'root' ;
然后设置root用户可以从任何主机登陆,对任何的库和表都有访问权限
> grant all privileges on *.* to root@'%' identified by '123456';
> grant all privileges on *.* to root@'hadoop1' identified by '123456';
> grant all privileges on *.* to root@'localhost' identified by '123456';
> FLUSH PRIVILEGES;
配置:
- /etc/profile
export HIVE_HOME=...
export PATH=$PATH:$HIVE_HOME/bin
使配置生效 source /etc/profile
- hive-env.sh中添加信息:
export JAVA_HOME=...
export HADOOP_HOME=...
export HIVE_HOME=...
- hive-site.xml
1)Mysql连接方式,url,用户名,密码;
2)log路径
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://bigboss3: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.exec.scratchdir</name>
<value>/tmp/hive</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/tmp/hive/local</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/tmp/hive/resources</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
<property>
<name>hive.querylog.location</name>
<value>/tmp/hive/querylog</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/tmp/hive/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>
<property>
<name>hive.execution.engine</name>
<value>spark</value>
</property>
</configuration>
- 为Hive创建HDFS目录:
hdfs dfs -mkdir /tmp
// /usr/hive/warehouse 是 Hive 数据存放的路径
hdfs dfs -mkdir -p /usr/hive/warehouse
设置文件夹权限
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /usr/hive/warehouse
元数据:
数据:
- 访问方式
1)hive //已弃用
2)
从 Hive 2.1 版本开始, 在启动 Hive 之前需运行 schematool 命令来执行初始化操作:
schematool -dbType mysql -initSchema
先启动:hiveserver2 // 多用户,安全,推荐使用
再执行:beeline
beeline命令:
//连接
!connect jdbc:hive2://bigboss1:10000
//展示数据库
show databases;
//建数据库
create database test01;
//建表
create table emp(id int, name string, job string, mgr int, hiredate string, salary double,
bonus double, deptid int) row format delimited fields terminated by '\t';
//向表中导入数据
load data local inpath "/root/example/hive/data/emp.txt" into table emp;
//查询
1. 求每个部门的平均薪水大于2000的部门
2. 同1,但加上部门名字
0: jdbc:hive2://bigboss3:10000> select emp.deptid,dept.name, avg(salary) as avgsalary
from emp,dept where emp.deptid=dept.id group by emp.deptid,dept.name having
avgsalary>2000;
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future
versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X
releases.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/programs/hive-2.3.5/lib/log4j-slf4j-impl-
2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/programs/hadoop-
2.6.0/share/hadoop/common/lib/slf4j-log4j12-
1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
2019-09-17 15:58:54 Starting to launch local task to process map join; maximum
memory = 518979584
2019-09-17 15:58:56 Dump the side-table for tag: 1 with group count: 4 into file:
file:/tmp/hive/local/8860e8f7-b680-436a-846f-7781fc8f45fd/hive_2019-09-17_15-58-
49_975_7606403685014368047-1/-local-10005/HashTable-Stage-2/MapJoin-mapfile11--.hashtable
2019-09-17 15:58:56 Uploaded 1 File to: file:/tmp/hive/local/8860e8f7-b680-436a-846f-
7781fc8f45fd/hive_2019-09-17_15-58-49_975_7606403685014368047-1/-local-10005/HashTable-
Stage-2/MapJoin-mapfile11--.hashtable (373 bytes)
2019-09-17 15:58:56 End of local task; Time Taken: 2.036 sec.
+-------------+-------------+---------------------+
| emp.deptid | dept.name | avgsalary |
+-------------+-------------+---------------------+
| 10 | ACCOUNTING | 2916.6666666666665 |
| 20 | RESEARCH | 2175.0 |
+-------------+-------------+---------------------+
2 rows selected (31.071 seconds)
//退出beeline
!quit
//退出hiveserver2
Ctrl+c
【HIVE】hive的安装与使用教程的更多相关文章
- Hive on Spark安装配置详解(都是坑啊)
个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...
- Hive介绍、安装(转)
1.Hive介绍 1.1 Hive介绍 Hive是一个基于Hadoop的开源数据仓库工具,用于存储和处理海量结构化数据.它是Facebook 2008年8月开源的一个数据仓库框架,提供了类似于SQL语 ...
- Hadoop生态组件Hive,Sqoop安装及Sqoop从HDFS/hive抽取数据到关系型数据库Mysql
一般Hive依赖关系型数据库Mysql,故先安装Mysql $: yum install mysql-server mysql-client [yum安装] $: /etc/init.d/mysqld ...
- Hive介绍及安装
Hive介绍及安装 介绍: Hive是基于Hadoop的数据仓库解决方案.由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性. 简单来说 ...
- Hive环境的安装
hive是什么:hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能(HQL) hive有什么用 1.通过类SQL语句快速实现简单的Map ...
- [hive] hive 安装、配置
一.hive安装 1.官网下载 1.2.2版本 http://apache.fayea.com/hive/hive-1.2.2/ 2. 解压,此处目录为 /opt/hadoop/hive-1.2.2 ...
- Hive/hbase/sqoop的基本使用教程~
Hive/hbase/sqoop的基本使用教程~ ###Hbase基本命令start-hbase.sh #启动hbasehbase shell #进入hbase编辑命令 list ...
- Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)
Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本) Hive 安装依赖 Hadoop 的集群,它是运行在 Hadoop 的基础上. 所以在安装 Hive 之 ...
- 1.hive介绍及安装配置
1.Hive介绍 数据库OLTP 在线事务处理 数据仓库OLAP 在线分析处理 延迟高 类sql方式(HQL) 使用sql方式,用来读写,管理位于分布式存储系统上的大型数据集的数据仓库技术 hive是 ...
- Impala 安装笔记2一hive和mysql安装
l 安装hive,hive-metastore hive-server $ sudo yum install hive hive-metastore hive-server l 安装mysql ...
随机推荐
- ssh框架整合时的延迟加载问题(no session问题)的分析以及解决方案
当我们整合完三大框架,并采用hibernate的延迟加载方案时,会出现如下的异常: 现在对这个异常进行分析,如下图所示(模拟通过id查询用户信息的过程): 上图分析了为什么会出现no session的 ...
- GroupJoin()各参数的意义及用法
EF Core中GroupJoin的注释比较复杂: public static IEnumerable<TResult> GroupJoin<TOuter, TInner, TKey ...
- Awareness Kit让你的音乐APP脱颖而出,更懂用户,也更动人心
让你的音乐APP脱颖而出,更懂用户,也更动人心. 场景 情景感知服务能带来什么? 作为音乐发烧友,闲下来的时候总想打开App,享受沉浸在音乐中的放松.然而,App推荐的歌单经常没法满足我的需要,如 ...
- ArrayList扩容机制实探
ArrayList初始化 问题:执行以下代码后,这个list的列表大小(size)和容量(capacity)分别是多大? List<String> list = new ArrayList ...
- 设计模式之GOF23组合模式
组合模式Composite 使用组合模式的场景:把部分和整体的关系用树形结构表示,从而使客户端可以使用统一的方式处理对象和整体对象(文件和文件夹) 组合模式核心: -抽象构件(Component)角色 ...
- SQL 选择列 IF表达式,Contains表达式的用法
因为业务需要需要使用到, 列中的字段或根据列值是否满足某一条件,进行输出.比如类似与 select if() ……from……:(但是SQL Server 没有 if 表达式) 比如,如果Scor ...
- thread模块—Python多线程编程
Thread 模块 *注:在实际使用过程中不建议使用 thread 进行多线程编程,本文档只为学习(或熟悉)多线程使用. Thread 模块除了派生线程外,还提供了基本的同步数据结构,称为锁对象(lo ...
- CSS理论:margin-left在float中的运用
源码如下: margin-left 指的是左边的外边距,为正数时,左边间距增大,div向右偏移,为负数时,左边间距减少,相反往左偏移 双飞翼 .wrap { width: 100%; margin: ...
- python 利用 for ... else 跳出双层嵌套循环
背景 周末在写一个爬虫时,遇到这样一种场景:从搜索结果中下载指定数量的文件 例如:搜索结果中共分为10页展示,加起来一共50条数据,现在要做的是从50条数据中下载指定数量的数据 为了实现这个功能,开始 ...
- DIV+CSS布局的优势和弊端
DIV+CSS的优势1.符合W3C标准.这保证您的网站不会因为将来网络应用的升级而被淘汰.2.对浏览者和浏览器更具亲和力.由于CSS富含丰富的样式,使页面更加灵活性,它可以根据不同的浏览器,而达到显示 ...