thrift例子:python客户端/java服务端
2017-08-25 11:41
585 查看
java服务端的代码请看上文。
1、说明:
这两篇文章其实解决的问题是,当使用python去访问大数据线上集群的时候,遇到两个问题:
1)python-hadoop和python-hive相关包链接不稳定,表现为经常出现链接超时;
2)如果使用fork进程执行hadoop fs或者hive -e的方式则消耗大量的机器资源,包括进程资源和集群链接资源。
我们的解决方式是写一个java的代理服务,使用java-hadoop封装了对集群的操作,通过thrift提供接口给python程序。
2、编译.thrfit
jazz.thrift内容如下
会生成python的package gen-py,将它拷贝到你的工程中。
3、python客户端
你需要安装python的thrift支持。
python客户端的代码如下:
1、说明:
这两篇文章其实解决的问题是,当使用python去访问大数据线上集群的时候,遇到两个问题:
1)python-hadoop和python-hive相关包链接不稳定,表现为经常出现链接超时;
2)如果使用fork进程执行hadoop fs或者hive -e的方式则消耗大量的机器资源,包括进程资源和集群链接资源。
我们的解决方式是写一个java的代理服务,使用java-hadoop封装了对集群的操作,通过thrift提供接口给python程序。
2、编译.thrfit
thrift -gen py jazz.thrift
jazz.thrift内容如下
namespace java com.xiaoju.dqa.jazz.iface service JazzService{ bool exists(1:string path) }
会生成python的package gen-py,将它拷贝到你的工程中。
3、python客户端
你需要安装python的thrift支持。
pip install thrift
python客户端的代码如下:
#!/usr/bin/env python #-*- coding:utf-8 -*- import sys sys.path.append('./gen-py') import traceback from jazz import JazzService #引入客户端类 from thrift import Thrift from thrift.transport import TSocket from thrift.transport import TTransport from thrift.protocol import TBinaryProtocol, TCompactProtocol try: #建立socket transport = TSocket.TSocket('localhost', 9090) #选择传输层,和服务端一致 # transport = TTransport.TFramedTransport(transport) # transport = TTransport.TFramedTransportFactory().getTransport(socket) #选择传输协议,和服务端一致 transport = TTransport.TBufferedTransport(transport) protocol = TBinaryProtocol.TBinaryProtocol(transport) #protocol = TCompactProtocol.TCompactProtocol(transport) #创建客户端 client = JazzService.Client(protocol) transport.open() is_exists = client.exists("/home/.../...") print is_exists #关闭传输 transport.close() #捕获异常 except Thrift.TException, ex: traceback.print_exc()
相关文章推荐
- thrift JAVA服务端 python客户端的实现
- 分享下我学习Thrift的入门例子helloworld,客户端用php,服务端用python
- 分享下我学习Thrift的入门例子helloworld,客户端用php,服务端用python:
- netty学习九:(window7上)python客户端通过thrift调用java服务端
- thrift JAVA服务端 python客户端的实现
- java实现Thrift服务端和客户端
- 【转载】Java数据接口编写简单例子,Java Json解析,服务端接口输出Json数据,客户端通过HTTP获取接口Json数据,作者:Jaiky_杰哥
- thrift使用:java作为client端调用python服务端
- thrift C++做server, C++,python, java做Client例子
- windows基于Thrift的php客户端访问java的服务端
- android binder - 客户端(java层) 调用 服务端(c++层) 例子
- java服务端,python客户端交互
- thrift应用举例(c/c++作为服务端、java作为客户端)
- python thrift搭建服务端和客户端测试程序
- Rest Post示例(java服务端、python客户端)
- java学习总结——Apache thrift服务端与客户端的创建
- python thrift 服务端与客户端使用
- JAVA SOCKET 服务端/客户端可随时从任意一方发消息的例子
- android binder - 客户端(java层) 调用 服务端(c++层) 例子
- thrift C++做server, C++,python, java做Client例子