通过ICE接口对hbase进行文件操作
来源:互联网 发布:泛型 java 编辑:程序博客网 时间:2024/06/05 11:51
最近开发了几个对集群做文件操作的模块,都是基于python(2.7)。下面记录一下对通过ICE接口,写HBASE的模块,贴出部分代码。
1. 关于ICE
ICE是一个中间件,我们可以通过ICE,不考虑server和client分别是什么,进行跨集群的操作。ice已经有很多资料可供学习,以后也会自己总结一个关于ice的文档
2. 依赖包
ICE
3. 源码及解释
模块实现的基本内容就是,连接ice服务,按照一定的json格式,将要操作的文件信息及路径传给ice,定的接口json如下:
zip源:{ "taskId":"asdfsdafdsf2o3r", "files": ["aaa/bbb/a.txt", "aaa/ccc/b.txt"], "parent": "/usr/data/input/1/aaa.zip", "parentType": "zip"}目录源:{ "taskId":"asdfsdafdsf2o3r", "files": ["aaa/bbb/a.txt", "aaa/ccc/b.txt"], "parent": "/usr/data/input/1/", "parentType": "nfs"}入库结果:{ "taskId":"asdfsdafdsf2o3r", "parent": "/usr/data/input/1/aaa.zip", "result": [ {"file":"aaa/bbb/a.txt","isSuccess":false,"reason":"putData to hbase failed","length":1234, "costTime":500}, {"file":"aaa/ccc/b.txt","isSuccess":true,"reason":"","length":1234, "costTime":500}]}
实现代码段:
def write_hbase(self): cfgs = self.configs.configs.app.hbasewriter for category in self.contents: try: self.log_info('begin to write_hbase resource {}', category) content_info = self.contents[category] msg = channel.Message(data=channel.MessageData()) uuid_str = uuid.uuid4().hex content = Info(taskId=uuid_str, files=content_info.files, parent=content_info.parent,parentType=content_info.parentType) msg.content = content.encode() msg.data.text = '' msg.flag = 0 result = channel.sync_call(cfgs.proxy, msg) result_content = Info().decode(result.content) if result_content.result: for res in result_content.result: print('result is {}'.format(res)) if trans_bool(res.isSuccess): self.log_info('write_hbase sucess, file: {}, costTime: {}, length: {}' .format(res.file, res.costTime, res.length)) else: self.log_error('write_hbase fail, file: {}, reason: {}' .format(res.file, res.reason)) else: self.log_error('get basic data from interface error:{}', result_content.error) except: self.log_exception('error happen in write_hbase')
0 0
- 通过ICE接口对hbase进行文件操作
- 通过Java Api对Hbase进行操作
- 通过对inode的修改对文件操作进行扩充
- 关于file文件,通过file文件对图片进行操作
- 通过Java直接对Excel文件进行操作
- C#通过一个密码对文件进行加密解密操作
- 通过字节流来对文件进行读写操作
- 基于pyhdfs接口对hadoop进行文件操作
- 安卓:ContentProvider之服务端提供接口,客户端通过接口对数据库中的数据进行操作
- 对文件进行操作
- 对文件进行操作
- 对文件进行操作
- 使用Java API对HBase进行操作
- C对文件进行操作
- 对CSV文件进行操作
- 对注册表文件进行操作
- 如何通过jsp对表格进行操作
- 通过MFC对SQLite进行操作
- 模方程
- 自定义VIEW②绘制流程
- Android跳转到通讯录获取用户名称和手机号码
- JavaSE 学习参考:二维数组定义
- Leetcode刷题记——Trapping Rain Water(捕获雨水)
- 通过ICE接口对hbase进行文件操作
- 微信公众号文章采集 爬取微信文章 采集公众号的阅读数和点赞数?
- OSPF的LSA类型详解
- 小白初用Redis
- iOS的主要框架介绍
- 《MySQL必知必会》学习笔记十六(事务处理)------掌握部分
- 新一代开源Android渠道包生成工具Walle
- Android的ListView和RecyclerView的基本用法
- [第一类斯特林数] HDU 3625 Examining the Rooms