藏青妹妹
零基础当然是可以学好大数据的,没有人天生就会数据分析吧?所以今天我们就来讨论讨论零基础如何高效学习大数据。首先,在你什么都不懂的情况下,打好基础是很重要的,而大数据的基础就是:1、Bloom Filter过滤器数据分片与路由:挑一个典型的分区算法去学习,比如一致性哈希算法。2、备份机制与一致性。3、学习CAP理论。4、幂等性:现在很多的分布式系统状态管理的基石。5、各种一致性模型,例如:强一致性、弱一致性、最终一致。6、备份机制:主从的叫法已经不怎么流行了,当前更cool的叫法7、是Leader-Follower模式。8、共识协议:在咱们国家通常翻译成一致性协议。只要学习常见 的几种就可以:Paxos或者Raft。9、算法和数据结构。10、LSM:学习和B+树的区别以及优势。11、压缩算法:1,找一个主流的压缩算法进行了解,例如Snappy, LZ4。12、Bloom Filter过滤器。在掌握基础只是以后你就可以选择发展方向了,大数据行业分为两大方向发展:1、大数据分析师2、大数据工程师。
香浓寻觅觅
布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合。它的优点是空间效率和查询时间都比一般的算法要好得多,缺点是有一定的误识别率和删除困难。
如果想要判断一个元素是否在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。数组、链表、树等数据结构都是这种思路,它们的时间复杂度为(O(n)、O(logn))。散列表是一个能够提供更快查询速度的数据结构(时间复杂度为O(1))。但是随着集合中元素的增加,我们需要的存储空间越来越大,特别是随着大数据的发展,我们越来越不可能将所有的数据都先加载到内存中再进行查找。 这时,我们就可以借助一种新的数据结构,也就是本文的主题:布隆过滤器(Bloom Filter)。 我们使用一段长度为m的二进制位数组,再使用k个哈希函数,将一个值进行k次哈希,得到k个索引,并将对应的位置设置为1。
布隆过滤器主要提供两种方法:Add和Test。 Add:通过哈希函数计算,得到k个索引,并将其对应的二进制位设置为1。 Test:通过哈希函数计算,得到k个索引,判断如果任意位置上的二进制都为0,则表示该值一定不在集合中;但是如果所有位置上的二进制都为1,却并不能表示该值一定在集合中,这被称为假阳性,或是判断错误。 可以通过增大数组的长度m,以及增加哈希函数的数量k来降低假阳性的概率。
时间复杂度 由于需要计算k次的哈希,需要的时间复杂度为O(k),而计算出对应的索引后,可以进行直接地址访问,需要的时间复杂度为O(1),所以总的时间复杂度为O(k)。
空间复杂度 由于需要长度为m的二进制数据,所以空间复杂度为O(m),但是由于数据的基本单位是位,假设为了处理100万条数据,为了降低假阳性的概率,我们使用长度为1000万的二进制数组,所需的内存空间为10,000,000/8/1024/1024=内存空间。
优点
缺点
范范20130108
近年来互联网行业发展迅猛,随之大数据也出现在人们的视线中,也有越来越多的同学们想要加入互联网行业、学习大数据。但是IT技术类的学习时间很多人都不了解,比如说大数据开发培训需要多长时间呢?其实在互联网行业中,IT培训科目还是有很多的,关于学习时间的长短都取决于学习者的基础内容、课程教学、项目实战几方面的影响。下面,千锋小编针对大数据学科给大家来一个详细解析。一、基础内容学习对于有大数据学习基础的同学们来说,许多同学认为理论基础知识很复杂,很难记住。但是对于大数据学习者而言,确实逻辑思维能力要求较高。但是根据千锋教育的大数据培训第一阶段基础内容学习的时间,许多同学一个月就能过了本阶段的测试。二、课程内容教学不同的培训机构来说,根据课程内容的不同,当然时间也会有所差异。千锋教育大数据培训的课程内容除开头一阶段学习Java语言基础之外,还要学习HTML、CSS、JavaScript、JavaWeb和数据库、Linux基础、Hadoop生态体系、Spark生态体系等课程内容。千锋教育大数据培训课程内容覆盖全面,学习周期当然会长一些。三、项目实战训练参加大数据培训必须经过项目实战训练。学者只有经过项目实战训练,才能在面试和后期工作中从容应对。当然了,项目实战训练时间与项目的难度、项目的数量相关,项目难度较大、项目较多,当然学习的时间会更长。以千锋大数据开发的培训时间来看,时间会根据学者的学习情况而定,一般是在5到6个月左右。所以学习大数据,一昧寻求速成的心态是不对的,一定要稳步前进,参加大数据培训的每一步基础要打牢固才行。
优质工程师考试问答知识库