#!/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 &quo…
问题背景:     最近在重新整理手中的一个项目,目前该项目分为PC项目,手机项目,某第三方接口项目,第三方接口服务项目和手机项目     因为之前规划的原因,原来的四个项目是分两个解决方案来管理的     PC解决方案: #PC解决方案,2015年从Vss迁移到Git 一共三个项目 #F:\WWW\F.COM\WWW Flight.sln Flight.suo Web #PC项目 Qr #第三方接口项目 2015年新增项目,也使用PC解决方案但用分支进行管理,维护单独的通用项目,目前已经将通用…
Hive的后端存储是HDFS,它对大文件的处理是非常高效的,如果合理配置文件系统的块大小,NameNode可以支持很大的数据量.但是在数据仓库中,越是上层的表其汇总程度就越高,数据量也就越小.而且这些表通常会按日期进行分区,随着时间的推移,HDFS的文件数目就会逐渐增加.   小文件带来的问题   关于这个问题的阐述可以读一读Cloudera的这篇文章.简单来说,HDFS的文件元信息,包括位置.大小.分块信息等,都是保存在NameNode的内存中的.每个对象大约占用150个字节,因此一千万个文件…
好久没有写过Sql了,今天遇到一个问题,业务逻辑是: 一个商品可以属于多个分类,在显示商品详情的时候,要求可以点击“上一个”,“下一个” 查看和该商品在同一个分类下的其他商品,商品具有排序号. 这样我就开始写了第一个sql: select top 1 ROW_NUMBER() over(order by p_order asc) as sno,* from dbo.App_Product where p_id in( select p_id from App_ProductTypeRelatio…
#!/bin/bash #set -x DB=$1 #获取hive表定义 ret=$(hive -e "use ${DB};show tables;"|grep -v _es|grep -v _hb|grep -v importinfo) for tem in $ret; do echo ${tem}_tmp hive -e "use ${DB};drop table ${tem}_tmp" hive -e "use ${DB};create table…
目前我们使用的是主从+分库分表的系统架构,主库有N个分库,从库为多个slave做负载均衡,所以数据库端的架构是下面这样的: 因为差不多有一年半没有专门搞技术为主了,顺带回顾下. 这就涉及到多个主库数据同步到不分库分表的从库共查询和管理类系统使用.在mysql 5.6以及之前的版本中,没有原生的解决方法,除非使用mariadb分支,在mysql 5.7之后支持多源复制,除了使用原生的多源复制之外,还有一个选择,就是使用案例开源的otter/canal.如果只是N个库合并到一个库的,我们使用mysq…
原文:[MS SQL]把多个数据库合并为一个新的数据库 因应工作要求,需要把两个数据库合并成一个库: 一开始使用"导入数据.导出数据和复制数据库"三个工具时,没有达到要的效果. 后来,使用"生成脚本"来执行,成功!步骤如下: 1.新建一个空白库 -> SCM_KQYY: 2.选择要合并的数据库-> Materials: 3.这里不表,直接下一步: 4.按下图根据需要选择:表.存储过程.用户.同义词. 5.按下图设置,下一步: 6.下一步: 7.点&quo…
不多说,直接上代码. Hadoop 自身提供了几种机制来解决相关的问题,包括HAR,SequeueFile和CombineFileInputFormat. Hadoop 自身提供的几种小文件合并机制 Hadoop HAR 将众多小文件打包成一个大文件进行存储,并且打包后原来的文件仍然可以通过Map-reduce进行操作,打包后的文件由索引和存储两大部分组成         缺点:一旦创建就不能修改,也不支持追加操作,还不支持文档压缩,当有新文件进来以后,需要重新打包.     SequeuesF…
磁盘: heads/sectors/cylinders,分别就是磁头/扇区/柱面,每个扇区512byte(现在新的硬盘每个扇区有4K) 文件系统: 文件系统不是一个扇区一个扇区的来读数据,太慢了,所以有了block(块)的概念,它是一个块一个块的读取的,block才是文件存取的最小单位. 文件系统中1个块是由连续的8个扇区组成. HDFS: 默认文件大小64M(或者是128M) hive小文件问题解决 问题描述 HDFS的文件元信息,包括位置.大小.分块信息等,都是保存在NameNode的内存中…
在做spark开发过程中,时不时的就有可能遇到租户的hive库目录下的文件个数超出了最大限制问题. 一般情况下通过hive的参数设置: val conf = new SparkConf().setAppName("MySparkJob") //.setMaster("local[1]").setMaster("spark://172.21.7.10:7077").setJars(List("xxx.jar")).set(&qu…