hive使用指南
创建库:create database base_name;
创建内/外部表:
CREATE EXTERNAL TABLE t_lxw1234 ( id INT, ip STRING COMMENT ‘访问者IP’, avg_view_depth DECIMAL(5,1), bounce_rate DECIMAL(6,5) ) COMMENT ‘lxw的大数据田地-lxw1234.com’ PARTITIONED BY (day STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ STORED AS textfile LOCATION ‘hdfs://cdh5/tmp/lxw1234/'; 关键字EXTERNAL: 表示该表为外部表,如果不指定EXTERNAL关键字,则表示内部表 关键字COMMENT 为表和列添加注释 关键字PARTITIONED BY 表示该表为分区表,分区字段为day,类型为string 关键字ROW FORMAT DELIMITED 指定表的分隔符,通常后面要与以下关键字连用: FIELDS TERMINATED BY ‘,’ //指定每行中字段分隔符为逗号 LINES TERMINATED BY ‘\n’ //指定行分隔符 COLLECTION ITEMS TERMINATED BY ‘,’ //指定集合中元素之间的分隔符 MAP KEYS TERMINATED BY ‘:’ //指定数据中Map类型的Key与Value之间的分隔符 举个例子: create table score(name string, score map<string,int>) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t’ COLLECTION ITEMS TERMINATED BY ‘,’ MAP KEYS TERMINATED BY ‘:'; 要加载的文本数据为: biansutao ‘数学':80,’语文':89,’英语':95 jobs ‘语文':60,’数学':80,’英语':99 关键字STORED AS 指定表在HDFS上的文件存储格式,可选的文件存储格式有: TEXTFILE //文本,默认值 SEQUENCEFILE // 二进制序列文件 RCFILE //列式存储格式文件 Hive0.6以后开始支持 ORC //列式存储格式文件,比RCFILE有更高的压缩比和读写效率,Hive0.11以后开始支持 PARQUET //列出存储格式文件,Hive0.13以后开始支持 关键词LOCATION 指定表在HDFS上的存储位置。
分区设置:
创建表时指定分区:
CREATE EXTERNAL TABLE t_lxw1234 ( id INT, ip STRING COMMENT ‘访问者IP’, avg_view_depth DECIMAL(5,1), bounce_rate DECIMAL(6,5) ) COMMENT ‘lxw的大数据田地-lxw1234.com’ PARTITIONED BY (month STRING, day STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ STORED AS textfile;
使用INSERT添加分区:
往分区中追加数据: INSERT INTO TABLE t_lxw1234 PARTITION (month = ‘2015-06′,day = ‘2015-06-15′) SELECT * FROM dual; 覆盖分区数据: INSERT overwrite TABLE t_lxw1234 PARTITION (month = ‘2015-06′,day = ‘2015-06-15′) SELECT * FROM dual; 使用ALTER TABLE添加分区: ALTER TABLE t_lxw1234 ADD PARTITION (month = ‘2015-06′,day = ‘2015-06-15′) location ‘hdfs://namenode/tmp/lxw1234/month=2015-06/day=2015-06-15/';
删除分区
可以使用 ALTER TABLE t_lxw1234 DROP PARTITION (month = ‘2015-01’, day = ‘2015-01-25’);
动态分区:http://lxw1234.com/archives/2015/06/286.htm
加载数据:
1.建表时候直接指定:
如果你的数据已经在HDFS上存在,已经为结构化数据,并且数据所在的HDFS路径不需要维护,那么可以直接在建表的时候使用location指定数据所在的HDFS路径即可。
CREATE [EXTERNAL] TABLE t_lxw1234 ( day STRING, url STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' stored as textfile location '/tmp/lxw1234/';
这里内部表和外部表都可以指定,但需要注意,如果是内部表,那么在DROP该表的时候,同时会将LOCATION所指定的目录一起删除。
2 从本地文件系统或者HDFS的一个目录中加载
如果数据在本地,或者HDFS的某一个目录下,需要加载到目标中或分区中,那么使用LOAD DATA命令即可加载数据: 加载本地文件 LOAD DATA LOCAL INPATH ‘/home/lxw1234/t_lxw1234/’ INTO TABLE t_lxw1234 PARTITION (day = ‘2015-06-15’); 加载HDFS文件 LOAD DATA INPATH ‘/user/lxw1234/t_lxw1234/’ INTO TABLE t_lxw1234 PARTITION (day = ‘2015-06-15’);
3 从一个子查询中加载数据
这个比较简单,就是将一个查询结果插入到目标表或分区中: INSERT overwrite TABLE t_lxw1234 PARTITION (day = ‘2015-06-15’) SELECT day,url from source_table;
4 导出Hive中的数据到文件系统
如果指定了LOCAL关键字,则为导出到本地文件系统,否则,导出到HDFS。使用ROW FORMAT关键字可以指定导出的文件分隔符,比如:
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/lxw1234/' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' SELECT * FROM t_lxw1234;
摘自:http://lxw1234.com/archives/category/hive/page/3
权限操作:
创建角色 CREATE ROLE ROLE_NAME
删除角色: DROP ROLE ROLE_NAME
把role_test1角色授权给jayliu用户,命令如下 grant role role_test1 to user jayliu;
查看jayliu用户被授权的角色,命令如下: SHOW ROLE GRANT user jayliu;
取消jayliu用户的role_test1角色,操作命令如下: revoke role role_test1 from user jayliu;
把某个库的所有权限给一个角色,角色给用户!
grant all on database user_lisi to role role_lisi;
把某个库的权限直接给用户!grant ALL ON DATABASE USER_LISI TO USER lisi;
收回权限 revoke ALL on database default from user lisi;
查看用户对数据看的权限 show grant user lisi on database user_lisi;
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
借助Beats快速搭建可视化运维系统
题记:本例实现了一个对个人PC的可视化运维dashboard。拓展至N个节点的集群也同理可以实现。对于个人或者企业而言,约等于0成本的对接,将一步迈入可视化运维监控的阶段。 背景介绍 Beats 平台集合了多种单一用途数据采集器。这些采集器安装后可用作轻量型代理,从成百上千或成千上万台机器向 Logstash 或 Elasticsearch 发送数据。Metricbeat是一个轻量级的指标采集器,用于从系统和服务收集指标。从 CPU 到内存,从 Redis 到 Nginx,Metricbeat 能够以一种轻量型的方式,输送各种系统和服务统计数据。这篇文章向用户演示,如何使用Metricbeat采集一台Mac电脑的指标信息,投递到阿里云Elasticsearch(以下统称‘阿里云ES’)上,并且在Kibana中生成对应dashborar
- 下一篇
【南京Meetup】不断迭代,严苛细节,最终性能如何满足? 基于ELK的大数据平台实践分享
在2018年Elastic Meetup 南京交流会中,来自云利来科技的涂海波为现场的听众带来了题为《南京云利来基于ELK的大数据平台》的精彩分享。在本次分享中,他首先进行了公司简介,然后介绍了数据分类,包括数据采集及数据类型等;然后重点阐述了运维之路,最后进行了告警分析。阿里云Elasticsearch 1核2G首月免费试用,开始云上实践吧直播视频请点击PPT下载请点击以下内容根据现场分享整理而成。 南京云利来有限公司主要专注于以下三个方面:实时网络使用分析,具备世界领先20Gbps分析能力;为数据中心搭建大数据分析平台,数据中心主要是给运维团队、安全团队和开发团队做跨部门协作;提供智能运维、网络安全和预警分析能力。产品主要应用的行业包括电商、政府、证券等。 数据分类 数据采集 数据采集主要分为网络类和日志类。网络类主要为旁路部署,用小
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- 设置Eclipse缩进为4个空格,增强代码规范
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7,8上快速安装Gitea,搭建Git服务器