
大数据
文章平均质量分 79
SXAU-码农大雄
这个作者很懒,什么都没留下…
展开
-
Sqoop安装及指令
Sqoop介绍:sqoop是Apache 提供的工具用于hdfs和关系型数据库之间数据的导出和导入可以从hdfs导出数据到关系型数据库,也可以从关系型数据库导入数据到hdfs。实现步骤:1.准备sqoop安装包,官网地址:http://sqoop.apache.org2.配置jdk环境变量和Hadoop的环境变量。因为sqoop在使用是会去找环境变量对应的路径,从而完整工作。3.sq...原创 2019-12-23 16:26:13 · 195 阅读 · 0 评论 -
Kafka
一消息系统概述一、模式1.Peer-to-Peer模式 - 点对点(rabbitmq)(1)往往消费者是串行消费的(2)数据往往只能被消费一次(3)解耦能力相对较弱2发布/订阅模式(kafka)(1)允许消费者进行并行消费(2)往往会提供数据的持久化机制,从而保证数据可以被消费多次(3)解耦能力更强二、消息队列的优势1.解耦:各个系统之间通过消息系统这个统一接口交换数据,无须...原创 2019-11-22 18:41:40 · 216 阅读 · 0 评论 -
Hbase调优
1.调节数据块(data block)的大小HFile数据块大小可以在列族层次设置。这个数据块不同于之前谈到的HDFS数据块,其默认值是65536字节,或64KB。数据块索引存储每个HFile数据块的起始键。数据块大小的设置影响数据块索引的大小。数据块越小,索引越大,从而占用更大内存空间。同时加载进内存的数据块越小,随机查找性能更好。但是,如果需要更好的序列扫描性能,那么一次能够加载更多HFil...原创 2019-11-20 19:46:03 · 400 阅读 · 0 评论 -
HBase表设计
Rowkey设计:1.将Rowkey以字典顺序从大到小排序原生HBase只支持从小到大的排序,但是现在有个需求想展现影片热度排行榜,这就要求实现从大到小排列,针对这种情况可以采用Rowkey=Integer.MAX_VALUE-Rowkey的方式将Rowkey进行转换,最大的变最小,最小的变最大,在应用层再转回来即可完成排序需求2.RowKey尽量散列设计最重要的是要保证散列,这样就会保证...原创 2019-11-20 19:44:11 · 194 阅读 · 0 评论 -
HBase系统架构
一.HMaster1.在HBase中,当第一次启动HMaster,会在Zookeeper的/hbase节点下注册一个子节点/hbase/master2.在HBase,HMaster不存在单点故障问题,因为可以启动多个HMaster,先启动的HMaster作为active节点使用,后启动的HMaster会作为backup节点使用3.后启动的HMaster会在Zookeeper的/hbas...原创 2019-11-20 19:41:11 · 322 阅读 · 0 评论 -
HBase的物理存储结构
1.物理存储结构1.每一张表从行键的方向上进行切分,切分成1个到多个HRegion - 也就意味着每一张表是由1到多个HRegion构成的2.每一个HRegion保存当前HRegion的startRowKey和endRowKey3.每一个HRegion分布到某一个HRegionServer节点上 - 进行切分的目的:(1)将数据分布在不同的节点上以能够存储海量数据(2)提高读写效率 - ...原创 2019-11-20 19:28:42 · 1115 阅读 · 0 评论 -
HBase
1.概述Hase是Apache提供的基于Hadoop的、分布式的、可扩展的、能够存储大量数据的非关系型数据库来源于google的一片论文《BigTable》,后来由Apache做了开源实现,就是HBase是一种 NoSQL,非关系型的数据库,不符合关系型数据库的范式适合存储:半结构化、非结构化的数据适合存储稀疏的数据,空的数据不占用空间面向列(族)进行存储提供实时增删改查的能力 是...原创 2019-11-19 20:07:11 · 155 阅读 · 0 评论 -
Hive介绍
1.Hadoop开发存在的问题只能用java语言开发,如果是c语言或其他语言的程序员用Hadoop,存在语言门槛。需要对Hadoop底层原理,api比较了解才能做开发。2.Hive概述Hive是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张’数据库表’,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过...原创 2019-11-15 19:14:05 · 569 阅读 · 0 评论 -
flume介绍
1.概述1.Flume最早是Cloudera提供的日志收集系统,后贡献给Apache。所以目前是Apache下的项目,Flume支持在日志系统中定制各类数据发送方,用于收集数据。2.Flume是一个高可用的,高可靠的 鲁棒性(robust 健壮性),分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据(source);同时,Flume提供对数据进...原创 2019-11-13 18:55:08 · 252 阅读 · 0 评论 -
小文件处理---HDFS
1.小文件的危害:1.存储:HDFS可以存储小文件,但是这个过程中,每一个小文件在存储的时候都会产生一条元数据,这也就意味着如果存储大量的小文件,就会产生大量的元数据,则意味着内存会被大量占用,此时就会导致HDFS的读写效率整体降低2.计算:每一个小文件都会看做一个切片来进行处理,每一个切片都会对应一个MapTask。如果处理大量的小文件,这意味着要产生大量的MapTask,MapTask本...原创 2019-11-11 19:40:35 · 186 阅读 · 0 评论 -
数据倾斜---hadoop中的Reducer
1.数据倾斜:hash分区,有可能大量的key进入同一个Reducer解决数据倾斜:(1)//多个Reducer处理同一个分区(2)自定义分区(3)增加或者减少reducer的数量(hash分区有效)(4)硬件上:增加机器的jvm内存(5)去除噪音数据(6)重新定义key:比如改变key中数据的顺序比如先在传输的时候给key加一个随机数zhang->20-zhang在后面...原创 2019-11-11 19:37:47 · 610 阅读 · 0 评论 -
Shuffle
1.Map端的Shuffle1.MapTask在拿到切片之后,默认会对数据进行按行读取,每读取一行默认调用一次map方法来进行处理2.每一个MapTask默认自带一个缓冲区,map方法执行的结果会临时的写到缓冲区中3.缓冲区是维系在内存中,默认是100M4.当缓冲区达到一定条件的时候,就会将缓冲区中的数据写到磁盘上,这个过程称之为溢写(spill)5.溢写之后,map方法产生的结果会继...原创 2019-11-10 16:07:12 · 277 阅读 · 0 评论 -
job任务执行流程
1.run job 阶段。主要检查job的环境设置,包括路径的设置。比如MapperClass,FileInputFormat等。如果检测未通过,则直接报错返回。2.如果检测通过,JobClient会向JobTracker发起请求,JobTracker为job申请一个全局唯一的id。JobClient可以根据此JobId 跟踪Job的执行进度以及Kill掉Job。3.检测通过后,JobC...原创 2019-11-10 15:58:01 · 1310 阅读 · 0 评论 -
MapReduce
1.MapReduce概述 HDFS实现了分布式文件存储,存储问题解决了,我们就需要考虑如何对数据进行处理,MapReduce是一个计算框架(编程模型),基于该计算框架,可以很容易的编写数据处理程序,从而以较高的效率处理海量数据集。 MR框架对于程序员的最大意义在于,不需要掌握分布式计算编程,不需要考虑分布式编程里可能存在的种种难题,比如任务调度和分配、文件逻辑切块、位置追溯...原创 2019-11-10 15:44:12 · 188 阅读 · 0 评论 -
红黑二叉树
ConcurentMap在jdk1.8引入,桶中超过8个元素,会转为红黑二叉树,不足8个,是链表结构,红黑二叉树生成的另一个条件是桶超过64个介绍:1.本质上是平衡二叉查找树2.时间复杂度O(logn)3.平衡二叉查找树基于二叉树左节点都小于根,右大于根4.特点(1)所有节点非红即黑(2)根节点一定是黑的(3)红节点的子节点一定是黑的,黑节点的子节点可红可黑(4)...原创 2019-11-06 19:51:43 · 268 阅读 · 0 评论 -
Erasure code(纠删码)
1.概述在编码理论里,有一种前向纠错(FEC)编码方式,也称为纠删码。这种技术可以将原始数据中丢失的k字节数据从n个含编码字节的信息中进行恢复。在纠删码技术中,Reed-Solomon(里所码)码是一种常见的纠删码。2.纠删码的应用对于在分布式环境下数据存储的可靠性保证,有两种策略:1)引入副本冗余机制策略2)利用纠删码技术,相比于副本策略,纠删码技术可以节省更多磁盘的空间。即...原创 2019-11-06 19:44:06 · 1020 阅读 · 0 评论 -
Lease 介绍(租约锁)---HDFS控制并发写入情况
Lease 介绍(租约锁)HDFS不支持文件修改以及不支持并行写操作。在实际生产环境中,HDFS可能同时有多个用户(多个客户端)同时执行文件写/上传操作(hadoop fs -put xxx /xxx )。所以,hadoop需要采取一些措施来控制并发写入情况的发送。最开始的设计思路是:用互斥锁来实现。即某一个时刻,只有拿到互斥锁的客户端能够执行写操作。但是,互斥锁在分布式系统中会有很多问题。...原创 2019-11-06 19:11:45 · 2702 阅读 · 0 评论 -
HDFS(Hadoop Distributed File System)- 存储数据
1.HDFS架构图2.基本概念1.HDFS :Hadoop Distributed File System。Hadoop的分布式文件系统。是基于《Google File System》做的开源实现。2.HDFS的作用是存储海量数据。因为HDFS是一个分布式架构,可以无限扩展节点来存储数据3.HDFS存储文件的特点是 :块存储4.HDFS的角色:①namenode ②datano...原创 2019-11-05 19:41:06 · 510 阅读 · 0 评论 -
Hadoop概述
Hadoop概述1.介绍 Apache的Hadoop是一个开源的、可靠的、可扩展的系统架构,可利用分布式架构来存储海量数据,以及实现分布式的计算。**分布式存储和分布式计算**Hadoop允许使用简单的编程模型在计算机集群中对大型数据集进行分布式处理。可以从单个服务器扩展到数千台机器,每个机 器都提供本地计算和存储,而不是依靠硬件来提供高可用性。此外,Hadoop集群的高可用性...原创 2019-11-05 19:22:50 · 1985 阅读 · 0 评论 -
Zookeeper概述
Zookeeper概述1.Zookeeper介绍Zookeeper是分布式应用程序的协调服务框架,是Hadoop的重要组件。ZK要解决的问题:1.分布式环境下的数据一致性。2.分布式环境下的统一命名服务3.分布式环境下的配置管理4.分布式环境下的分布式锁5.集群管理问题2.分布式概念(集群)分布式的思想就是人多干活快,即用多台机器同时处理一个任务。分布式的编程和单机的编程 ...原创 2019-11-01 19:37:42 · 2836 阅读 · 0 评论 -
锁-lock
锁-lock1.案例package cn.tedu.lock;public class Demo1 { public static String name = "璐璐"; public static String gender = "女"; public static void main(String[] args) { new Thread(new Run3()).start(...原创 2019-11-01 18:57:37 · 103 阅读 · 0 评论 -
线程池
线程池1.线程池概念频繁创建和销毁线程很耗费资源,利用线程池可以重复利用线程资源1.请求交给核心线程2.核心满了,交给队列3.队列满了,交给临时线程临时满了,交给拒绝服务器2.自定义线程池package cn.tedu.pool;import java.util.concurrent.ArrayBlockingQueue;import java.util.concur...原创 2019-11-01 10:55:52 · 141 阅读 · 0 评论 -
CAP理论(eureka与zookeeper选型)
CAP理论(eureka与zookeeper选型)C:Consistency,数据一致性A:Availability,可用性,系统响应速度P:Partition tolerance,分区容错性1.Partition tolerance分区容错性:大多数分布式系统,都分布在多个子网络,每个子网络就叫一个区,分区容错意思是:区之间通信可能失败,例如一个区在中国,一个区在美国,它们之间可...原创 2019-11-01 10:07:47 · 1455 阅读 · 0 评论 -
并发锁
1.CountDownLatch-闭锁package cn.tedu.concurrentLock;import java.util.concurrent.CountDownLatch;/* * 并发锁---CountDownLatch * 1.也叫闭锁 * 2.它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行 * 3.案例:师徒斗地主,三人准备好了,第四人才能发牌...原创 2019-10-31 20:34:44 · 149 阅读 · 0 评论 -
ConcurrentMap-并发map
ConcurrentMap-并发mapHashMap:线程不安全HashTable:线程安全的一个人来操作是,锁住整表,底层用的是Synchronoused同步代码库ConcurrentMap:线程安全的默认分为16个桶,每个桶加锁,如果数据量达到一定大小,桶会翻倍每个桶的元素达到8个以上,数据结构就会变为红黑二叉树(左旋、右旋)所以,它的效率特别高package cn.ted...原创 2019-10-31 20:00:44 · 198 阅读 · 0 评论 -
阻塞队列详述
阻塞队列详述1.BlockingQueue概述ArrayBlockingQueueLinkedBlockingQueueDelayQueuePriorityBlockingQueueSynchronousQueue共有方法:抛异常:如果试图的操作无法立即执行,抛一个异常。特定值:如果试图的操作无法立即执行,返回一个特定的值(常常是 true / false)。阻塞:...原创 2019-10-31 19:32:07 · 128 阅读 · 0 评论