Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。
Protocol Buffers 是一种序列化数据结构的方法。对于通过管线(pipeline)或存储数据进行通信的程序开发上是很有用的。这个方法包含一个接口描述语言,描述一些数据结构,并提供程序工具根据这些描述产生代码,用于将这些数据结构产生或解析数据流。
proto2 提供一个程序产生器,支持C++、Java和Python,第三方类库支持JavaScript;而到了proto3,支持C++、Java (包含JavaNano)、Python、Go、Ruby、Objective-C和C#,并且从 3.0.0 Beta 2 版开始支持JavaScript,第三方类库支持Perl、PHP、Scala和Julia。
目前版本的hadoop各种server、client RPC端通信协议的实现是基于google的protocol buffers的,所以我们在编译Hadoop源码(《Hadoop源码编译与调试》)之前需要安装好protobuf类库,否则会出现以下的错误:
[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.2.0:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: 'protoc --version' did not return a version -> [Help 1]
或者
[ERROR] Could not find goal 'protoc' in plugin org.apache.hadoop:hadoop-maven-plugins:2.2.0 among available goals -> [Help 1]
我们可以通过下面的几个步骤安装protobuf。
wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz -O protobuf-2.5.0.tar.gz tar -zxf protobuf-2.5.0.tar.gz cd protobuf-2.5.0 ./configure --prefix=/home/iteblog/protobuf-2.5.0 make && make install export PATH=/home/iteblog/protobuf-2.5.0/bin:$PATH protoc --version
如果输入 protoc --version
命令输出 libprotoc 2.5.0
则说明安装成功。
注意,如果你需要别的版本protobuf,请访问https://github.com/google/protobuf/releases。
本博客文章除特别声明,全部都是原创!原创文章版权归过往记忆大数据(过往记忆)所有,未经许可不得转载。
本文链接: 【在CentOS下编译安装Protobuf类库】(https://www.iteblog.com/archives/2167.html)