大数据
文章平均质量分 76
猿与禅
think more , write less , more value !
君子藏器于身,待时而动,争其必然,顺其自然
展开
-
主流数据同步工具对比详解
数据同步工具是企业常用的中间件,如何从众多工具中正确选型是个问题,本文详细介绍了主流工具的优缺点、应用场景和各个维度的对比。原创 2024-06-26 14:39:08 · 1487 阅读 · 0 评论 -
数据资产概念解释
详细介绍数据资产概念原创 2024-04-09 14:18:01 · 789 阅读 · 0 评论 -
kafka-架构(详解)
特点 一种高吞吐量的分布式发布订阅消息系统 1、通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。 2、高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。 3、支持通过Kafka服务器和消费机集群来分区消息,支持Hadoop并行数据加载。整体架构Producer 消息生产者,发布消息到 kafka 集群的终端或服务,转载 2017-05-25 14:37:24 · 1302 阅读 · 0 评论 -
kafka-高性能秘密
利用Partition实现并行处理机器间的并行处理磁盘间的并行处理一个Partition只能被一个Consumer消费 Partition的个数决定了最大并行度ISR实现CAP中可用性与数据一致性的动态平衡由于Leader可移除不能及时与之同步的Follower,故与同步复制相比可避免最慢的Follower拖慢整体速度,也即ISR提高了系统可用性。ISR中的所有Follower都包含...转载 2019-06-03 13:11:52 · 184 阅读 · 0 评论 -
kafka-各版本特性
0.8.2Kafka已经内置了机架感知以便隔离副本,这使得Kafka保证副本可以跨越到多个机架或者是可用区域,显著提高了Kafka的弹性和可用性。这个功能是由Netflix提供的 所有Kafka中的消息都包含了时间戳字段,这个时间就是这条消息产生的时间。这使得Kafka Streams能够处理基于事件时间的流处理;而且那些通过时间寻找消息以及那些基于事件时间戳的垃圾回收特性能为可能。Apa...转载 2019-03-17 20:08:46 · 5470 阅读 · 0 评论 -
kafka-offset 存储方式
早期版本 消费的 offset 存放在 Zookeeper 集群,利用 Zookeeper 来存储记录每个消费者/组的消费进度,消费者需要频繁的去与 Zookeeper 进行交互,而利用ZKClient的API操作Zookeeper频繁的Write其本身就是一个比较低效的Action,对于后期水平扩展也是一个比较头疼的问题。如果期间 Zookeeper 集群发生变化,那 Kafka 集群的吞吐量也转载 2017-10-15 18:16:42 · 1491 阅读 · 0 评论 -
kafka-消息防丢失和消息去重
如何防止数据丢失生产者:同步发送消息,且消息配置为-1或all,leader分区和所有follwer都写到磁盘里。异步模式下,为防止缓冲区满,可以在配置文件设置不限制阻塞超时时间,当缓冲区满时让生产者一直处于阻塞状态。生产者:手动提交,即读取到消息后,确认消息消费完毕,才手动提交offset。但是要避免逻辑处理时间过长,导致连接超时,会使消息重复消费。故kafka一定要配置上消息重试的机制...转载 2019-06-02 00:52:42 · 9838 阅读 · 0 评论 -
flume-架构
source avro thrift jms kafka scribe taildir twitter netcat exec SequenceGenerator SpoolDirectory Stress syslogchannel file jdbc kafka spillable-memorysink dataset hdfs hive irc el原创 2017-10-12 23:15:20 · 232 阅读 · 0 评论 -
Scala-通过ProcessBuilder执行hive命令
通过java进程构建工具直接执行hive sql 提交MR任务import java.io.{BufferedReader, InputStreamReader}import org.apache.spark.Loggingobject CommandExecutor extends Logging with Serializable { def hiveCommand(sql...原创 2019-01-28 20:32:09 · 846 阅读 · 0 评论 -
scala-jdbc连接池和工具类
连接池import java.sql.{Connection, DriverManager}import java.util.{LinkedList, ResourceBundle}import org.apache.spark.Logging/** * 数据库连接池工具类 * Created by EX-ZHANGYONGTIAN001 on 2018-12-18. */...原创 2019-01-28 20:26:12 · 2966 阅读 · 0 评论 -
scala-时间工具类
TimeUtilsimport java.text.SimpleDateFormatimport com.github.nscala_time.time.Imports._import org.joda.time.DateTimeimport scala.collection.mutable.ArrayBufferobject TimeUtils { final val ONE_HOUR_MI原创 2017-06-01 18:52:41 · 7956 阅读 · 0 评论 -
scala-sdk概览
scala sdk类库scala 包结构scala.actors. remote scheduler threadpool …scala.actors.migration ActorDSL ActWithStash Askable ….scala. annotation beans collecti转载 2017-12-07 16:20:51 · 1595 阅读 · 0 评论 -
scala-json-json4s-工具类
汇总基于json4s类库的scala语言的json工具类import java.text.SimpleDateFormatimport org.apache.spark.SparkContextimport org.apache.spark.sql.{DataFrame, SQLContext}import org.json4s.jackson.JsonMethods._import org.原创 2017-03-11 08:57:53 · 1236 阅读 · 0 评论 -
hbase-创建连接报错 java.lang.OutOfMemoryError: unable to create new native thread
最近在本地电脑上连接hbase 出现错误 找到一篇不错的博客,希望能给遇到类似问题的同学提供参考来源: http://blog.sina.com.cn/s/blog_637bd4500102vj6p.html报错信息:java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.OutOfMemoryE转载 2017-06-14 16:15:21 · 2310 阅读 · 0 评论 -
hbase-rowkey设计
简短 不要超过16个字节,最大不超过100个字节唯一 按照字典顺序排序,最近可能会被访问的数据放到一块散列,避免热点随机前缀 哈希 反转 固定长度或者数字格式,如手机号 时间戳反转 Long.Max_Value - timestamp 如 [userId反转][Long.Max_Value - timestamp], 查询所有记录转载 2017-10-16 20:01:15 · 292 阅读 · 0 评论 -
hbase-shell批量命令执行脚本
批量执行hbase shell 命令#!/bin/bash source /etc/profileexec $HBASE_HOME/bin/hbase shell <<EOF truncate 'tracker_total_apk_fact_zyt'major_compact('t_abc')disable 't_abc'drop 't_abc'create 't_abc',原创 2017-05-20 09:40:06 · 4743 阅读 · 0 评论 -
hbase-架构
架构源码目录hbase-0.98.6-cdh5.3.6client:原创 2017-05-20 15:08:04 · 996 阅读 · 0 评论 -
phoenix-编译
配置maven镜像(略)编译mvn clean install -Dhbase.profile=2.1 -Dhbase.version=2.1.9 -DskipTests原创 2020-12-25 18:08:58 · 196 阅读 · 0 评论 -
hbase-scala-获取连接
简单写一个scala获取hbase 连接方法/** * HBase工具类 */import org.apache.hadoop.hbase.client.{BufferedMutator, Connection, ConnectionFactory, Put}import org.apache.hadoop.hbase.util.Bytesimport org.apache.hadoo原创 2017-06-14 16:33:16 · 3004 阅读 · 0 评论 -
hbase-表结构设计
宽表与高表的选择 hbase中的宽表是指很多列较少行,即列多行少的表,一行中的数据量较大,行数少;高表是指很多行较少列,即行多列少,一行中的数据量较少,行数大。hbase的row key是分布式的索引,也是分片的依据。 hbase的row key + column family + column qualifier + timestamp + value 是HFile中数据排列依据。HFi...转载 2018-06-18 13:15:28 · 837 阅读 · 0 评论 -
hbase-region预分区(pre-splitting)
建表create 'tracker_player_active_fact', { NAME => 'dim', COMPRESSION => 'snappy' }, { NAME => 'fact', COMPRESSION => 'snappy' },SPLITS_FILE => 'apk-splits.txt'分区文件内容00|01|02|03|04|05|06|07|08|0原创 2017-05-18 19:30:04 · 4413 阅读 · 0 评论 -
hbase-各版本特性
1.01.API的变化,比如放弃了客户端几个重要的API:( HTableInterface, HTable,HBaseAdmin),建议程序升级到新的API,老的PAI会在2.X中删除。2.不重启regionserver的情况下读取配置文件。3.master节点也运行regionserver。master与regionserver共享RPC端口。4.global memstore和blo...转载 2019-03-17 21:01:15 · 4245 阅读 · 0 评论 -
hive-shell批量命令执行脚本
#!/usr/bin/bashHADOOP_HOME="/opt/module/cdh-5.3.6-ha/hadoop-2.5.0-cdh5.3.6"HIVE_HOME='/opt/module/cdh-5.3.6-ha/hive-0.13.1-cdh5.3.6'####### execute hive ######sql=$(cat <<!EOFuse db_01;drop table原创 2017-05-20 13:53:17 · 4247 阅读 · 0 评论 -
hive-架构
架构源码转载 2017-05-20 15:34:55 · 255 阅读 · 0 评论 -
hive-优化
本地模式开启set hive.exec.mode.local.auto=true;set hive.exec.mode.local.auto.inputbytes.max=51234560;set hive.exec.mode.local.auto.input.files.max=10;可以不走mapreduce修改 hive-default.xmlset hive.fetch.task.conversion=more;<property> <name>hiv原创 2020-11-06 13:57:10 · 113 阅读 · 0 评论 -
hive-建表-关联CSV/TSV文件
hive-0.14.0以后版本内置支持CSV Serde,以前的版本需要引入第三方库的jar包引入第三方库add jar /xx/yy/zz.jar;csvDROP TABLE `hr`.`table_xxx`;CREATE TABLE `hr`.`tracker_total_dim_ratio_fst` (brand string,province string,ratio string)RO原创 2017-05-18 15:48:45 · 2247 阅读 · 0 评论 -
hive-hiveserver2配置负载均衡(nginx)
Nginx编译安装wget http://nginx.org/download/nginx-1.16.1.ziptar cd /nginx-1.16.1yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel ./configure --prefix=/opt/nginx --with-pcre --with-...原创 2019-12-12 11:59:47 · 1843 阅读 · 0 评论 -
hive-各版本特性
0.10.0[HIVE-887] - Allow SELECT without a mapreduce job[HIVE-895] - Add SerDe for Avro serialized data[HIVE-967] - Implement “show create table”[HIVE-1577] - Add configuration property hive.exec...转载 2019-03-16 23:17:13 · 2964 阅读 · 2 评论 -
hive-存储格式
textfile Hive默认格式,数据不做压缩,磁盘开销大,数据解析开销大。 行存储,压缩的text文件 hive无法进行合并和拆分,无法对数据进行并行操作Sequencefile Hadoop API 提供的一种二进制文件,它将数据(key,value)的形式序列化到文件里。 Hive 中的SequenceFile 继承自Hadoop API 的SequenceFile,只是它的ke转载 2017-10-17 10:32:31 · 326 阅读 · 0 评论 -
zookeeper-概述
zookeeper是分布式应用的分布式、开放式协调服务。它公开了一组简单的原语,分布式应用程序可以构建来实现更高级别的服务,用于同步、配置维护、组和命名。它被设计成易于编程,并使用在熟悉文件系统目录树结构之后的数据模型。它在java环境上运行,并对Java和C都有绑定。众所周知,协调服务很难得到正确的结果。它们特别容易出现错误,如race conditions和死锁。zookeeper背后的动...转载 2018-07-17 18:20:17 · 214 阅读 · 0 评论 -
hadoop2.x-hdfs写流程
写流程1.客户端通过调用DistributedFileSystem的create方法创建新文件2.DistributedFileSystem通过RPC调用namenode去创建一个没有blocks关联的新文件,创建前,namenode会做各种校验,比如文件是否存在,客户端有无权限去创建等。如果校验通过,namenode就会记录下新文件,否则就会抛出IO异常.3.前两步结束后会返回FSD...转载 2018-06-18 13:15:20 · 490 阅读 · 0 评论 -
hadoop-hdfs-Balancer
处理逻辑 适用场景 机器与机器之间磁盘利用率不平衡,比如集群中添加新的数据节点,节点与节点之间磁盘大小不一样HDFS数据可能不总是被均匀地放置在DataNode上,常见的原因是向现有的集群添加新的数据流。在放置的块(文件的数据存储为一系列块)的同时,namenode 在选择数据块以接收这些块之前考虑各种参数,有些考虑是:1.将块中的一个副本保持在与正在写入块的节点相同的节点上2...转载 2018-07-15 00:33:18 · 554 阅读 · 0 评论 -
hadoop-hdfs-架构
架构源码hadoop-2.6.0-cdh5.7.0-src原创 2017-05-20 16:11:20 · 399 阅读 · 0 评论 -
hadoop-hdfs-Secondary NameNode
原理 NameNodeNameNode主要是用来保存HDFS的元数据信息,比如命名空间信息,块信息等。当它运行的时候,这些信息是存在内存中的。但是这些信息也可以持久化到磁盘上。元数据文件: fsimage - 它是在NameNode启动时对整个文件系统的快照 edit logs - 它是在NameNode启动后,对文件系统的改动序列namenode 存储对文件系统的修改 ...转载 2018-07-14 21:33:58 · 623 阅读 · 0 评论 -
hadoop各版本特性
0.14.1HDFS中更好的校验和。校验和不再存储在并行HDFS文件中,而是由数据节点与块一起直接存储。这对于命名节点更加有效,并且还提高了数据完整性。管道:MapReduce的C ++ APIEclipse插件,包括HDFS浏览,作业监视等。HDFS中的文件修改时间。1.0安全HBase(append / hsynch / hflush和安全性)webhdfs(全面支持安全性)...翻译 2019-11-21 10:06:35 · 1037 阅读 · 0 评论 -
hadoop-mapreduce2-原理
运行原理源码hadoop-2.6.0-cdh5.7.0-src原创 2017-05-20 16:39:32 · 477 阅读 · 0 评论 -
hadoop2.x-hdfs读流程
1.首先调用FileSystem对象的open方法,其实是一个DistributedFileSystem的实例 2.DistributedFileSystem通过rpc获得文件的第一批个block的locations,同一block按照重复数会返回多个locations,这些locations按照hadoop拓扑结构排序,距离客户端近的排在前面. 3.前两步会返回一个FSDataInputSt...转载 2018-06-04 13:25:16 · 238 阅读 · 0 评论 -
hadoop-hdfs-文件工具类(Scala)
package com.avcdata.spark.job.utilimport java.io.{File, FileInputStream, FileOutputStream, IOException}import org.apache.hadoop.conf.Configurationimport org.apache.hadoop.fs.{FileStatus, FileSystem, F原创 2017-03-14 16:34:04 · 4190 阅读 · 0 评论 -
hadoop-hdfs-safemode
在启动过程中,NAMENODE从FSIMAGE和编辑日志文件加载文件系统状态。然后,它等待数据块报告它们的块,以便即使在集群中已经存在足够的副本,也不会过早地开始复制这些块。在此期间,NAMENODE停留在Safemode。NAMENODE的安全模式本质上是HDFS集群的只读模式,它不允许对文件系统或块进行任何修改。通常,NAMENODE在数据报已经报告大多数文件系统块可用之后自动离开SaveMo...转载 2018-07-15 07:33:57 · 355 阅读 · 0 评论 -
hadoop-yarn-架构
架构源码clientserver原创 2017-05-20 16:30:45 · 709 阅读 · 0 评论