数据库分区

HIVE常用命令之MSCK REPAIR TABLE

时光毁灭记忆、已成空白 提交于 2019-12-06 17:40:39
MSCK REPAIR TABLE命令主要是用来解决通过hdfs dfs -put或者hdfs api写入hive分区表的数据在hive中无法被查询到的问题。 我们知道hive有个服务叫metastore,这个服务主要是存储一些元数据信息,比如数据库名,表名或者表的分区等等信息。如果不是通过hive的insert等插入语句,很多分区信息在metastore中是没有的,如果插入分区数据量很多的话,你用 ALTER TABLE table_name ADD PARTITION 一个个分区添加十分麻烦。这时候MSCK REPAIR TABLE就派上用场了。只需要运行MSCK REPAIR TABLE命令,hive就会去检测这个表在hdfs上的文件,把没有写入metastore的分区信息写入metastore。 测试一下: 第一步: CREATE TABLE test (name STRING) PARTITIONED BY (DT STRING); INSERT INTO TABLE test PARTITION(dt="20191206") VALUES ("zhang"); SHOW PARTITIONS test; 第二步: echo "wang" > test.txt hadoop fs -mkdir -p hdfs://bigdata-poc-shtz-1.zhongyuan

全网最通俗易懂的Kafka入门!

守給你的承諾、 提交于 2019-12-06 16:22:13
摘自: https://www.cnblogs.com/Java3y/p/11982381.html 全网最通俗易懂的Kafka入门! 前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star: https://github.com/ZhongFuCheng3y/3y 在这篇之前已经写过两篇基础文章了, 强烈建议 先去阅读: 什么是ZooKeeper? 什么是消息队列? 众所周知,消息队列的产品有好几种,这里我选择学习Kafka的原因,无他,公司在用。 我司使用的是Kafka和自研的消息队列(Kafka和RocketMQ)改版,于是我就想学学Kafka这款消息队列啦。本篇文章对Kafka入门,希望对大家有所帮助。 本文知识点提前预览: 这篇文章花了我很长时间画图,目的是希望以最通俗易懂的方式带大家入门,如果觉得不错, 希望能给我点个赞 ! 一、什么是Kafka? 首先我们得去官网看看是怎么介绍Kafka的: https://kafka.apache.org/intro 在收集资料学习的时候,已经发现有不少的前辈对官网的介绍进行翻译和总结了,所以我这里就不重复了,贴下地址大家自行去学习啦: https://scala.cool/2018/03/learning-kafka-1/ https://colobu.com/2014/08/06/kafka

Kafka初识

亡梦爱人 提交于 2019-12-06 14:22:36
转载自 https://www.cnblogs.com/luotianshuai/p/5206662.html Kafka初识 1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存储数据库浪费,直接存储硬盘效率又低 这些场景都有一个共同点: 数据是由上游模块产生,上游模块,使用上游模块的数据计算、统计、分析,这个时候就可以使用消息系统,尤其是分布式消息系统! 2、Kafka的定义 What is Kafka:它是一个分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。具有高水平扩展和高吞吐量。 3、Kafka和其他主流分布式消息系统的对比 定义解释: 1、Java 和 scala都是运行在JVM上的语言。 2、erlang和最近比较火的和go语言一样是从代码级别就支持高并发的一种语言,所以RabbitMQ天生就有很高的并发性能,但是 有RabbitMQ严格按照AMQP进行实现,受到了很多限制。kafka的设计目标是高吞吐量,所以kafka自己设计了一套高性能但是不通用的协议

[转帖]插曲:大白话带你认识Kafka

坚强是说给别人听的谎言 提交于 2019-12-06 14:10:07
插曲:大白话带你认识Kafka 2019-11-18 21:58:27 从事Java 阅读数 2 更多 分类专栏: java Kafaka 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_45674354/article/details/103132612 本文内容过长,文末小编准备了彩蛋!希望读者喜欢! 前言 应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。 一、Kafka基础 消息系统的作用 应该大部份小伙伴都清楚,用机油装箱举个例子 所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。 引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你做的系统去做用户画像分析。 ​​ ​​ 按照刚刚前面提到的消息系统的作用,我们知道了消息系统其实就是一个模拟缓存,且仅仅是起到了缓存的作用而并不是真正的缓存,数据仍然是存储在磁盘上面而不是内存。 1.Topic 主题 kafka学习了数据库里面的设计,在里面设计了topic(主题),这个东西类似于关系型数据库的表 ​ ​ 此时我需要获取中国移动的数据,那就直接监听TopicA即可 2

Mongodb中Sharding集群

半城伤御伤魂 提交于 2019-12-06 09:54:39
随着mongodb数据量的增多,可能会达到单个节点的存储能力限制,以及application较大的访问量也会导致单个节点无法承担,所以此时需要构建集群环境,并通过sharding方案将整个数据集拆分成多个更小的chunk,并分布在集群中多个mongod节点上,最终达到存储和负载能力扩容、压力分流的作用。在sharding架构中,每个负责存储一部分数据的mongod节点称为shard(分片),shard上分布的数据块称为chunk,collections可以根据“shard key”(称为分片键)将数据集拆分为多个chunks,并相对均衡的分布在多个shards上。 1)sharding模式将应用的数据访问操作分散到多个shard上,每个shard只承担一部分请求;比如read操作只需要访问持有数据的shard节点即可。 2)sharding模式也减少每个shard节点的数据存储量。 上图为sharded cluster的拓扑结构,它包含三个组件:shards、config servers和query routers: 1)Shards:存储节点,为了提高可用性和数据一致性,通常每个shard是一个“replica set”结构。 2)Query routers:查询路由节点,即mongos节点,mongos接收客户端请求

数据库优化策略之分区、分表、表分区

 ̄綄美尐妖づ 提交于 2019-12-06 09:54:18
分库、分表、表分区 来源场景:读写分离以后可分为一个主库 ( 主库负责写 ) 加上 N 多个从库 ( 从库负责读 ) , 但是因为业务量的扩大,主库还是无法承受写入的压力,那么此时就可以考虑分库、分表、表分区 来进一步优化 分库: 场景 1 :比如一个系统涵盖了订单 \ 物流 \ 仓储 ..... 等等 垂直分库,按业务拆分库,不同库不同的服务器 场景 2:订单增删改特别大 水平分库,每个库结构一致数据不一致 (地域/时间/类别/随机算法) 分表 场景 1 : 文章表, 10个常规字段+1个很长的内容字段 垂直分表,减小表体积,提升增删改查的效率 场景 2: 单表数据量太大 (订单表/商品表) 水平分表 (地域/时间/类别/随机算法) 表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里。 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个 cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的。 所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高 select效率,还可以对历史数据经行区分存档等。但是数据量少的数据就不要凑这个热闹啦,因为表分区会对数据库产生不必要的开销,除啦性能还会增加实现对象的管理费用和复杂性。

HBase之五:hbase的region分区

拥有回忆 提交于 2019-12-06 09:36:42
HBase之五:hbase的region分区 https://www.cnblogs.com/duanxz/p/3154487.html 一、Region 概念 Region是表获取和分布的基本元素,由每个列族的一个Store组成。对象层级图如下: Table (HBase table) Region (Regions for the table) Store (Store per ColumnFamily for each Region for the table) MemStore (MemStore for each Store for each Region for the table) StoreFile (StoreFiles for each Store for each Region for the table) Block (Blocks within a StoreFile within a Store for each Region for the table) Region 大小 Region的大小是一个棘手的问题,需要考量如下几个因素。 Region是HBase中分布式存储和负载均衡的最小单元。不同Region分布到不同RegionServer上,但并不是存储的最小单元。 Region由一个或者多个Store组成,每个store保存一个columns

afka入门介绍

佐手、 提交于 2019-12-06 06:12:45
K afka入门介绍 https://www.cnblogs.com/swordfall/p/8251700.html最近在看hdoop的hdfs 以及看了下kafka的底层存储,发现分布式的技术基本上都是相同的。 都是通过增加一个coordinator的节点作为存储元数据, 将实体数据放到datanode 里面来提高容量。而且也跟微服务类似,将一个单体应用拆开分多份,放到不同的node节点中来 并且通过replication 来保证高可用。通过服务注册中心统一进行管理。 微服务 hadoop kafka 都是通过分而治之的办法来提高容量和性能和安全性。包含现在比较多的Greenplum和华为的高斯数据库,以及nginx的负责均衡工作原理 其实也是类似,都是通过增加一个服务注册中心类似的协调中心,然后增加datanode来存储具体的数据。 如果数量就行增大,就在协调中心上面再增加一层入口控制。而且像是nginx的底层的master和worker node 的进程模式也是如此。master负责协调 node干具体的工作redis的cluster也是 只不过通过hash算法作为服务注册或者是协调中心的工作。然后每个redis服务作为每一个datanode来提供服务,增加扩展性。然后redis的sentry模式就相当于replication模式来保证数据的安全性了

spark调优——算子调优

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-06 03:02:16
算子调优一:mapPartitions 普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作。如果是普通的map算子,假设一个partition有1万条数据,那么map算子中的function要执行1万次,也就是对每个元素进行操作。 如果是mapPartition算子,由于一个task处理一个RDD的partition,那么一个task只会执行一次function,function一次接收所有的partition数据,效率比较高。 比如,当要把RDD中的所有数据通过JDBC写入数据,如果使用map算子,那么需要对RDD中的每一个元素都创建一个数据库连接,这样对资源的消耗很大,如果使用mapPartitions算子,那么针对一个分区的数据,只需要建立一个数据库连接。 mapPartitions算子也存在一些缺点:对于普通的map操作,一次处理一条数据,如果在处理了2000条数据后内存不足,那么可以将已经处理完的2000条数据从内存中垃圾回收掉;但是如果使用mapPartitions算子,但数据量非常大时,function一次处理一个分区的数据,如果一旦内存不足,此时无法回收内存,就可能会OOM,即内存溢出。 因此,mapPartitions算子适用于数据量不是特别大的时候

不谈情怀,只跟你谈Hive SQL

一笑奈何 提交于 2019-12-06 02:46:51
简介 Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能, 可以将SQL语句转换为MapReduce任务进行运行 ,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据。而mapreduce开发人员可以把己写的mapper和reducer 作为插件来支持Hive 做更复杂的数据分析。 它与关系型数据库的SQL 略有不同,但支持了绝大多数的语句如DDL(data definition language)、DML(Data Manipulation Language) 以及常见的聚合函数、连接查询、条件查询。HIVE不适合用于联机事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。 HIVE的特点: 可伸缩(在Hadoop的集群上动态的添加设备),可扩展,容错,输入格式的松散耦合 。 然后存储什么的不用说了,在hive简介里说的够多了,而且只要你熟悉一种数据库的话,大部分东西都是一样的,比如Primary Type之类的,大同小异。我们聊点儿不一样的。 1. 复杂类型Complex Type