当前位置: 首页 > news >正文

网站及备案wordpress 2.5

网站及备案,wordpress 2.5,wordpress 插件 卡券,在线制作ppt一、测试目标 在CDP(Cloudera Data Platform)集群中,通过创建Hive外部表映射HBase表,实现HBase表数据的查询与迁移,验证该方式的可行性与数据一致性。 二、前置条件环境要求 CDP集群版本:7.1.7及以上&#…

一、测试目标

在CDP(Cloudera Data Platform)集群中,通过创建Hive外部表映射HBase表,实现HBase表数据的查询与迁移,验证该方式的可行性与数据一致性。

二、前置条件

  1. 环境要求

    • CDP集群版本:7.1.7及以上(已部署HBase、Hive、YARN、ZooKeeper服务)
    • 集群状态:所有服务通过Cloudera Manager验证为“健康”状态
    • 权限:操作用户需具备HBase表创建/写入权限、Hive库表创建权限(建议使用hiveadmin用户)
  2. 工具准备

    • HBase Shell(用于操作HBase表)
    • Hive Shell/Beeline(用于操作Hive表)
    • Cloudera Manager(用于监控服务状态)

三、测试步骤

步骤1:准备HBase源表及数据

  1. 登录HBase所在节点,启动HBase Shell:

    hbase shell
    
  2. 创建HBase测试表(命名为hbase_test_table,列族为cf1):

    create 'hbase_test_table', 'cf1'
    
  3. 向HBase表插入测试数据:

    # 插入3条测试数据,RowKey分别为row1、row2、row3
    put 'hbase_test_table', 'row1', 'cf1:name', 'Alice'
    put 'hbase_test_table', 'row1', 'cf1:age', '25'
    put 'hbase_test_table', 'row1', 'cf1:city', 'Beijing'put 'hbase_test_table', 'row2', 'cf1:name', 'Bob'
    put 'hbase_test_table', 'row2', 'cf1:age', '30'
    put 'hbase_test_table', 'row2', 'cf1:city', 'Shanghai'put 'hbase_test_table', 'row3', 'cf1:name', 'Charlie'
    put 'hbase_test_table', 'row3', 'cf1:age', '35'
    put 'hbase_test_table', 'row3', 'cf1:city', 'Guangzhou'
    
  4. 验证HBase表数据:

    scan 'hbase_test_table'
    

    预期结果:显示3条完整数据,包含RowKey及cf1列族下的nameagecity字段。

步骤2:创建Hive外部表映射HBase表

  1. 登录Hive所在节点,启动Beeline客户端(连接HiveServer2):

    beeline -u "jdbc:hive2://<HiveServer2主机名>:10000" -n hive
    
  2. 创建Hive数据库(如hbase_migration_test):

    CREATE DATABASE IF NOT EXISTS hbase_migration_test;
    USE hbase_migration_test;
    
  3. 创建Hive外部表(命名为hive_hbase_external_table),映射HBase的hbase_test_table

    CREATE EXTERNAL TABLE hive_hbase_external_table (rowkey STRING,  -- 映射HBase的RowKeyname STRING,    -- 映射cf1:nameage STRING,     -- 映射cf1:agecity STRING     -- 映射cf1:city
    )
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
    WITH SERDEPROPERTIES ('hbase.columns.mapping' = ':key,cf1:name,cf1:age,cf1:city'  -- 映射关系:RowKey+列族:列名
    )
    TBLPROPERTIES ('hbase.table.name' = 'hbase_test_table',  -- 关联的HBase表名'hbase.mapred.output.key.class' = 'org.apache.hadoop.hbase.io.ImmutableBytesWritable','hbase.client.scanner.caching' = '100'  -- 扫描缓存设置,优化查询性能
    );
    
    • 说明:hbase.columns.mapping中,:key表示映射HBase的RowKey,后续依次对应HBase的列族和列。

步骤3:验证Hive外部表与HBase表的数据一致性

  1. 在Hive中查询外部表数据:

    SELECT * FROM hive_hbase_external_table;
    

    预期结果:返回3条数据,与HBase表中的row1row2row3完全一致,字段对应正确。

  2. 验证字段映射准确性:

    SELECT rowkey, name, age FROM hive_hbase_external_table WHERE city = 'Shanghai';
    

    预期结果:返回RowKey为row2的记录,name=Bobage=30

步骤4:通过Hive外部表实现数据迁移(导出至HDFS)

  1. 在Hive中执行INSERT语句,将HBase表数据通过外部表迁移至HDFS(以Parquet格式为例):

    -- 创建Hive内部表用于存储迁移后的数据
    CREATE TABLE hive_migrated_data (rowkey STRING,name STRING,age STRING,city STRING
    )
    STORED AS PARQUET;-- 从外部表插入数据到内部表(实质是从HBase迁移至HDFS)
    INSERT OVERWRITE TABLE hive_migrated_data
    SELECT * FROM hive_hbase_external_table;
    
  2. 验证迁移后的数据:

    SELECT COUNT(*) FROM hive_migrated_data;  -- 预期结果:3
    SELECT * FROM hive_migrated_data WHERE rowkey = 'row3';  -- 预期结果:row3, Charlie, 35, Guangzhou
    
  3. 查看HDFS上的迁移文件(默认路径为Hive表存储路径):

    hdfs dfs -ls /user/hive/warehouse/hbase_migration_test.db/hive_migrated_data
    

    预期结果:显示Parquet格式的迁移文件,文件大小不为0。

四、异常场景测试

  1. HBase表数据更新后同步验证

    • 在HBase中更新一条数据:
      put 'hbase_test_table', 'row2', 'cf1:age', '31'  -- 将row2的age从30改为31
      
    • 在Hive中重新查询:
      SELECT rowkey, age FROM hive_hbase_external_table WHERE rowkey = 'row2';
      
      预期结果:age字段同步更新为31(Hive外部表实时映射HBase数据,无需额外操作)。
  2. Hive外部表字段与HBase列不匹配

    • 创建一个缺少字段的Hive外部表,验证是否报错或部分读取:
      CREATE EXTERNAL TABLE hive_hbase_incomplete (rowkey STRING,name STRING
      )
      STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
      WITH SERDEPROPERTIES ('hbase.columns.mapping' = ':key,cf1:name')
      TBLPROPERTIES ('hbase.table.name' = 'hbase_test_table');
      
    • 查询验证:
      SELECT * FROM hive_hbase_incomplete;
      
      预期结果:正常返回rowkeyname字段,不影响已有映射的正确性。

五、测试结论

  1. 通过Hive外部表可成功映射HBase表,实现数据的实时查询与读取。
  2. 支持通过Hive SQL将HBase数据迁移至HDFS(如Parquet格式),迁移过程数据一致性可保证。
  3. HBase表数据更新后,Hive外部表可实时同步,无需额外刷新操作。

六、注意事项

  1. 权限配置:确保Hive服务的运行用户(如hive)在HBase中拥有对目标表的READ权限,可通过HBase Shell授权:

    grant 'hive', 'R', 'hbase_test_table'
    
  2. 列映射规则hbase.columns.mapping必须严格对应HBase的RowKey和列族:列名,格式错误会导致表创建失败或数据无法读取。

  3. 性能优化:对于大数据量的HBase表,建议在Hive外部表的TBLPROPERTIES中设置hbase.client.scanner.caching(如1000),减少扫描次数;迁移时可通过INSERT ... DISTRIBUTE BY避免数据倾斜。

  4. 数据类型:Hive外部表字段类型需与HBase存储的实际数据类型兼容(HBase存储的是字节数组,Hive需显式指定为STRING或其他兼容类型)。

七、清理操作

测试完成后,清理测试表以释放资源:

  1. 删除Hive表:

    DROP TABLE hbase_migration_test.hive_hbase_external_table;
    DROP TABLE hbase_migration_test.hive_migrated_data;
    DROP DATABASE hbase_migration_test;
    
  2. 删除HBase表:

    disable 'hbase_test_table'
    drop 'hbase_test_table'
    
http://www.dtcms.com/a/550562.html

相关文章:

  • 机器视觉在半导体行业的重要性(以51camera晶圆隐裂检测系统为例)
  • ComfyUI 参数说明手册:核心节点与参数详细说明
  • 浅析数据库多租户
  • 【数据库】增删改查 高阶(超级详细)保姆级教学
  • 宁波市网站建设福鼎整站优化
  • 做网站服务器用国外的wordpress访问插件
  • AI如何赋能EDI?智能映射与EDI异常自动处理新趋势
  • AI助力药企降本增效:寒冬期破局关键
  • 数据科学中的特征工程
  • 800G 光模块:AI 算力洪流的 “超级传动轴”
  • (四)9. 统计推断-ALMOND算法(模拟实验)
  • 网站运营目的东方购物全部商品
  • 深入理解 Cargo.toml:Rust 构建体系的核心解密
  • 生态环境影响评价技术应用及典型实践案例分析
  • 离线部署大模型结合知识库,提取ICD-10编码与诊断信息实践,涵踩坑记录
  • 网站建设报告家教总结做网站宽高怎么决定
  • linux命令-sar-5
  • 做鞋的垂直网站淄博网站建设 百度知道
  • 好站站网站建设推广网站集约化建设的通知
  • 什么网站做的号建设英语网站
  • verilog中数据跨时钟处理方法
  • 国内快速建站西安企业模板建站
  • 一键建网站大学生创意产品设计方案
  • 所有权与解构(Destructuring)的关系:Rust 中数据拆分的安全范式
  • 网站整体建设方案论文室内设计这个行业怎么样
  • MetaTwo靶机实战:SQL注入到权限提升全解析
  • 盐田高端网站建设wordpress aws
  • Linux C/C++ 学习日记(41):dpdk(四):基于dpdk编写的第一个程序
  • 北京网站软件制作北京架设网站
  • 新衡阳网站网站建设业务好跑吗