大数据
土豆钊
求知若渴,大智若愚
展开
-
最详细的Hadoop集群搭建
本文,针对hadoop的整体搭建过程,给予一个详细的介绍。1:hadoop版本:采用hadoop-2.6.5版本,下载地址:下载地址下载190M的tar包即可,该包是编译直接可用的。2:我使用的机器版本:Linux version 2.6.32-504.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.7 201203...原创 2018-05-07 13:19:58 · 8701 阅读 · 0 评论 -
详细解析如何运行hadoop自带例子
本文,简单介绍下,如何运行hadoop自带的mapreduce的那些例子。本文针对的hadoop版本,是2.6.5版本,自带的例子包名为:hadoop-mapreduce-examples-2.6.5.jar;位于/share/hadoop/mapreduce目录下。简单来说,如果想要完成范例的运行,直接:hadoop jar hadoop-mapreduce-examples-2.6.5.jar...原创 2018-05-07 19:10:38 · 8503 阅读 · 0 评论 -
关于Yarn源码的那些事(一)
作为新一代的资源调度统一框架,Yarn(Yet Another Resource Negotiator),在不断的完善过程中,其用途已经绝不限于Hadoop的生态圈内,业界中,流式计算如Storm,Spark均可以在一定的封装之后,运行于Yarn上,但是,就目前的发展进度来说,Yarn的基本框架,还是没有彻底的变化。就Yarn的整体架构来说,ResourceManager作为资源调度框架的老大,集...原创 2018-05-08 11:56:04 · 1632 阅读 · 0 评论 -
关于Yarn源码的那些事(二)
本文,讨论一下提交的MapReduce作业,究竟是如何运行起来的?还是基于Hadoop 2.2.0的版本,力求能够从源码角度将该问题讲述清楚。本文会尽可能解决系列(一)中提出的那些问题,并且提出一些新的问题。1:我们提交的MapReduce程序,到底是如何运行在Yarn框架上的?这个问题,一点点来定位。首先,我们需要在mapred-site.xml配置文件中指定mapreduce.framewor...原创 2018-05-08 16:35:41 · 1244 阅读 · 0 评论 -
关于Yarn源码的那些事(三)
接系列(二)。介绍完ApplicationSubmissionContext之后,继续下去:@Override public YarnClientApplication createApplication() throws YarnException, IOException { ApplicationSubmissionContext context = Records....原创 2018-05-08 19:35:16 · 947 阅读 · 1 评论 -
关于Yarn源码那些事-番外-Yarn的异步调度
在Yarn源码的研究过程中,有些概念比较重要,譬如Yarn的调度机制,事件机制和服务库等,这些概念有些含混,我们还是从源码角度上,来对这些概念一点点进行深入了解,对于了解Yarn的运行机制,有很大的好处。本文,从源码层面来说一下Yarn的异步调度,这个词可能不太合适,直接看源码吧(想到哪儿,说到哪儿):从ResourceManager说起(这里是基于2.6.5版本的Hadoop):1:RM中的调度...原创 2018-05-15 18:18:17 · 609 阅读 · 0 评论 -
分析MapReduce模型源码
在MapReduce编程模型中,有一个东西吸引了我的兴趣:代码如下:public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private...原创 2018-05-26 17:13:25 · 1372 阅读 · 0 评论 -
关于Yarn源码那些事-番外-Yarn的状态机
上一篇番外,写了Yarn的调度机制,这种大型的调度,主要用于类与类之间的调度,简单来说,就是一个类对于那些觉得自己管控不了的事情,就将其扔给别人来处理。Yarn中很多的类都是有调度器的,而且它们大多都持有全局调度器,对于自己处理不了的事情,干脆利落地将其扔到RM或者NM的调度器中。全局调度器就相当于一个统筹者,一根线,把所有的类给串起来,而在很多类的内部,同样支持事件的处理,而本文就讨论下这种处理...原创 2018-05-16 00:50:36 · 737 阅读 · 0 评论 -
关于Yarn源码的那些事(六)
终于可以继续写ApplicationMaster提交和运行的整体流程了。在上次分析到RMAppAttemptImpl的时候,觉得自己对于调度器和状态机了解地不是很清楚,因此暂停,先把一些需要了解的概念分析清楚,今天,继续分析ApplicationMaster提交运行的整体流程:上文中,我们提到,RMAppAttemptImpl的状态从RMAppAttemptState.SCHEDULED,在事件R...原创 2018-05-16 15:23:15 · 494 阅读 · 0 评论 -
关于Yarn源码那些事(七)
上文说到,需要指定Container所在的NM启动其上的Container,我们看看这个方法的内容:/** * Start a list of containers on this NodeManager. */ @Override public StartContainersResponse startContainers( StartContainersRequest req...原创 2018-05-16 18:21:17 · 859 阅读 · 1 评论 -
Hive安装-完美教程
废话少说,开门见山。1:hive版本:2.3.3下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/2:hadoop版本:2.7.63:hbase版本:1.3.2hive部署在hadoop的Master机器上,这里,主要针对conf下若干文件进行修改,并替换和删除lib目录下的包:首先,修改hive-env.shcp hive-env.sh....原创 2018-05-24 16:35:48 · 5959 阅读 · 1 评论 -
MapReduce模型中的一些细节讨论
MapReduce的分析模型中,还是有些东西值得讨论和研究的:本文讨论一些MapReduce执行过程中的细节问题,可与本人另外一篇博客相互对照学习:接下来,进入正文(本文讨论依旧是基于Hadoop-1.0.0):-----------------------------------------------------------public static class IntSumReducer e...原创 2018-06-06 18:49:18 · 307 阅读 · 0 评论 -
Hbase面试的那些问题
找了一些hbase的面试题,在此汇总一下:1:什么是HBase:从最基本的含义说起,hbase就是一个分布式的NoSql数据库,其建立在HDFS分布式文件存储系统的基础之上,HBase的搭建需要依赖于HDFS,从其配置文件就可以看出,其数据存储的底层,也是依赖于Hbase;定义没什么可说的,就是一种建立在HDFS基础之上的分布式数据库:2:聊一聊MySQL和Hbase的区别这个问题太泛泛,简单说几...原创 2018-06-25 22:56:30 · 3808 阅读 · 0 评论 -
浅析Yarn中的关键概念-Container
初学Yarn的时候,对于Container的概念感觉非常陌生,即便是后期用了很长时间的Yarn平台,依旧觉得对于Container这个概念没有达到非常熟悉的程度:本文,从源码的角度上来说说,到底什么是Container:说起来非常容易,Container就是Yarn中的一个动态资源分配的概念,其拥有一定的内存,核数,由RM分配给ApplicationMaster或者MapTask或者ReduceT...原创 2018-06-20 11:10:32 · 13141 阅读 · 0 评论 -
聊聊Spark中的宽依赖和窄依赖
开门见山,本文就针对一个点,谈谈Spark中的宽依赖和窄依赖,这是Spark计算引擎划分Stage的根源所在,遇到宽依赖,则划分为多个stage,针对每个Stage,提交一个TaskSet:上图:一张网上的图:基于此图,分析下这里为什么前面的流程都是窄依赖,而后面的却是宽依赖:我们仔细看看,map和filter算子中,对于父RDD来说,一个分区内的数据,有且仅有一个子RDD的分区来消费该数据。同样...原创 2018-07-08 22:35:46 · 10792 阅读 · 10 评论 -
关于Yarn源码那些事前传-NodeManager(二) 服务启动篇
上文说了NodeManager的初始化,本文说下其服务启动的代码:@Override protected void serviceStart() throws Exception { try { doSecureLogin(); } catch (IOException e) { throw new YarnRuntimeException("Failed NodeManag...原创 2018-05-13 17:04:34 · 758 阅读 · 0 评论 -
Flume之Source全面解析
网上关于Flume的解析已经非常非常多了,本文重在于介绍使用Flume过程中常用的诸多Source。详细介绍如下,另附官网链接:flume官网(1)Avro source:flume第一种数据来源,可以监听IP和端口,并不一定是本机的IP,可以监听其他机器的IP和port,用于获取数据,需要指定type,bind,以及port,其他都可以使用默认配置,而且可以配置拦截哪些IP的请求,对其不进行监听...原创 2018-03-04 14:34:47 · 6624 阅读 · 0 评论 -
实时日志监控系统-全览
大数据处理,大致可以分为两大模块:离线数据处理:比如说电商、运营商出现的大批量的日志,可以由flume、sqoop或者其他路径,导入到HDFS中,然后经过数据清洗,使用Hive进行分析和处理,对于优化服务器资源等有很好的作用;个人觉得,支付宝的年账单就是离线数据处理的应用之处了。实时数据处理:对于有些业务需要,可能第二天或者更晚的时候进行分析无关紧要,但对于一些高频的金融交易来说,实时性就太重要了...原创 2018-03-03 16:26:22 · 22623 阅读 · 7 评论 -
Storm浅析
本文分为几个模块:1:Storm的原理和基本架构2:Storm的应用场景及实例3:Storm与Spark的比较下面开始介绍,参考资料会列在文章末尾。1:Storm的原理和基本架构(1)原理及核心概念分布式的实时计算系统,能够可信任的处理大量的流式数据,就好比Hadoop对于批量数据进行的处理一样;通常来说,Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Stor...原创 2018-03-02 14:33:38 · 7865 阅读 · 0 评论 -
Hive全面深入理解
本文分为几个模块:概述体系架构简介安装步骤开发1:概述建立在Hadoop基础之上的数据仓库基础架构,通俗来说,就是数据管理的工具,可以通过编写类似于常用SQL的HQL查询语句,实现大规模数据的查询和处理,而底层则是用MapReduce来完成提交的语句的处理;也就是说,Hive的功能,很多也可以通过自己开发MapReduce程序来处理;数据的存储,则是依据HDFS来完成的。Hive的核心功能是SQL...原创 2018-03-01 00:27:50 · 1195 阅读 · 0 评论 -
Hbase原理理解
注:本博客乃是自己对于Hbase的一部分理解,所参考的资料,会列在本文的末尾处。先来上一张随处可见的图:Hbase即分布式的数据库,其底层基于HDFS,提供了随机访问的存储和检索数据的功能。对于HDFS来说,实现随机访问的代价太高了,因为hdfs使用的更好情况是,基于文件的顺序读写;但是,其本身的实时性能也并不是很高。HBase的文件存储是基于HDFS,其底层的运算采用的是MapReduce,这里...原创 2018-02-26 23:01:28 · 2879 阅读 · 0 评论 -
浅谈MapReduce核心之shuffle
Hadoop拥有三大核心组件,HDFS作为底层的分布式文件系统,MapReduce作为计算框架,yarn作为资源调度管理器。对于开发人员来说,理解MapReduce是很重要的。在WordCount程序中,map生成的结果是一个个的元组,类似于(hello,1),非常非常多的元组,由context写入到hdfs中,而后续的Reduce阶段,实际上reduce方法接收的参数类似于这种,(hello,&...原创 2018-02-27 23:42:41 · 262 阅读 · 0 评论 -
最全Flume、ElasticSearch、Kibana实现日志实时展示
今天一天的时间,成功使用flume把日志扇入ElasticSearch中,并运行Kibana实现日志的初步展示,记录于此。1:ES集群的搭建不予赘述,可参考:如何搭建ES集群2:Flume与ES协同这一部分堪称是重中之重,主要的时间就是花费在这上面了。flume的sink里,其实是有ElasticSearchSink的,我的打算,也是想直接使用其实现功能即可,后发现,ES使用的版本过高,但又不想照...原创 2018-03-20 20:24:09 · 7706 阅读 · 1 评论 -
从Intellij IDEA开始第一个Spark程序
先前在Windows上倒腾了一份Scala的开发环境,然后换到Mac环境上,重新来了一遍,为了防止自己的再度忘记,记录在本博客中。好,废话不说,开始。1:Intellij IDEA的安装习惯用Eclipse了,最近才开始使用Intellij IDEA,感觉功能还是很强大的;这里只讲述具体的安装,我安装的是community版本,2017.3.15的版本,最近更新的社区版本了。下载地址里面有wind...原创 2018-03-24 20:22:59 · 10589 阅读 · 1 评论 -
关于Yarn源码那些事-前传之ResourceManager篇(一)初始化
在关于Yarn那些事的博客里,介绍的主要是针对任务提交的一个动态流程说明,而其中牵涉到的一些细节问题,必须通过Resourcemanager的启动和NodeManager的启动,来更好的说明。而本系列,就详细说说ResourceManager启动过程中,都发生了什么。我们都知道,Yarn的启动脚本是start-yan.sh,我们就从这个脚本开始,琢磨琢磨。"$bin"/yarn-daemon.sh...原创 2018-05-12 14:51:51 · 1276 阅读 · 0 评论 -
从源码看Yarn上的MapReduce(一)
本系列并不过多涉及Yarn的相关源码,重点在于,分析MapReduce这个计算模型,到底是如何跑起来的,无论是在Yarn上,还是在MR1上。本文有些内容与关于Yarn源码系列有交汇,两相对照,学习更深入。本文基于2.6.5的Hadoop源码:我们从头来看,比如说我提交了一个简单的Job程序,其中有Main方法 Configuration conf = new Configuration(); ...原创 2018-05-17 19:35:20 · 439 阅读 · 0 评论 -
关于Yarn源码那些事-前传之ResourceManager篇(二) 启动篇
上文说了下服务的初始化,本文认真说下服务的启动。RMStateStore rmStore = rmContext.getStateStore(); // The state store needs to start irrespective of recoveryEnabled as apps // need events to move to further states. rmSt...原创 2018-05-12 17:01:38 · 1024 阅读 · 0 评论 -
关于Yarn源码的那些事(四)
紧接着系列(三)。前面的介绍,基本都比较浅显易懂,讲述了Yarn的Client提交新的Application给ResourceManager,后者返回唯一的ID。本文索要讲的,是RM端如何把Application的ApplicationMaster给启动起来的。力求通俗易懂,但是看起来没那么容易。追溯下来,我们发现第二次提交Application的逻辑,是由YarnRunner来实现的,实现如下:...原创 2018-05-12 23:46:34 · 1260 阅读 · 0 评论 -
关于Yarn源码的那些事(五)
上文说到ApplicationMaster的调度便戛然而止,本文继续。private static final class AddApplicationToSchedulerTransition extends RMAppTransition { @Override public void transition(RMAppImpl app, RMAppEvent event) { a...原创 2018-05-14 23:53:56 · 824 阅读 · 0 评论 -
关于Yarn源码那些事-前传之NodeManager(一) 初始化篇
本文,说下NodeManager篇:本文重在于介绍初始化部分:还是从start-yarn.sh的脚本追本溯源,最后发现启动的类是NodeManager:package org.apache.hadoop.yarn.server.nodemanager;public static void main(String[] args) { Thread.setDefaultUncaughtExcep...原创 2018-05-13 15:37:31 · 527 阅读 · 0 评论 -
土豆面试系列(三)
开门见山!***************************************************************1:如何最有效率地计算2*8?很老的一道题了,直接左移三位,即2<<3;利用二进制,移位操作,这是最快的方式;移位可比普通的四则运算速度快。2:请简单介绍下,JVM加载类的机制?这个问的不多,但大点的公司对于底层要求还是比较严的,在此参考周志明的那本书...原创 2018-03-15 23:31:08 · 373 阅读 · 1 评论