随笔分类 - [89]Big Data
-
MogileFS
摘要:分布式文件系统 ~MogileFS~一、分布式文件系统分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,也就是集群文件系统,可以支持大数量的节点以及PB级的数量存储。相对地,在一个分享的磁盘文件系统... 阅读全文
-
存储子系统分析
摘要:存储子系统分析Apache Spark源码走读之6 -- 存储子系统分析欢迎转载,转载请注明出处,徽沪一郎。楔子Spark计算速度远胜于Hadoop的原因之一就在于中间结果是缓存在内存而不是直接写入到disk,本文尝试分析Spark中存储子系统的构成,并以数据写入和数据读取为例,讲述清楚存储子系统中... 阅读全文
-
Spark Streaming实时计算框架介绍
摘要:Spark Streaming实时计算框架介绍随着大数据的发展,人们对大数据的处理要求也越来越高,原有的批处理框架MapReduce适合离线计算,却无法满足实时性要求较高的业务,如实时推荐、用户行为分析等。Spark Streaming是建立在Spark上的实时计算框架,通过它提供的丰富的API、基于内存的高速执行引擎,用户可以结合流式、批处理和交互试查询应用。本文将详细介绍Spark Streaming实时计算框架的原理与特点、适用场景。Spark Streaming实时计算框架Spark是一个类似于MapReduce的分布式计算框架,其核心是弹性分布式数据集,提供了比MapReduce更丰 阅读全文
-
大数据和Hadoop生态圈
摘要:大数据和Hadoop生态圈一、前言: 非常感谢Hadoop专业解决方案群:313702010,兄弟们的大力支持,在此说一声辛苦了,经过两周的努力,已经有啦初步的成果,目前第1章 大数据和Hadoop生态圈小组已经翻译完成,在此对:译者:贾艳成 QQ:496830205 表示感谢。二、意见征集: 本章节由《Hadoop专业解决方案群:313702010》翻译小组完成,为小组校验稿,已经通过小组内部校验通过,特此面向网络征集意见,如果对本章节内容有任何异议,请在评论中加以说明,说明时,请标明行号,也可以以修订的方式,发送给我。非常感谢。三、原书说明 英文原书《Wrox.Professiona... 阅读全文
-
Hadoop作业提交之TaskTracker获取Task
摘要:【Hadoop代码笔记】Hadoop作业提交之TaskTracker获取Task一、概要描述在上上一篇博文和上一篇博文中分别描述了jobTracker和其服务(功能)模块初始化完成后,接收JobClient提交的作业,并进行初始化。本文着重描述,JobTracker如何选择作业的Task分发到TaskTracker。本文只是描述一个TaskTracker如何从JobTracker获取Task任务。Task任务在TaskTracker如何执行将在后面博文中描述。二、 流程描述1. TaskTracker在run中调用offerService()方法一直死循环的去连接Jobtracker,先Job 阅读全文
-
JobTracker等相关功能模块初始化
摘要:【Hadoop代码笔记】Hadoop作业提交之JobTracker等相关功能模块初始化一、概要描述本文重点描述在JobTracker一端接收作业、调度作业等几个模块的初始化工作。想过模块的介绍会在其他文章中比较详细的描述。受理作业提交在下一篇文章中会进行描述。为了表达的尽可能清晰一点只是摘录出影响逻辑流转的主要代码。重点强调直接的协作调用,每个内部完成的逻辑(一直可以更细的说明、有些细节可能自己也理解并不深刻:-()在后续会描述。主要包括JobTracker、TaskScheduler(此处以FairScheduler为例)、JobInProgressListener(以用的较多的EagerT 阅读全文
-
hadoop自动安装的脚本与步骤
摘要:hadoop自动安装的脚本与步骤最近要在10几台机器上安装hadoop。对于这种繁复而重复的工作,一步步的打命令行,对于程序员来说是一件不能忍的事情。所以我就琢磨着怎么写一个脚本来自动安装hadoop。任务: 在10几台机器上中的任意一台执行脚本,即可安装好hadoop。条件: 每台机器的用户名和密码都是一样的。每台机器都配置好了ssh,能够远程登录。解决思路: 1. 首先读取配置文件,读取到节点的ip和想要的机器名字,然后修改好本地hadoop的配置文件。 2. 然后读取配置文件,复制所有文件到每个节点的安装的路径。(利用scp命令可以远程复制) 3. 然后读取配置文件,自动ssh到每... 阅读全文
-
大数据工具篇之Hive与MySQL整合完整教程
摘要:大数据工具篇之Hive与MySQL整合完整教程一、引言 Hive元数据存储可以放到RDBMS数据库中,本文以Hive与MySQL数据库的整合为目标,详细说明Hive与MySQL的整合方法。二、安装驱动 MySQL最新的Java驱动版本为:mysql-connector-java-5.1.28-bin.jar,下载后拷贝到:Hive/Lib目录。三、安装MySQL 3.1 版本 RHEL5+mysql-5.5.35-1.i386.rpm 3.2 顺序 MySQL-shared-compat-5.5.35-1.rhel15.i386.rpm MySQL-server-5.5.35-... 阅读全文
-
大数据导论之为何需要引入大数据
摘要:大数据导论之为何需要引入大数据一、引言 最近各种客户咨询项目中,往往涉及大数据引入必要性和价值意义的深层次挖掘,客户有数据,有平台,但是不知到底要不要上大数据,为何要上大数据和大数据可以带来哪些价值和意义。本文关于大数据的必要性进行阐述,来源实际项目,算是分享吧。二、突破技术瓶颈 互联网技术催生了大数据时代的来临,大数据时代的数据形态有四大特点:首先数据体量巨大,非结构化数据的超大规模和增长占总数据量的80%至90%,比结构化数据增长快10到50倍;其次、大数据的异构和多样性,比如图片、新闻、博客、微博、微信等,比大更重要的是数据的复杂性,有时甚至大数据中的小数据如一条微博就具有颠覆性... 阅读全文
-
hadoop大数据处理之表与表的连接
摘要:hadoop大数据处理之表与表的连接前言:hadoop中表连接其实类似于我们用sqlserver对数据进行跨表查询时运用的inner join一样,两个连接的数据要有关系连接起来,中间必须有一个相等的字段进行连接,其实hadoop的表连接就是对文本的处理,处理的文本中有一部分的内容是一样的,然后把这鞋大量的数据按照中间的一个相同的部分进行连接,用来解决大数据在关系型数据库查询困难的问题。之前一直做c#语言的开发是一个本本分分做网站开发的程序员,像对hadoop这类用java语言做开发的内容一直属于菜鸟级别,hadoop中表连接也只最近慢慢学的,也是因为要解决工作中的一些问题慢慢熟悉起来的,在工 阅读全文
-
大数据工具篇之Hive与HBase整合完整教程
摘要:大数据工具篇之Hive与HBase整合完整教程一、引言 最近的一次培训,用户特意提到Hadoop环境下HDFS中存储的文件如何才能导入到HBase,关于这部分基于HBase Java API的写入方式,之前曾经有过技术文章共享,本文就不再说明。本文基于Hive执行HDFS批量向HBase导入数据,讲解Hive与HBase的整合问题。这方面的文章已经很多,但是由于版本差异,可操作性不大,本文采用的版本均基于以下版本说明中的版本。二、版本说明序号软件版本1Hive0.10.02HBase0.94.03Hadoop1.0.1 三、配置指南 3.1 创建配置文件 cp conf/hive-de... 阅读全文
-
架构设计:远程调用服务架构设计及zookeeper技术详解(上篇)
摘要:架构设计:远程调用服务架构设计及zookeeper技术详解(上篇)一、序言 Hadoop是一个技术生态圈,zookeeper是hadoop生态圈里一个非常重要的技术,当我研究学习hadoop的相关技术时候,有两块知识曾经让我十分的困惑,一个是hbase,一个就是zookeeper,hbase的困惑源自于它在颠覆了我对数据库建模的理解,而zookeeper的困惑却是我无法理解它到底是干嘛的。 前不久我结合我了解的一种远程调用服务的设计来帮助我理解zookeeper在实际的生产中运用,该文章的地址是: http://www.cnblogs.com/sharpxiajun/p/3297852.h.. 阅读全文
-
HBase的索引
摘要:LSM树由来、设计思想以及应用到HBase的索引讲LSM树之前,需要提下三种基本的存储引擎,这样才能清楚LSM树的由来:哈希存储引擎 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是your Mr.RightB树存储引擎是B树(关于B树的由来,数据结构以及应用场景可以看之前一篇博文)的持久化实现,不仅支持单条记录的增、删、读、改操作,还支持顺序扫描(B+树的叶子节点之间的指针),对应的存储系统就是关系 阅读全文
-
worker进程中线程的分类及用途
摘要:worker进程中线程的分类及用途欢迎转载,转载请注明出版,徽沪一郎。本文重点分析storm的worker进程在正常启动之后有哪些类型的线程,针对每种类型的线程,剖析其用途及消息的接收与发送流程。概述worker进程启动过程中最重要的两个函数是mk-worker和worker-data,代码就不一一列出了。worker顺利启动之后会拥有如下图所示的各类线程。接收和发送线程worker在启动的时候会生成进程级别的消息接收和消息发送线程,它们视具体配置而定,可以是基于zmq,也可以基于netty,这个没有太多好说的。socket connection的建立过程可以在tuple消息传递一文中找到说明 阅读全文
-
实时流式计算框架Storm 0.9.0发布通知(中文版)
摘要:实时流式计算框架Storm 0.9.0发布通知(中文版)Storm0.9.0发布通知中文翻译版(2013/12/10 by 富士通邵贤军 有错误一定告诉我 shaoxianjun@hotmail.com^_^) 我们很高兴宣布Storm 0.9.0已经成功发布,你可以从the downloads page下载. 本次发布对茁壮成长的Storm来说是一次巨大的进步。 我们追加了一些新特性,你会在下面看到详细的介绍, 此外这次发布的另一个着重点是修复了大量跟稳定性相关的 bug. 虽然很多用户已经在自己的环境中把0.9.x版本的Storm成功运行起来,但我们不保证那些版本的稳定性。0.9.0是目前 阅读全文
-
Coursera台大机器学习基础课程1
摘要:Coursera台大机器学习基础课程学习笔记 -- 1最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正。一机器学习是什么?感觉和Tom M. Mitchell的定义几乎一致,A computer program is said to learn fromexperienceE with respect to some class of tasks T and performance measureP, if its performance at tasks in T, as measured by P, improves with experience E. 阅读全文
-
MongoDB应用介绍之前
摘要:MongoDb企业应用实战(一) 写在MongoDB应用介绍之前故事背景: 本人有幸,经老友( 现为x知名快递公司技术总监 ) 推荐进入中国前三大民营快递公司之一工作,在此非常感谢他,在此也非常感谢我在第一家公司帮助我进步的兄弟(我在时的项目经理,现为 x 知名自动识别行业企业部门高级经理)。下面介绍6年后和6年前的两个单表大数据故事。(1) 6年后 单表大数据 之故事(一) 来之前老友告之现在核心运营系统 Oracle数据库中单表数据半年过10亿了,使用传统T-Sql不论如何优化,查询客户信息速度也提升不上去。需要使用企业级搜索引擎(Solr)来解决本部门其余两大辅助业务系统去查询客户信息。 阅读全文
-
HBase在单Column和多Column情况下批量Put的性能对比分析
摘要:HBase在单Column和多Column情况下批量Put的性能对比分析网址:http://www.cnblogs.com/panfeng412/archive/2013/11/28/hbase-batch-put-performance-analysis-of-single-column-and-multiple-columns.html针对HBase在单column family单column qualifier和单column family多column qualifier两种场景下,分别批量Put写入时的性能对比情况,下面是结合HBase的源码来简单分析解释这一现象。1. 测试结果在客 阅读全文
-
Hadoop集成
摘要:Hadoop集成长期以来,我每开个系列,只有兴趣写一篇,很难持之与恒。为了克服这个长久以来的性格弱点,以及梳理工作半年的积累。最近一个月会写两篇关于Mongo在地理大数据方面的实践和应用,一篇关于推荐系统的初期准备过程,一篇用户行为矩阵的可视化。希望能够立言为证,自我监督。1.驱动准备言归正传,前文MongoDB集群部署完毕之后,CRUD就是主要需求。NoSQL与普通关系数据库不同的是,避免采用ORM框架对数据库做操作,这样会带来明显的性能下降[1]。使用原生的Driver是一个较为合理的选择,Mongo支持的语言非常多,包括JS,Java,C,C++,Python,Scala等[2]。如果是 阅读全文
-
集群管理工具Salt
摘要:集群管理工具Salt简介系统管理员(SA)通常需要管理和维护数以百计的服务器,如果没有自动化的配置管理和命令执行工具,那么SA的工作将会变得很繁重。例如,要给集群中的每个服务器添加一个系统用户,那么他必须登陆到每台服务器上去逐一的执行命令。好在有编程能力的SA能通过bash + ssh的方式来自动化自己的工作,于是出现了ClusterShell这一类的工具。但这类工具只是解决了远程命令调用的问题,并没有对一些运维的过程进行抽象,在面对不同的操作系统等环境时,使用会变得复杂和繁琐,对常见的运维操作,如包管理、配置文件分发也没有很好的支持。于是出现了CFEngine,Puppet,Chef,Sal 阅读全文