- 查看namenode活跃状态:
$ bin/hdfs haadmin -getServiceState nn1
$ bin/hdfs haadmin -getServiceState nn2
- 查看resourcemanager的活跃状态
$ bin/yarn rmadmin -getServiceState rm1
$ bin/yarn rmadmin -getServiceState rm2
01. Hive创建表的方式
- 使用create命令创建一个新表
create table if not exists db_web_data.track_log(字段)
partitioned by (date string,hour string)
row format delimited fields terminated by '\t';
- 把一张表的某些字段抽取出来,创建成一张新表
create table backup_track_log as select * from db_web_data.track_log;
尖叫提示:会复制属性以及属性值到新的表中
- 复制表结构
create table like_track_log like db_web_data.track_log;
尖叫提示:不会复制属性值,只会复制表结构。
02. Hive表导入数据方式
- 本地导入
load data local inpath 'local_path/file' into table 表名称 ;
- HDFS导入
load data inpath 'hdfs_path/file' into table 表名称 ;
- 覆盖导入
load data local inpath 'path/file' overwrite into table 表名称 ;
load data inpath 'path/file' overwrite into table 表名称 ;
- 查询导入
create table track_log_bak as select * from db_web_data.track_log;
- insert导入
- 追加-append-默认方式
insert into table 表名 select * from track_log;
- 覆盖-overwrite-显示指定-使用频率高
insert overwrite table 表名 select * from track_log;
- 追加-append-默认方式
03. Hive表导出数据方式
- 本地导出
insert overwrite local directory "/home/admin/Desktop/1/2" row format delimited fields terminated by '\t' select * from db_hive_demo.emp ;
尖叫提示:会递归创建目录
- HDFS导出
insert overwrite diretory "path/" select * from staff;
- Bash shell覆盖追加导出
$ bin/hive -e "select * from staff;" > /home/z/backup.log
- Sqoop
04. Hive数据清洗之思路
- 需求:实现按照省份和日期统计PV和UV
SELECT date, provinceId, count(url) pv, count(distinct guid) uv from track_log group by date, provinceId;
见代码
05. Hive自动化处理日志
- 需求:网站产生的日志会按照某个日期分类的文件夹存储,定期分析该日志,产出结果
/opt/modules/weblog- -20170724(文件夹)
- -2017072418(日志文件)
- -2017072419
- -20170725
- -2017072518(日志文件)
- -2017072619
- -20170724(文件夹)
06. Hive中的几种排序
- order by:全局排序,就一个Reduce
- sort by:相当于对每一个Reduce内部的数据进行排序,不是全局排序。
- distribute by :类似于MRpartition, 进行分区,一般要结合sort by使用。
- cluster by: 当distribute和sort字段相同时,就是cluster by