hive元数据表结构解析 1 存储Hive版本的元数据表(VERSION)VER_IDSCHEMA_VERSIONVERSION_COMMENTID主键Hive版本版本说明10.13.0Set by MetaStore如果该表出现问题,根本进入不了Hive-Cli。比如该表不存在,当启动Hive-
hive分桶 hive分桶和抽样查询1.概念桶是比表或分区更为细粒度的数据范围划分。针对某一列进行桶的组织,对列值哈希,然后除以桶的个数求余,决定将该条记录存放到哪个桶中。物理上,一个桶就是表(或分区)目录里的一个文件。桶对应于MapReduce的输出文件分区:一个作业产生的桶(输出文件)和reduce任务个数相同2.创建语句create table bucketed_user(id int
mr的shuffle过程 Map TaskMap Task产生输出的时候,并不是直接将数据写到本地磁盘,这个过程涉及到两个部分:写缓冲区、预排序。(1)写缓冲区每一个Map Task都拥有一个“环形缓冲区”作为Mapper输出的写缓冲区。写缓冲区大小默认为100MB(通过属性io.sort.mb调整),当写缓冲区的数据量达到一定的容量限额时(默认为80%,通过属性io.sort.spill.percent调整)
hadoop要点 (1)hadoop小文件影响效率原因:小文件是指文件size小于HDFS上block大小的文件。这样的文件会给hadoop的扩展性和性能带来严重问题。首先,在HDFS中,任何block,文件或者目录在内存中均以对象的形式存储,每个对象约占150byte,如果有1000 0000个小文件,每个文件占用一个block,则namenode大约需要2G空间。如果存储1亿个文件,则namenod
sed用法 sed命令使用:[root@www ~]# sed [-nefr] [动作]选项与参数:-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。-e :直接在命令列模式上进行 sed 的动作编辑;-f :直接将 sed 的动作写在一个
awk用法 awk命令使用(1)cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'(2)ls -l |awk 'BEGIN {size=0;} {size=size+$5;} END{print "[end]size is ", size}'
hive常用语句 1.导入有分区的数据:oracle语句select * from xx partition("FMLG_PART_${dateStr:0:6}") where \$CONDITIONS "2.增量导入关系型数据库orcle的where语句表达式select * from xx WHERE D_UPDATE >= to_date('20170423','yyyymmdd')
shell笔记 1.坑:初始化时候注意oracle中更新字段值为空的10,15g/^/s//\#/awk '{print $0","}' test.txtcat test.txt|grep -v ^\'|awk '{print $1}'|awk '{print $0","}'|xargs坑:初始化时候注意oracle中更新字段值为空的10,15g/^/s//\#/awk '{print $