Phoenix ODPSBulkLoadTool 使用案例

简介: 介绍Phoenix ODPSBulkLoadTool 使用案例

1.创建ODPS表

create table hbaseport.odps_test (
key string,
value1 string,
value2 bigint);

2.配置MR集群访问云HBASE环境

  1. 开通云 HBase HDFS 端口
  2. 配置hdfs-site.xml使之能访问云HBASE HA的hdfs, 具体参考这里
  3. 配置hbase-site.xml文件可访问云HBASE

在MR集群上创建临时conf目录, 执行hadoop命或者yarn命令时通过--config选项添加到命令运行时的classpath中,目录中包括如下:

ls conf/
core-site.xml  hbase-site.xml  hdfs-site.xml  
mapred-site.xml  yarn-site.xml

3.创建Phoenix测试表

DROP TABLE IF EXISTS TABLE1;

CREATE TABLE TABLE1 (
ID VARCHAR NOT NULL PRIMARY KEY,
V1 VARCHAR, 
V2 BIGINT)
SALT_BUCKETS = 10,UPDATE_CACHE_FREQUENCY = 120000;

CREATE INDEX V1_IDX on TABLE1(V1) include(v2);
CREATE INDEX V2_IDX on TABLE1(V2) include(v1);

4.导入测试数据到ODSP表

通过csv导入odps300w数据

5.执行Bulkload命令

使用 Phoenix 提供的 client jar 运行 Bulkload命令:

yarn --config  conf  \
jar ali-phoenix-4.12.0-AliHBase-1.1-0.4-Final/ali-phoenix-4.12.0-AliHBase-1.1-0.4-Final-client.jar \
org.apache.phoenix.mapreduce.ODPSBulkLoadTool \
--table "TABLE1" \
--access_id "xxx" \
--access_key "xxx" \
--odps_url  "http://odps-ext.aliyun-inc.com/api" \
--odps_tunnel_url "http://dt-ext.odps.aliyun-inc.com" \
--odps_project "hbaseport" \
--odps_table "odps_test" \
--odps_partition_number 15  \
--zookeeper "zk1,zk2,zk3" \
--output "hdfs://{hdfs-name-service}/tmp/tmp_data"

6.验证

Phoenix 表数据验证

0: jdbc:phoenix:localhost> select count(*) from TABLE1;
+-----------+
| COUNT(1)  |
+-----------+
| 3124856   |
+-----------+
1 row selected (4.618 seconds)
0: jdbc:phoenix:localhost> select count(*) from V1_IDX;
+-----------+
| COUNT(1)  |
+-----------+
| 3124856   |
+-----------+
1 row selected (3.149 seconds)
0: jdbc:phoenix:localhost> select count(*) from V2_IDX;
+-----------+
| COUNT(1)  |
+-----------+
| 3124856   |
+-----------+
1 row selected (4.386 seconds)
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
人工智能 API 语音技术
[译][AI OpenAI-doc] 文字转语音
学习如何将文字转换为栩栩如生的口头语音。音频 API 提供基于我们的 TTS(文本到语音)模型的语音端点,支持实时音频流传输。
|
2月前
|
关系型数据库 分布式数据库 数据库
RAG 不一定要外挂,数据库里就能原生实现
PolarSearch是PolarDB内置的智能搜索引擎,将全文检索、向量检索、结构化查询与大模型调用深度集成于同一数据库内核,实现RAG全流程“入库即向量化、查询即生成”,显著提升准确性、实时性与数据一致性,大幅降低架构复杂度与运维成本。
251 0
|
安全 程序员 编译器
【C/C++ 泛型编程 进阶篇 Type traits 】C++类型特征探究:编译时类型判断的艺术
【C/C++ 泛型编程 进阶篇 Type traits 】C++类型特征探究:编译时类型判断的艺术
1342 1
|
人工智能 自然语言处理 API
利用Python调用KimiGPT API接口
Kimi作为国内目前广受欢迎的AI工具,因其出色的性能和智能功能,迅速赢得了大量用户的青睐。随着用户量的激增,系统在高峰时段可能会面临响应压力。正是借助这一热潮,Kimi团队适时推出了其API服务,使用户和开发者能够更加灵活和深入地集成和使用Kimi的智能功能。
|
Kubernetes 算法 NoSQL
动态扩缩容下的全局流水号设计
该文介绍了在动态扩缩容场景下如何使用雪花算法生成全局流水号。雪花算法生成的ID由时间戳、工作机器ID和序列号组成。在K8s环境中,通过Redis存储当前workerId的最大值,每次生成时加1并取模,确保workerId在0-1023范围内。文中提供了实现雪花算法的`SnowflakeIdWorker`类示例,并展示了两种动态获取workerId的方法:一是利用Redis incr操作;二是通过Nacos服务发现获取IP和端口信息计算。此外,还提到了其他获取workId和dataCenterId的策略,如使用本地IP和主机名。
909 1
|
机器学习/深度学习 算法
程序与技术分享:CDH、HDH、IDH、DDH、BDH、DBDH假设
程序与技术分享:CDH、HDH、IDH、DDH、BDH、DBDH假设
|
小程序 JavaScript 前端开发
微信小程序如何控制元素的显示和隐藏
微信小程序如何控制元素的显示和隐藏
|
Linux 开发工具
Linux日志管理logrotate日志轮转
上篇文章学习了系统日志管理,对于日志来讲他是占内存的,当有大量的日志产生的时候,会有一天占满我们的内存,所以出现了日志轮转,轮转日志会删除时间久远的日志,来节省空间,这篇文章就是带大家了解学习日志轮转,通过本篇文章了解日志轮转的相关配置文件,学习怎么配置日志轮转,根据我们的需求进行配置,下面来进行学习吧。
871 0
|
编解码 人工智能 监控
如何基于芯片SDK开发安防监控产品
本文将围绕如何打造一款高效的安防监控芯片SDK,介绍芯片厂商在输出给方案商SDK之前需要考虑的方方面面。本文是根据笔者近期IPC设备端项目经验总结,对于庞杂的安防监控行业,难免有坐井观天之嫌,不足之处请指正。
如何基于芯片SDK开发安防监控产品
|
Kubernetes 网络协议 Cloud Native
阿里云镜像站支持ipv6啦!
阿里云镜像站支持ipv6啦!
2211 0