MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算
thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。
在某种意义上,WebService、REST均是RPC的实现,那么RPC的发展过程如何呢?本文参考了wikipedia,对RPC做一下简要摘记。
RPC(RemoteProcedureCall),是进程间通信(IPC,Inter-Process Communication)的一种技术,一般指不同机器上的进程间通信。在采用C等古老语言编程的时候,RPC被称作了对S端的“子程序”的调用,所以称“过程调用”。在OOP出现后,RPC也可以称为远程方法调用(RemoteMethodInvocation),或者远程调用(RemoteInvocation)。
RPC过程可以是同步的,也可以是异步的。同步方式:C端向S端发送请求,阻塞等待;S端执行一段子程序,发送响应;C端继续执行;异步方式,比如XHTTP调用。
RPC的调用过程(Stub这个术语应该是借鉴了JavaRMI):
- Client向ClientStub发送请求(Call)。
- ClientStub对请求参数进行封包(也叫Marshalling),发出系统调用,OS向S端发送消息。
- S端接收到消息后,把封包消息传递给ServerStub。ServerStub解包(UnMarshalling)。
- ServerStub调用S端的子程序。处理完毕后,以同样的方式向C端发送结果。
注:ServerStub又叫Skeleton。
什么是Stub?
Stub是一段代码,用来转换RPC过程中传递的参数。处理内容包括不同OS之间的大小端问题。另外,Client端一般叫Stub,Server端一般叫Skeleton。
生产方式:1)手动生成,比较麻烦;2)自动生成,使用IDL(InterfaceDescriptionLanguate),定义C/S的接口。
交互机制标准:一般采用IDL,生成IDL的工具 RPCGEN()。
RPC相关实现方式
- JavaRMI
- XML-RPC,XML+HTTP来进行机器之间的调用
- JSON-RPC
- SOAP,XML-RPC的升级版
- Facebook Thrift
- CORBA
- AMF,AdobeFlex
- Libevent,是一个用于构建RPC Server和Client的框架。
- WCF,来自微软
- .net Remoting,逐步被WCF取代
对大数据这一概念,大部分企业都不会陌生,而对于其中应用到的技术,却并没有几个人了解的到。一方面,很多人用到的软件都比较简洁,专业,只需要会操作就可以,比如FineBI商业智能解决方案软件,它内部所有的技术都不需要操作者了解,只需要了解表面的一些沟通需求即可,也不需要考虑如何建模,这样能够节省项目实施过程中的沟通时间,从而为企业带来更多的收益。
另一方面,很多老板也并不擅长这个,了解也对他们并没有实际作用,但是对于经常接触这些软件的人来说,了解其背后的技术,将会对自己的工作有更好的帮助。那么,大数据背后都用到了哪些技术呢?
一、NoSQL数据库
在我们生活的环境当中,新技术的出现并不会等太久就被人们所重用,事实上,很多技术在出现一个月之后就会陆续有人开始使用。NoSQL数据库在广义上本身也包含很多技术,他们关注关系型数据库引擎如索引、流媒体以及高访问网站服务等的限制,同时也关系其他的,而在这些领域当中,NoSQL数据库的使用频率最高。
二、HadoopMapReduce
这是一种能够处理大数据分析所带来的挑战的技术,不仅应用频率高,而且在处理上更有得天独厚的优势。就老家,很多企业在使用HadoopMapReduce技术研发的数据平台时,都认为是最好用的。由此可见,该技术确实能给企业带来意想不到的好处。
三、内存分析技术
内存最开始出现的时候是昂贵的,但是随着技术的进步,越来越多的内存开始出现,价格自然也是一降再降。但是性能方面却并没有降,反而有上升的趋势,这也是内存在网络中倍受欢迎的原因所在。
不仅如此,专业人士还提到,低廉的内存应用在大数据中心,具有实时、高效的优势,同时也能提升大数据的洞察力,从而为企业提供更好的数据分析和挖掘。
四、集成设备
商业智能以及大数据分析就是在数据仓库设备出现之后才被激发出来的,这种利用数据仓库技术提升自身竞争优势,走在对手前列的方式让很多企业欣喜。不过,集成设备的功效还有很多,其中能够提升传统数据库系统的作用让很多企业最为受用,再加上集成设备已经成为企业应对数据挑战大环境下的重要利器,因此该技术也备受关注。