总文件大小约300M,提前设置好mapper和reducer处理数据的大小。
set hive.cli.print.header=true;
set mapred.max.split.size=80000000;
set mapred.min.split.size.per.node=80000000;
set mapred.min.split.size.per.rack=80000000;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set hive.exec.reducers.bytes.per.reducer = 80000000;
set mapred.reduce.tasks = 15;
一直没有机会对hive的各个优化一个系统的试验,借着空闲,通过实例好好研究下hive的操作及一些优化方法;
遇到了大量问题,问题我会在文中注明;持续更新,不断补充:
数据来源
数据来源于美国交通运输统计局,链接如下:
https://www.transtats.bts.gov/DL_SelectFields.asp?Table_ID=236&DB_Short_Name=On-Time
数据是关于与美国各个航班航班号,机型,延误时间,延误原因的统计,数据格式csv,下面是主要包含的列:
FL_DATE航班时间
TAIL_NUM机型号
ORIGIN_AIRPORT_ID出发地机场代号
ORIGIN_CITY_NAME出发城市名
DEST_AIRPORT_ID到达地机场代号
DEST_CITY_NAME到达地城市名
CRS_DEP_TIME计划出发时间
DEP_TIME实际出发时间
DEP_DELAY出发延误
CRS_ARR_TIME计划到达时间
ARR_TIME实际到达时间
ARR_DELAY到达延误
CANCELLED是否取消
DIVERTED是否中转
建表语句
create database 19q1_DB location "/HiveTestDB/19q1_DB";
use 19q1_DB;
create external table 19q1_TBL(
FL_DATE string,
TAIL_NUM string,
OP_CARRIER_FL_NUM string,
ORIGIN_AIRPORT_ID string,
ORIGIN_AIRPORT_SEQ_ID string,
ORIGIN_CITY_MARKET_ID string,
ORIGIN string,
ORIGIN_CITY_NAME string,
DEST_AIRPORT_ID string,
DEST_AIRPORT_SEQ_ID string,
DEST_CITY_MARKET_ID