上一篇介绍了一个job的提交过程.期间多次提到通信协议.那么协议是什么? 协议其实就是通信的双方所遵守的一套规范,这套规范规定了通信时传输的数据的固定的格式. 4.1 RPC协议:在hadoop中,我们采用的是RPC协议. 该协议主要包含四个部分: 序列化层:协议中的参数采用Protocol Buffers来序列化/反序列化. 这个Protocol Buffers是一种数据存储格式,可以理解我们按照其语法格式定义一个数据结构类model,然后使用工具(Protocol Buffers编译器)编译…
老老实实学WCF 第五篇 再探通信--ClientBase 在上一篇中,我们抛开了服务引用和元数据交换,在客户端中手动添加了元数据代码,并利用通道工厂ChannelFactory<>类创 建了通道,实现了和服务端的通信.然而,与服务端通信的编程模型不只一种,今天我们来学习利用另外一个服务类ClientBase<>来完成 同样的工作,了解了这个类的使用方法,我们对服务引用中的关键部分就能够理解了. ClientBase<>类也是一个泛型类,接受服务协定作为泛型参数,与Ch…
RPC(Remote Procedure Call) 是 Hadoop 服务通信的关键库,支撑上层分布式环境下复杂的进程间(Inter-Process Communication, IPC)通信逻辑,是分布式系统的基础.允许运行于一台计算机上的程序像调用本地方法一样,调用另一台计算机的子程序.由于 RPC 服务整体知识较多,本节仅针对对 Yarn RPC 进行简略介绍,详细内容会后续开专栏介绍. 一.RPC 通信模型介绍 为什么会有 RPC 框架?在分布式或微服务情境下,会有大量的服务间交互,如…
从今天开始新的系列:Hadoop总结篇 之前的hadoop学习篇由于是学习过程中随手记下来的一些内容,不具有系统性.所以在这个系列中,将凭着这段时间的研究心得,来记录一些自认为比较重要的东西. 本系列的主要参考书目是<Hadoop技术内幕:深入解析Yarn架构设计与实现原理> 比如作业从提交到执行到写出结果,将有一个从浅到深,逐步深入的过程.另外一些开发过程中使用到的比较零碎的东西,将会以外篇的形式记录. hadoop版本:2.7.X 由于是第一篇,那么先来个综述吧. 学习hadoop我们到底…
Scala进阶之路-Spark底层通信小案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Spark Master和worker通信过程简介 1>.Worker会向master注册自己: 2>.Master收到worker的注册信息之后,会告诉你已经注册成功,并给worker发送启动执行器的消息: 3>.Worker收到master的注册消息之后,会定期向master汇报自己的状态: 4>.master收到worker的心跳信息后,定期的更新worker的…
我们会定义Job,我们会定义map和reduce程序.那么,这个Job到底是怎么提交的?提交到哪去了?它到底和集群怎么进行交互的呢? 这篇文章将从头讲起. 开发hadoop的程序时,一共有三大块,也就是Driver.map.reduce,在Driver中,我们要定义Configuration,定义Job,在mian方法最后,往往会以这么一段代码结尾: if (!job.waitForCompletion(true)) return; 而这句的作用,就是提交了我们的Job.进入代码里(其实就是Jo…
在弄清楚yarn是什么之前,先来看一下MRv1. 它的由编程模型+数据处理引擎(map/reduceTask)+运行时环境组成(JobTracker/TaskTracker).其中JobTracker存在很多问题,如下: 1.JobTracker本身承担了调度和计算的任务,太累了 2.JobTracker是单点的,不好扩展不能支持其他计算框架,还有单点故障风险 3.资源是以槽位的方式来调度.粗粒度,不合理.比如提交了一个特别占用资源的任务,整个节点就被占用了.还有map阶段往往reduce槽位就…
虚拟机以及Linux系统安装在之前的两篇分享中已经详细的介绍了方法,并且每一步的都配图了.如果有朋友还是看不懂,那我也爱莫能助了.本篇主要就hadoop服务器操作系统配置进行详细说明,hadoop安装会在下一篇文章中详细的介绍. hadoop安装包用的是大快DKHadoop发行版,个人觉得DKHadoop的安装过程是比较简单,关于dkhadoop的安装在下一次的分享中再详细介绍吧.下面进入到本篇的主题——服务器操作系统配置教程  一.安装包准备 1.虚拟机分布式安装(三台及以上虚拟机) 若是个人…
Hadoop详解 1.前言 对于初次接触Hadoop的小伙伴来说,Hadoop是一个很陌生的东西,尤其是Hadoop与大数据之间的关联,写这篇文章之前,我也有许多关于Hadoop与大数据的疑惑,接下来让我带着和大家共同的疑惑去探索Hadoop.以下仅为我个人的理解和资料查找,仅供参考,结果存在差异性. 2.Hadoop介绍 第一问:我们为什么要学习Hadoop,网上说Hadoop的作用是能够处理海量数据,那我们为什么不能直接用数据库+大量磁盘呢,或者其他工具? 首先考虑的是成本问题,数据库庞大的…
在一个全配置的集群上,运行Hadoop意味着在网络分布的不同服务器上运行一组守护进程 (daemons),这些守护进程或运行在单个服务器上,或运行与多个服务器上,他们包括: (1) NameNode(名字节点) (2) DataNode(数据节点) (3) Secondary NameNode (次名节点) (4) JobTracker  (作业跟踪节点) (5) TaskTracker (任务跟踪节点) NameNode 被认为是Hadoop守护进程中最重要的一个,可以说,NameNode就是…
Hadoop是Apache Lucene创始人Doug Cutting创建的,Hadoop起源于Apache Nutch,一个开源的网络搜索引擎.最先引起注意是2003年google的一篇论文,该论文实现了谷歌分布式文件系统,也就是GFS,2004年,他们开始着手实现一个开源的实现,也就是HDFS, 紧接着,google的另一篇论文MapReduce公布.尽管Hadoop因为MapReduce及其分布式文件(HDFS)而出名,但是Hadoop也用于一组相关项目的名称,这些项目都是使用Hadoop…
富貴必從勤苦得,男兒須讀五車書.唐.杜甫<柏學士茅屋> 作为程序员的我们,须知富贵是要通过勤苦努力才能得到的,要想在行业内有所建树,就必须刻苦学习和钻研. 今天我们来讲一下Android中Service的相关内容. Service在Android中和Activity是属于同一级别上的组件,我们可以将他们认为是两个好哥们,Activity仪表不凡,迷倒万千少女,经常做一些公众人物角色,而Service一副彪悍的长相,但却身强力壮,常常在后台做一些搬运工的力气活,虽然有些累,但大家都不能失去他.…
一.RPC(Remote Procedure Call  ) :远程过程调用 1.RPC是远程过程调用协议,实现调用者和被调用者二地之间的连接和通信.其基本通信模型是基于client/server进程间相互通信模型 ,如图1所示.                                图 1    使用RPC调用完成远程调用示意图 2.利用HADOOP的RPC框架实现Server和Client远程通信 (1)定义一个接口    MyInterface (2) 定义接口的实现类 (3)RP…
HDFS的客户端核心是DFSClient类,所有使用HDFS的客户端都会持有一个DFSClient对象,或通过持有一个DistributedFileSystem对象间接使用DFSClient: DFSClient通过ClientProtocol向NameNode进行元数据请求: 当需要进行数据请求时,DFSClient会通过访问的类型(读.写)分别构造DFSInputStream.DFSOutputStream对象:这两个类通过ClientDatanodeProtocol与Datanode进行R…
在前几篇的文章中分别就虚拟系统安装.LINUX系统安装以及hadoop运行服务器的设置等内容写了详细的操作教程,本篇分享的是hadoop的下载安装步骤. 在此之前有必要做一个简单的说明:分享的所有内容是以个人的操作经验为基础,有的人看完可能会说跟他做过的不一样.这个可能还是跟大家所使用的发行版hadoop不同造成的吧.我是下载的一个大快搜索的DKhadoop发行版,三个节点的标准版本,个人研究或者学习hadoop三节点完全够用.DKhadoop三节点的发行版我记得是现在应该也是免费开放下载的,之…
以前一直不太重视java 基础的整理,感觉在实际开发中好像java 基础用处不大,感觉不理解一些底层的东西对开发工作影响也不大.不过,后来我发现,很多东西都是相互联系的,如果底层的东西你不理解,后面的很多与之有联系的工具.框架等用起来会糊里糊涂的,出错之后也不能高效地准确定位,所以,接下来打算好好整理下java SE部分的基础知识,今天首先整理下Socket通讯方面的基础知识. 一.Socket是什么 1.客户与服务器 在接触Socket之前,请先看下面的丑图: 一般来说,现在很多应用都是这样的…
tcp  通信 [root@hadoop2 logs]# netstat --numeric-ports -a -tActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:9864 *:* LISTEN tcp 0 0 *:25672 *:* LISTEN tcp 0 0 localhost:9000 *:* LIS…
导读: 网上看了很多篇有关socket本地通信的示例,很多都是调通服务端和客户端通信功能后就没有下文了,不太实用,真正开发中遇到的问题以及程序稳定性部分没有涉及,代码健壮性不够,本系列(socket本地通信篇)会先直接调通linux本地socket通信,提供最基本的服务端和客户端代码,然后根据实际开发中遇到的问题和优化建议,再提供一版健壮版本的服务端代码.再次明确一点,本篇博文不会搬移太多概念性的东西,比如三次握手协议,还有各个unix系统调用的功能. 1.服务端: 先捋清调用的一个时间顺序,U…
    设备与设备之间的通信往往都伴随着总线的使用,而用得比较多的就当属于SPI总线和I2C总线,而恰巧NodeMcu也支持这两种总线通信,所以本章的主要内容就是讲解ESP8266 SPI和I2C总线的使用. 1. SPI总线--SPI类库的使用     SPI是串行外设接口(Serial Peripheral Interface)的缩写.是Motorola公司推出的一种同步串行接口技术,是一种高速的.全双工.同步的通信总线.通过它可以连接使用同样接口的外部设备.例如,ESP8266模组上,ES…
本文是精讲RestTemplate第2篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 RestTemplate只是对其他的HTTP客户端的封装,其本身并没有实现HTTP相关的基础功能.其底层实现是可以配置切换的,我们本小节就带着大家来看一下RestTemplate底层实现,及如何实现底层基础HTTP库的切换. 一.源码分析 RestTemplate有一个非常重要的类叫做HttpAccessor,可以理解为用于HTTP接触访问的基…
建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket . 套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认. 服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求. 客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字.为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端…
1 hadoop整体架构 2 各组件关系 hdfs只是一个存储空间,他的完整名字是分布式文件系统.有名可知他的作用了. hbase是一个内存数据库,简单点说hbase把表啊什么的存在hdfs上.…
一个DataNode上的Block是唯一的,多个DataNode可能有相同的Block. 2)通信场景: (1)NameNode的映射表上不永久保存每个DataNode所对应的block信息,而是通过DataNode启动时的上报,来更新NameNode上的映射表(DataNode和Block). (2)DataNode和NameNode建立连接后,会定期心跳检测更新信息,心跳的返回也包含NameNode对DataNode的一些命令. (3)DataNode也作为服务器接受来自客户端的访问,处理数…
1.TCP相互通信 服务端示例: tcp_server.go package main import ( "fmt" "net" ) func main() { //监听 listener, err := net.Listen("tcp", "127.0.0.1:8000") if err != nil { fmt.Println("err = ", err) return } defer listener…
在MRv1中,各个模块间驱动运行的方式是函数调用的方式.这是同步的过程,上一模块调用下一模块函数后,等待其执行.效率不高. 在MRv2中做了改进,yarn基于事件驱动的并发模型.在详细介绍前,先看下图: 处理请求会作为事件进入系统,有中央异步调度器[AsyncDispatcher]传递给对应的事件调度器[Event Handler].事件调度器再将该时间转发给另外的事件调度器或者交给一个带有有限状态机的事件处理器,其处理结果也以事件形式输出给中央异步调度器. 在yarn中,核心服务都是一个中央异…
转:http://www.cnblogs.com/forfuture1978/archive/2010/11/19/1882268.html…
Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Looper+MessageQueue深入详解Android异步处理四:AsyncTask的实现原理 Android异步处理四:AsyncTask的实现原理 概述:AsyncTask的本质是一个线程池,所有提交的异步任务都会在这个线程池中的工作线程内执行,当工作线程需要跟UI线程交互时,工作线程会通过向在UI…
rpc是Hadoop分布式底层通信的基础,无论是client和namenode,namenode和datanode,以及yarn新框架之间的通信模式等等都是采用的rpc方式. 下面我们来概要分析一下Hadoop2的rpc. Hadoop通信模式主要是C/S方式,及客户端和服务端的模式. 客户端采用传统的socket通信方式向服务端发送信息,并等待服务端的返回. 服务端采用reactor的模式(Java nio)的方式来处理客户端的请求并给予响应. 一.客户端到服务端的通信 下面我们先分析客户端到…
Hadoop基础-MapReduce入门篇之编写简单的Wordcount测试代码 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本文主要是记录一写我在学习MapReduce时的一些琐碎的学习笔记, 方便自己以后查看.在调用API的时候,可能会需要maven依赖,添加依赖的包如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.ap…
问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题? 5.如何编译hadoop源码? 阅读此篇文章,需要些基础下面两篇文章 零基础学习hadoop到上手工作线路指导(初级篇) 零基础学习hadoop到上手工作线路指导(中级篇) 如果看过的话,看这篇不成问题,此篇讲hadoop编程篇. hadoop编程,hadoop是一个Java框架,同时也是编程的一次革命,…