大数据面试题:hive数据导入
1.hive数据导入
load data inpath '/hadoop/guozy/data/user.txt' into table external_table;
此处是移动(非复制),移动数据非常快,不会对数据是否符合定义的Schema做校验,这个工作通常在读取的时候进行(即Schema on Read)
2.内部表与外部表的不同
1)创建外部表需要添加 external 字段。而内部表不需要。
2)删除外部表时,HDFS中的数据文件不会一起被删除。而删除内部表时,表数据及HDFS中的数据文件都会被删除。
3)内部表与外部表如果不指定location,默认使用hive.metastore.warehouse.dir指定的路径
3. Sort By、Order By、Cluster By,Distribute By,group by
order by:会对输入做全局排序,因此\只有一个reducer**(多个reducer无法保证全局有序)。只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。
distribute by:按照指定的字段对数据进行划分输出到不同的reduce中(单纯的分散数据)。
sort by:局部排序,sort by只是确保每个reduce上面输出的数据有序,当只有一个reduce时,也变成全局排序
cluster by:当distribute by 和 sort by 所指定的字段相同时,即可以使用cluster by
group By Key算子的功能固定,只能输出相同key值的序列,reduceByKey适用于分组排序过程中有数据聚合操作(sum)的情形,在其他场景下可能不适用。
受限于reduce数量,设置reduce参数mapred.reduce.tasks 输出文件个数与reduce数相同,文件大小与reduce处理的数据量有关,网络负载过重 数据倾斜,优化参数hive.groupby.skewindata为true,会启动一个优化程序,避免数据倾斜。更多关于大数据培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。