Apache Hive处理数据示例
继上一篇文章介绍如何使用Pig处理HDFS上的数据,本文将介绍使用Apache Hive进行数据查询和处理。
Apache Hive简介
- 首先Hive是一款数据仓库软件
- 使用HiveQL来结构化和查询存放的数据
- 执行环境:MapReduce, Tez, Spark
- 数据存放:HDFS, HBase
- 使用场景:数据挖掘和分析,机器学习,即席查询等
Hive使用示例
- 还是使用passwd作为操作文件
beeline> !quit
[cloudera@quickstart ~]$ hdfs dfs -put /etc/passwd /tmp/
[cloudera@quickstart ~]$ hdfs dfs -ls /tmp/
Found 5 items
drwxrwxrwt - mapred mapred 0 2016-12-29 01:05 /tmp/hadoop-yarn
drwx-wx-wx - hive supergroup 0 2016-08-27 10:19 /tmp/hive
drwxrwxrwt - mapred hadoop 0 2016-08-10 14:37 /tmp/logs
-rw-r--r-- 1 cloudera supergroup 2559 2017-02-22 05:34 /tmp/passwd
- 使用beeline连接Hive
[cloudera@quickstart ~]$ beeline -u jdbc:hive2://
scan complete in 24ms
Connecting to jdbc:hive2://
Connected to: Apache Hive (version 1.1.0-cdh5.8.0)
Driver: Hive JDBC (version 1.1.0-cdh5.8.0)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.1.0-cdh5.8.0 by Apache Hive
0: jdbc:hive2://>
- 建表并且插入数据
0: jdbc:hive2://> CREATE TABLE userinfo ( uname STRING, pswd STRING, uid INT, gid INT, fullname STRING, hdir STRING, shell STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ':' STORED AS TEXTFILE;
0: jdbc:hive2://> LOAD DATA INPATH '/tmp/passwd' OVERWRITE INTO TABLE userinfo;
0: jdbc:hive2://> select uname,fullname,hdir from userinfo order by unmame;
MapReduce Jobs Launched:
Stage-Stage-1: Map: 1 Reduce: 1 Cumulative CPU: 27.83 sec HDFS Read: 8767 HDFS Write: 1454 SUCCESS
Total MapReduce CPU Time Spent: 27 seconds 830 msec
OK
+----------------+-------------------------------+-------------------------------+--+
| uname | fullname | hdir |
+----------------+-------------------------------+-------------------------------+--+
| abrt | | /etc/abrt |
| adm | adm | /var/adm |
| apache | Apache | /var/www |
| avahi-autoipd | Avahi IPv4LL Stack | /var/lib/avahi-autoipd |
| bin | bin | /bin |
| cloudera | | /home/cloudera |
| cloudera-scm | Cloudera Manager | /var/lib/cloudera-scm-server |
...
总结
- 使用beeline进行对Hive交互访问,类似于sqlplus之于Oracle数据库
- 其它的交互工作好包括:Hive CLI, Hcatalog, WebHcat
- 相应的DDL, DML语法可以参考官方WIKI
Apache Hive处理数据示例的更多相关文章
- Apache Pig处理数据示例
Apache Pig是一个高级过程语言,可以调用MapReduce查询大规模的半结构化数据集. 样例执行的环境为cloudera的单节点虚拟机 读取结构数据中的指定列 在hdfs上放置一个文件 [cl ...
- 【大数据系列】apache hive 官方文档翻译
GettingStarted 开始 Created by Confluence Administrator, last modified by Lefty Leverenz on Jun 15, 20 ...
- 从MySQL到Hive,数据迁移就这么简单
使用Sqoop能够极大简化MySQL数据迁移至Hive之流程,并降低Hadoop处理分析任务时的难度. 先决条件:安装并运行有Sqoop与Hive的Hadoop环境.为了加快处理速度,我们还将使用Cl ...
- Hive 官方手册翻译 -- Hive DDL(数据定义语言)
Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...
- 系统解析Apache Hive
Apache Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供一种HQL语言进行查询,具有扩展性好.延展性好.高容错等特点,多应用于离线数仓建设. 1. ...
- 【java】org.apache.commons.lang3功能示例
org.apache.commons.lang3功能示例 package com.simple.test; import java.util.Date; import java.util.Iterat ...
- Hive[4] 数据定义 HiveQL
HiveQL 是 Hive 查询语言,它不完全遵守任一种 ANSI SQL 标准的修订版,但它与 MySQL 最接近,但还有显著的差异,Hive 不支持行级插入,更新和删除的操作,也不支持事务,但 H ...
- 使用Sqoop从mysql向hdfs或者hive导入数据时出现的一些错误
1.原表没有设置主键,出现错误提示: ERROR tool.ImportTool: Error during import: No primary key could be found for tab ...
- Apache Hive 基本理论与安装指南
一.Hive的基本理论 Hive是在HDFS之上的架构,Hive中含有其自身的组件,解释器.编译器.执行器.优化器.解释器用于对脚本进行解释,编译器是对高级语言代码进行编译,执行器是对java代码的执 ...
随机推荐
- Shell 脚本进阶2
1.查询系统基础情况脚本 #!/bin/bash # 系统状态查询脚本 # 输出系统基本信息 # # 系统版本 SYSTEM_VERSION=`cat /etc/redhat-release` # 主 ...
- java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie解决方法
当项目中使用单点登录功能时,通常会使用cookie进行信息的保存,这样就可以在多个子域名上存取用户信息. 比如有三个domain分别为test.com,cml.test.com,b.test.com这 ...
- img 兼容问题 css图片与图片之间总是会存在缝隙
解决方案: 法宝一:定义图片img标签vertical-align:bottom,vertical-align:middle,vertical-align:top. img{vertical-alig ...
- ERROR 1666 (HY000): Cannot execute statement: impossible to write to binary log since statement is in row format and BINLOG_FORMAT = STATEMENT.
centos7.5 binlog恢复数据失败 问题: mysql> \. /tmp/inc.sql ERROR 1050 (42S01): Table 'new_1' already exist ...
- linux(centos)测试带宽
1.安装speedtest-cli speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行.它基于Speedtest.net的基础架 ...
- 【BZOJ1485】有趣的数列
Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<…&l ...
- struts2学习笔记(一)
配置文件web.xml和struts.xml web.xml <?xml version="1.0" encoding="UTF-8"?> < ...
- java servlet练习测试
步骤: 0.首先创建web project,工程名:test_servlet 1.编写Servlet,TestServlet.java文件内容: package com.ouyang.servlet; ...
- Java基础恶补——内存泄露、内存溢出
http://blog.csdn.net/wisgood/article/details/16818243
- 为什么会出现container、injection技术?发展历史及未来发展趋势
container 原因: 随着软件开发的发展,相比于早期的集中式应用部署方式,现在的应用基本都是采用分布式的部署方式,一个应用可能包含多种服务或多个模块,因此多种服务可能部署在多种环境中,如虚拟服务 ...