一、Hive Serde

用于做序列化和反序列化,构建在数据存储和执行引擎之间,对二者实现解耦。
创建表的2种规则row format:delimited和serde,正则匹配

创建表:

CREATE TABLE logtbl (host STRING,identity STRING,t_user STRING,time STRING,request STRING,referer STRING,agent STRING)ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'WITH SERDEPROPERTIES ("input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) \\[(.*)\\] \"(.*)\" (-|[0-9]*) (-|[0-9]*)")STORED AS TEXTFILE;

案例:数据清洗ETL
数据源:

192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /bg-upper.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /bg-nav.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /asf-logo.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /bg-button.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /bg-middle.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET / HTTP/1.1" 200 11217
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET / HTTP/1.1" 200 11217
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /tomcat.css HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /tomcat.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /asf-logo.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /bg-middle.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /bg-button.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /bg-nav.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /bg-upper.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET / HTTP/1.1" 200 11217
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /tomcat.css HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /tomcat.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET / HTTP/1.1" 200 11217
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /tomcat.css HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /tomcat.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /bg-button.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:36 +0800] "GET /bg-upper.png HTTP/1.1" 304 -

定义读写规则,只读 [] 和“”中的。

([^ ]*) ([^ ]*) ([^ ]*) \\[(.*)\\] \"(.*)\" (-|[0-9]*) (-|[0-9]*)
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /bg-upper.png HTTP/1.1" 304 -
192.168.57.4 - - [29/Feb/2016:18:14:35 +0800] "GET /bg-nav.png HTTP/1.1" 304 -
对照正则表达式分析:([^ ]*)所有的都得非空\\[(.*)\\]只读[]里的数据\"(.*)\"匹配双引号内的数据读出来(-|[0-9]*)匹配数据0-9

将数据导入到logtbl表中:

hive> load data local inpath '/root/log' into table logtbl;

此时 插叙logtbl表,[]和“”都已经被清洗干净了。但是load的时候导入到hdfs中的数据( hdfs dfs -cat /user/hive/warehouse/logtbl/*
),[]和“”还在。因为我们只是定义了读写规则,读的时候把数据摘干净了。

Hive对数据的正确性检查,是读时检查。

二、Hive Beeline(默认不验证用户名、密码)

Beeline是命令行的另一种连接工具,和HiveServer2一起使用。beeline通过10000端口连接Server
Client通过beeline连接hive的2种方式:

#localhost就是服务端node3,default就是用的哪个数据库
1、beeline -u jdbc:hive2://localhost:10000/default -n root
2、beeline
beeline> !connect jdbc:hive2://<host>:<port>/<db>;auth=noSasl root 123

服务端启动HiveServer2:hiveserver2

客户端连接beeline方式1:

[root@node4 conf]# beeline -u jdbc:hive2://node3:10000 -n root

查看tables:

0: jdbc:hive2://node3:10000> show tables;
+-----------+--+
| tab_name  |
+-----------+--+
| logtbl    |
| psn0      |
| psn2      |
| psn3      |
| psn4      |
| psn5      |
| psnjg     |
| tbl       |
+-----------+--+
8 rows selected (7.789 seconds)

退出beeline:!quit
客户端连接beeline方式2:

beeline
beeline> !connect jdbc:hive2://node3:10000 root 123

三、JDBC

JDBC运行方式:服务端启动hiveserver2后,在java代码中通过调用hive的jdbc访问默认端口10000进行连接、访问。

Hive Serde、Beeline、JDBC相关推荐

  1. Hive 03_DML、SerDe、Beeline、JDBC

    Hive DML --LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1 ...

  2. Apache Hive 2.1.1 安装配置超详细过程,配置hive、beeline、hwi、HCatalog、WebHCat等组件...

    2019独角兽企业重金招聘Python工程师标准>>> 在Docker环境成功搭建了Apache Hadoop 2.8 分布式集群,并实现了NameNode HA.ResourceM ...

  3. 【干货】Apache Hive 2.1.1 安装配置超详细过程,配置hive、beeline、hwi、HCatalog、WebHCat等组件...

    在Docker环境成功搭建了Apache Hadoop 2.8 分布式集群,并实现了NameNode HA.ResourceManager HA之后(详见我的另一篇博文:Apache Hadoop 2 ...

  4. hive、impala的客户端,cli、beeline、WebHCat

    连接hive有2种形式,hive cli 和 beeline hive提供了以表的形式访问hdfs文件的功能,metastore对外提供表的元数据信息.有了元数据,就可以结构化的表的形式访问hdfs上 ...

  5. hive CLI、hwi、beeline、hiveserver、hiveserver2之间的关系

    一.hiveserver和hiveserver2 概述:这两个都是hive的一个服务,为了给外部的应用提供一个访问hive的通道.hiveserver2是hiveserver的一个升级版,由于hive ...

  6. Hive、Beeline、Spark-SQL、Spark-Shell CLI使用

    文章目录 1 Hive 2 Beeline 3 Spark-SQL 4 Spark-Shell 1 Hive [root@hqc-test-hdp1 ~]# su hdfs [hdfs@hqc-tes ...

  7. Hive 客户端 Beeline 、IDEA|Eclipse使用JDBC连接hiveserver2

    1.Beline Beeline 要与HiveServer2配合使用 服务端启动hiveserver2 客户的通过beeline两种方式连接到hive a.beeline -u jdbc:hive2: ...

  8. 大数据_——利用hive仓库模拟数据进行日活、日新、留存数据的分析统计(详细代码步骤)

    开启服务的方式连接hive: bin/beeline!connect jdbc:hive2://localhost:10000 假如有一个web系统,每天生成以下日志文件: 2017-09-15号的数 ...

  9. 6、HIVE JDBC开发、UDF、体系结构、Thrift服务器、Driver、元数据库Metastore、数据库连接模式、单/多用户模式、远程服务模式、Hive技术原理解析、优化等(整理的笔记)

    目录: 5 HIVE开发 5.1 Hive JDBC开发 5.2 Hive UDF 6 Hive的体系结构 6.2 Thrift服务器 6.3 Driver 6.4 元数据库Metastore 6.5 ...

最新文章

  1. oracle数据导出方法,oracle多种导入导出数据方法
  2. ASCII码表完整版
  3. Java提高班(一)Thread详解
  4. Java静态代理、动态代理与CGLib代理
  5. nohup 带参数_广州市西门子两通阀VVF42.40-25C+SKD62带断电
  6. VTK:单元格内部对象CellsInsideObject用法实战
  7. 数组常用方法归纳源代码
  8. 【HDU - 1281 】棋盘游戏 (经典的二分图匹配,匈牙利算法,枚举删除顶点,必须边,关建边)
  9. xgboost算法_工业大数据:分析算法
  10. leetcode44:wildcard
  11. linux+多路复用socket,socket的select_多路复用
  12. 设置DIV块元素在浏览器页面中垂直居中
  13. openwrt 添加luci选项
  14. Map转JSON内容解释
  15. php单页搜索引擎小偷,PIGO mini php搜索小偷 v2.0 正式版
  16. Excel将两个图片合并为一张
  17. 联想小新Pro 13新款笔记本电脑获TUV莱茵低蓝光认证
  18. GameCenter首次登录很慢的解决方案
  19. 骑士cms任意代码执行(CVE-2020-35339)
  20. 自动化测试 selenium 模块 webdriver使用

热门文章

  1. 36岁自学python_Python语言基础
  2. python保存图片到指定路径_python将处理好的图像保存到指定目录下的方法
  3. Redis持久化存储详解(一)
  4. Jupyter on Kubernetes机器学习-MLflow
  5. 主营无线部件 高通与TDK创立合资公司
  6. random.nextint()
  7. wiquery ManipulatingHelper
  8. HTML5学习笔记简明版(2):新元素之section,article,aside
  9. 推荐一个ASP的内容管理框架(ASP Nuke)
  10. python之xlrd、xlwt学习