#!/bin/bash
#需要指定hive中的库名 #set -x
set -e DB=$1 if [ -z $1 ];then
echo “Usage:$0 DbName”
exit 1
fi #注释掉cron对应的计划任务
row=$(sed -n '/sjob_exec.sh/=' /etc/crontab)
sed -i "$row s/^/#/" /etc/crontab #获取hive表定义
ret=$(sudo -u hdfs hive -e "use ${DB};show tables;"|grep -v _tmp|grep -v importinfo) for tem in $ret;
do
echo ${tem}
sudo -u hdfs hive -e "use ${DB};drop table ${tem}_tmp"
sudo -u hdfs hive -e "use ${DB};create table ${tem}_tmp_1 as select * from ${tem}"
sudo -u hdfs hive -e "use ${DB};alter table ${tem} rename to ${tem}_tmp"
sudo -u hdfs hive -e "use ${DB};alter table ${tem}_tmp_1 rename to ${tem}"
done impala-shell -q 'invalidate metadata' -i hslave1 #恢复对应的cron任务
row=$(sed -n '/sjob_exec.sh/=' /etc/crontab)
sed -i "$row s/#//" /etc/crontab

通过创建临时表合并某一个库的hive小文件的更多相关文章

  1. GIT 如何合并另一个远程Git仓库的文件到本地仓库里某个指定子文件夹并不丢失远程提交记录?

    问题背景:     最近在重新整理手中的一个项目,目前该项目分为PC项目,手机项目,某第三方接口项目,第三方接口服务项目和手机项目     因为之前规划的原因,原来的四个项目是分两个解决方案来管理的 ...

  2. hive小文件合并设置参数

    Hive的后端存储是HDFS,它对大文件的处理是非常高效的,如果合理配置文件系统的块大小,NameNode可以支持很大的数据量.但是在数据仓库中,越是上层的表其汇总程度就越高,数据量也就越小.而且这些 ...

  3. select into tb_temp2 from tb_temp1 创建临时表实现上一个、下一个功能,使用完毕就删除临时表

    好久没有写过Sql了,今天遇到一个问题,业务逻辑是: 一个商品可以属于多个分类,在显示商品详情的时候,要求可以点击“上一个”,“下一个” 查看和该商品在同一个分类下的其他商品,商品具有排序号. 这样我 ...

  4. 通过创建临时表合并hive小文件

    #!/bin/bash #set -x DB=$1 #获取hive表定义 ret=$(hive -e "use ${DB};show tables;"|grep -v _es|gr ...

  5. mysql 5.7多源复制(用于生产库多主库合并到一个查询从库)

    目前我们使用的是主从+分库分表的系统架构,主库有N个分库,从库为多个slave做负载均衡,所以数据库端的架构是下面这样的: 因为差不多有一年半没有专门搞技术为主了,顺带回顾下. 这就涉及到多个主库数据 ...

  6. 【MS SQL】把多个数据库合并为一个新的数据库

    原文:[MS SQL]把多个数据库合并为一个新的数据库 因应工作要求,需要把两个数据库合并成一个库: 一开始使用"导入数据.导出数据和复制数据库"三个工具时,没有达到要的效果. 后 ...

  7. Hadoop MapReduce编程 API入门系列之小文件合并(二十九)

    不多说,直接上代码. Hadoop 自身提供了几种机制来解决相关的问题,包括HAR,SequeueFile和CombineFileInputFormat. Hadoop 自身提供的几种小文件合并机制 ...

  8. 合并hive/hdfs小文件

    磁盘: heads/sectors/cylinders,分别就是磁头/扇区/柱面,每个扇区512byte(现在新的硬盘每个扇区有4K) 文件系统: 文件系统不是一个扇区一个扇区的来读数据,太慢了,所以 ...

  9. Spark:spark df插入hive表后小文件数量多,如何合并?

    在做spark开发过程中,时不时的就有可能遇到租户的hive库目录下的文件个数超出了最大限制问题. 一般情况下通过hive的参数设置: val conf = new SparkConf().setAp ...

随机推荐

  1. 01c++学习

    #include"iostream" using namespace std; void main01() { //printf("hello_world\n" ...

  2. e的故事.一个常数的传奇 (Eli Maor 著)

    第1章 约翰*纳皮尔 (已看) 第2章 认知 (已看) 对数运算 第3章 财务问题 (已看) 第4章 若极限存在,则达之 (已看) 一些与e有关的奇妙的数 第5章 发现微积分的先驱 (已看) 第6章 ...

  3. Promise实例的then方法

  4. JavaScript模板引擎Template.js使用详解

    这篇文章主要为大家详细介绍了JavaScript模板引擎Template.js使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   template.js 一款 JavaScript 模板引 ...

  5. less 引用阿里巴巴字体图标的线上地址

    @import url("//at.alicdn.com/t/font_546826_wghayhobtn.css");

  6. Day 01 计算机组成和操作系统

    一.编程与编程语言 1.什么是语言?什么是编程语言? 答:语言是一种事物与另一种事物沟通的介质. 编程语言是程序员与计算机沟通的介质. 2.什么是编程? 答:程序员把自己想要让计算机做的事用编程语言表 ...

  7. OpenCV几种访问cv::Mat数据的方法

    一般来说,如果是遍历数据的话用指针ptr比用at要快.特别是在debug版本下.因为debug中,OpenCV会对at中的坐标检查是否有溢出,这是非常耗时的. 代码如下 #include <op ...

  8. java 标准输入输出System.in与System.out

    System.in System.in 是 InputStream 类的实例对象,该对象的创建是由本地(native)方法完成的. public static final InputStream in ...

  9. Android 单元测试覆盖率计算

    在工程下面的build.gradle 增加配置 1.增加Plugin apply plugin: 'jacoco' 2. 增加jacoco版本 jacoco{ version "0.7.4. ...

  10. C# 打印、输入和for循环的使用

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...