Apache Thrift环境配置
安装Thrift的官方文档地址:
http://thrift.apache.org/docs/install/
当我看到windows安装需要Cygwin或MinGW时,我就直接放弃在windows中配置的想法了,直接打开虚拟机用CentOS进行安装,使用一堆命令安装毕竟比windows方便。
CentOS安装Thrift
官方文档地址:
http://thrift.apache.org/docs/install/centos
基本上按照官方的操作,可以一直进行到最后一组命令,就是下面这个地方:
Build and Install the Apache Thrift IDL Compiler
git clone https://git-wip-us.apache.org/repos/asf/thrift.git
cd thrift
./bootstrap.sh
./configure –with-lua=no
make
sudo make install
这一步需要特别注意,有两种途径可以选择。
由于这里使用git下载了源码,因此你当前目录使用的最新版本,在2015-9-19号写这篇文档的时候,master下面是最新的1.0.0版本,这个版本还没有发布,因此我说提供两种途径:
使用git checkout 0.9.2切换到当前已经发布的0.9.2版本再继续
在当前master(未发布的1.0.0版本)上继续
注:用git下载源码比较费时间,最快的方式就是直接从官方下载指定版本的压缩包。
我个人由于是事后才发现的这个问题,因此我是在第二种情况下操作的。
我个人建议选择已经发布的稳定的版本进行操作。如果操作过程中出现错误,也许下面针对第二种情况的解决办法同样适用于第一种情况。
在当前master(未发布的1.0.0版本)上继续
由于我是直接按照官方文档的操作,在master的情况下执行了上面的命令,因此出现了一些错误。
在继续上面最后的这一部分操作前,你需要先安装一些必备的依赖。如果没有事先安装这些依赖,可能会出现下面这个错误:
make出现Error:TNonblockingServer.h:41:33: error: event2/event_compat.h …
类似上面这样的错误,解决方法是从下面的地址:
http://libevent.org/
下载libevent,我直接下载的最新版本libevent-2.0.22-stable.tar.gz,这个版本可以解决上面的问题,其他版本没有尝试。
安装完成后,如果你之前已经执行了make,那么建议你git gc清理目录。
然后再继续下面的操作:
./bootstrap.sh
./configure –with-lua=no
make
sudo make install
正常情况下应该就能顺利安装完成了(如果出错,你是否没有执行git gc?)。
打包1.0.0版本jar包
由于当前还没发布1.0.0版本,因此如果你使用0.9.2版本会有一些错误,所以还要自己手动打包。
进入thrift/lib/Java目录,你需要先配置好jdk和ant。然后在这个目录打开终端,执行ant命令。
执行成功后,在build目录下就能看到libthrift-1.0.0.jar和libthrift-1.0.0.pom文件。
这里需要手动修改libthrift-1.0.0.pom文件,将<packaging>pom</packaging>改为<packaging>jar</packaging>,这里如果不修改为jar,就没法通过下面的命令用最简单的方式导入本地仓库(安装打包类型为pom的时候不会上传jar包,所以要改成jar,但是官方的打包类型确实就是奇葩的pom,谁能解释为什么?)。 将这两个文件复制到你要使用的电脑上,然后使用如下命令安装到本地仓库:
mvn install:install-file -Dfile=libthrift-1.0.0.jar -DpomFile=libthrift-1.0.0.pom
安装到本地后,在maven中就可以使用:
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>1.0.0</version>
</dependency>
到这里就可以开始使用thrift了。
总结
以上所述是小编给大家介绍的Apache Thrift环境配置,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!
- 【视频】自然框架之分页控件的使用方法(一) PostBack方式的一般分页方式
- Java中的Socket编程学习
- 【视频】自然框架之分页控件的使用方法(二) 下载、DLL说明和web.config的设置
- Jsp开发中遇到的中文乱码问题及解决方法
- 开发中最常见的Java字符串问题总结
- .net异步性能测试(包括ASP.NET MVC WebAPI异步方法)
- Java 8的函数式编程学习
- 在C++中反射调用.NET(一) 反射调用第一个.NET类的方法
- QuickPager分页控件,最简单的设置代码
- Java中有关Null的9问题
- 在C++中反射调用.NET(二) 定义数据接口 绑定委托方法 使用SOD DTO 对象 将.NET对象转换到C++结构体为何不使用序列化的问题
- Java阻塞队列线程集控制的实现方法
- 【自然框架】QuickPager分页控件,新增一种分页方式——伪URL分页(Postback版)
- 我们的漏洞Webug 3.0中级进阶攻略(上)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- windows下安装Postman
- 【Pytorch 】笔记七:优化器源码解析和学习率调整策略
- 【Pytorch 】笔记六:初始化与 18 种损失函数的源码解析
- logstash index 生成时间晚 8 小时
- top 命令查看cpu利用率超过500%
- 【Pytorch 】笔记四:Module 与 Containers 的源码解析
- 控制pod内container执行顺序的几种姿势
- 本地部署istio多集群(共享控制面)
- elasticsearch unassigned shard
- 【Pytorch 】笔记五:nn 模块中的网络层介绍
- docker浅入深出4
- BFE.dev前端刷题#58. 获取DOM tree高度
- 如何在Tungsten Fabric上整合裸金属服务器(附配置验证过程)
- 逐行阅读Spring5.X源码(三) BeanDefinition的实现类详解,拔高
- 逐行阅读Spring5.X源码(番外篇)BeanDefinition到底有多重要