背景信息
CDH(Cloudera's Distribution, including Apache Hadoop)是众多 Hadoop 发行版本中的一种,您可以使用文件存储HDFS版替换CDH6原有的本地HDFS服务,通过CDH6+文件存储HDFS版实现大数据计算在云上的存储与计算分离,应对灵活多变的业务需求的挑战。
前提条件
- 开通文件存储HDFS版服务并创建文件系统实例和挂载点,详细文档请参见: 快速入门 。
- 在阿里云上创建ECS实例并安装CDH6集群,具体安装方法请参考: CDH官方文档 ,本文档中使用的CDH版本为 6.3.2。
数据迁移
配置文件存储HDFS版
- 登录 CDH6 的 Cloudera Manager Web 管理页面
- 配置文件存储HDFS版实现类及Java SDK
-
- 在CDH Web主页,选择配置 > 高级配置代码段,进入高级配置代码段页面。
- 搜索
,并选择 HDFS。core-site.xml
- 在 core-site.xml 的群集范围高级配置代码段(安全阀)区域中,添加如下文件存储HDFS版配置项并保存。
-
-
- 配置项:
,其值:fs.dfs.impl
com.alibaba.dfs.DistributedFileSystem
-
fs.AbstractFileSystem.dfs.impl
com.alibaba.dfs.DFS
- 配置项:
-
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL3IWY4cjN3EmYxcDZtgDMygTLkVmM00CZyIWMtEzM1UmY3YjMtYDMwUjN1cDM3kjM2EzLclTN0MTMy8CXn5GcvwVMyAjMvwFMvw1ayFGbvw1ayFGb5t2cvwVbvNmL5FGcpxWYukHevJHc0VmbhJHdul2Lc9CX6MHc0RHaiojIsJye.png)
d. 配置 mapreduce.application.classpath。
-
-
- 在CDH Web主页,选择 YARN (MR2 Included),在其右侧的操作栏中,单击 配置。
- 在 配置 页面,搜索
增加配置mapreduce.application.classpath
并保存。$HADOOP_HDFS_HOME/*
-
e.下载最新的文件存储HDFS版 Java SDK(aliyun-sdk-dfs-x.y.z.jar)下载地址:
单击此处下载f.将下载的文件存储HDFS版 Java SDK 复制到 CDH HDFS服务的 CLASSPATH 路径下。
cp aliyun-sdk-dfs-x.y.z.jar /opt/cloudera/parcels/CDH/lib/hadoop-hdfs/
说明: 集群中的每台机器都需要在相同位置添加文件存储HDFS版 Java SDK。
g.返回在CDH Web主页,找到 HDFS ,单击重新部署图标,进行重新部署。
h.在 过期配置 页面,单击 重启过时服务 并 立即重启。
HBase 快照迁移(可选)
如果原 HDFS 集群中已部署 HBase 服务且存在业务数据,需要将 HBase 中的数据以快照方式迁移到文件存储HDFS版。
## 在本文档中 HBase 有两个模拟表"mock_table_0", "mock_table_1",每个表的中的模拟数据有 10 万条
hbase(main):001:0> list
TABLE
mock_table_0
mock_table_1
2 row(s)
Took 0.4213 seconds
=> ["mock_table_0", "mock_table_1"]
hbase(main):002:0> count 'mock_table_1'
Current count: 1000, row: 001637311398
.....
Current count: 100000, row: 991637311398
100000 row(s)
Took 4.3696 seconds
=> 100000
hbase(main):003:0> count 'mock_table_0'
Current count: 1000, row: 001637311398
......
Current count: 100000, row: 991637311398
100000 row(s)
Took 4.0691 seconds
=> 100000
## 创建快照
hbase(main):005:0> snapshot 'mock_table_0','mock_table_0_snapshot'
Took 0.8388 seconds
hbase(main):006:0> snapshot 'mock_table_1','mock_table_1_snapshot'
Took 0.4341 seconds
## 将创建的快照从 HDFS 拷贝到 文件存储HDFS版
sudo -u hdfs hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
-snapshot mock_table_0_snapshot \
-copy-to dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/hbase
sudo -u hdfs hbase org.apache.hadoop.hbase.snapshot.ExportSnapshot \
-snapshot mock_table_1_snapshot \
-copy-to dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/hbase
- 暂停服务
为了保证在更换文件存储系统的过程中文件数据不丢失,需要暂停数据处理服务(如:YARN服务、Hive服务、Spark服务、HBase服务等),HDFS 服务仍需保持运行。此处以停止 Hive 服务为例进行说明。
-
- 在 CDH Web 主页,找到 Hive 服务,在其右侧的操作项中,单击 停止。
- 在停止确认框中,单击 停止。当 Hive 前的图标变成灰色,表示该服务完全停止。
- 重复上述步骤,停止剩余服务。
说明:建议只保留 HDFS 服务正常运行,以方便进行数据迁移。但是如果要迁移的数据量大,请开启 YARN 服务,以便使用数据迁移工具 Hadoop DistCp 并行执行迁移任务可有效提高迁移速度。
- 迁移数据
建议将
/user
等服务目录和相关数据目录全量迁移至文件存储HDFS版。
- 如果涉及将云下集群的数据迁移到云上,请参见 迁移开源HDFS的数据到文件存储HDFS版
- HBase 服务只迁移快照,其他数据目录不迁移
- 如果 CDH 原HDFS文件系统上的数据量较小,可以使用
命令进行数据迁移。为了避免因为权限问题导致数据迁移失败,建议切换到 hdfs 用户执行命令。hadoop fs -cp
sudo -u hdfs hadoop fs -cp hdfs://oldclusterip:8020/user dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/
sudo -u hdfs hadoop distcp hdfs://oldclusterip:8020/user dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/
其中f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com为您的文件存储HDFS版挂载点域名,需要根据实际情况进行修改。
服务配置
在服务配置之前需要已完成 数据迁移 。
配置 Cloudera Management 服务
- 将最新的文件存储HDFS版 Java SDK 复制到 Cloudera Management 服务的 lib 目录下。
cp aliyun-sdk-dfs-x.y.z.jar /opt/cloudera/cm/lib/cdh6/
说明:集群中的每台机器都需要在相同位置添加文件存储HDFS版 Java SDK。
- 重启服务
在CDH Web主页,找到 Cloudera Management Service,在其右侧的操作项中,单击重启。
配置 HDFS 服务
- 在 CDH Web 主页,选择配置 > 高级配置代码段,进入高级配置代码段页面。
-
core-site.xml
- 在 core-site.xml 的群集范围高级配置代码段(安全阀)中,添加如下配置项。
fs.defaultFS
dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290
说明:其中f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com为您的文件存储HDFS版挂载点域名,需要根据实际情况进行修改。
- 单击保存更改。
配置 YARN 服务
- 配置 mapred-site.xml。
-
- 在CDH Web主页,选择 配置 > 高级配置代码段,进入 高级配置代码段 页面。
-
,并单击 YARN (MR2 Included)。mapred-site.xml
- 在 YARN 服务 MapReduce 高级配置代码段(安全阀)中,添加如下配置项。
mapreduce.application.framework.path
dfs://f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com:10290/user/yarn/mapreduce/mr-framework/3.x.x-cdh6.x.x-mr-framework.tar.gz#mr-framework
说明:
-
-
- 其中,f-xxxxxxxxxxxxxxx.cn-xxxxxxx.dfs.aliyuncs.com 为您的文件存储HDFS版挂载点域名,需要根据实际情况进行修改。
- 如果文件存储HDFS版实例上 3.x.x-cdh6.x.x-mr-framework.tar.gz 文件不存在,可能是因为此文件还没有从CDH的HDFS服务同步到文件存储HDFS版。您需要将HDFS服务
目录下的所有内容同步到文件存储HDFS版上,请参考 数据迁移 章节/user/yarn
-
d.单击保存更改。
- 部署新配置并重启服务。
-
- 在CDH Web主页,找到 YARN,单击重新部署图标,进行重新部署。
- 在 过期配置 页面,单击 重启过时服务。
- 在 重启过时服务 页面,单击 立即重启。
- 等待服务全部重启完成,并重新部署客户端配置后,单击 完成。
配置 Hive 服务
说明: 配置 HDFS 服务完成后,才能配置 Hive 服务。在配置 Hive 服务之前,请确认
/user/hive/
目录中的数据已完成全量迁移,迁移方法请参见:
- 修改元数据
在本文档中,Hive元数据存储在 MySQL 之中。下方以 MySQL 为例,修改DBS表和SDS表相应的存储系统的URL,如下所示。
## metastore 为 Hive 存储元数据的库
mysql> use metastore;
Database changed
mysql> SELECT * FROM DBS LIMIT 5;
+-------+-----------------------+----------------------------------------------------------------------------+-----------------------------+------------+------------+-------------+
| DB_ID | DESC | DB_LOCATION_URI | NAME | OWNER_NAME | OWNER_TYPE | CREATE_TIME |
+-------+-----------------------+----------------------------------------------------------------------------+-----------------------------+------------+------------+-------------+
| 1 | Default Hive database | hdfs://cdh6-master:8020/user/hive/warehouse | default | public | ROLE | 1629164990 |
| 1826 | NULL | hdfs://cdh6-master:8020/user/hive/warehouse/tpcds_text_2.db | tpcds_text_2 | hive | USER | 1629702940 |
| 1828 | NULL | hdfs://cdh6-master:8020/user/hive/warehouse/tpcds_bin_partitioned_orc_2.db | tpcds_bin_partitioned_orc_2 | hive | USER | 1629703145 |
+-------+-----------------------+----------------------------------------------------------------------------+-----------------------------+------------+------------+-------------+
3 rows in set (0.00 sec)
## 更新 DBS 表中原HDFS地址为文件存储HDFS版挂载点地址
mysql> UPDATE DBS SET DB_LOCATION_URI=REPLACE(DB_LOCATION_URI,'hdfs://cdh6-master:8020','dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290');
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> SELECT * FROM DBS LIMIT 5;
+-------+-----------------------+-----------------------------------------------------------------------------------------------------------------+-----------------------------+------------+------------+-------------+
| DB_ID | DESC | DB_LOCATION_URI | NAME | OWNER_NAME | OWNER_TYPE | CREATE_TIME |
+-------+-----------------------+-----------------------------------------------------------------------------------------------------------------+-----------------------------+------------+------------+-------------+
| 1 | Default Hive database | dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/user/hive/warehouse | default | public | ROLE | 1629164990 |
| 1826 | NULL | dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/user/hive/warehouse/tpcds_text_2.db | tpcds_text_2 | hive | USER | 1629702940 |
| 1828 | NULL | dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/user/hive/warehouse/tpcds_bin_partitioned_orc_2.db | tpcds_bin_partitioned_orc_2 | hive | USER | 1629703145 |
+-------+-----------------------+-----------------------------------------------------------------------------------------------------------------+-----------------------------+------------+------------+-------------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM SDS LIMIT 5;
+-------+-------+------------------------------------------+---------------+---------------------------+--------------------------------------------------------------+-------------+------------------------------------------------------------+----------+
| SD_ID | CD_ID | INPUT_FORMAT | IS_COMPRESSED | IS_STOREDASSUBDIRECTORIES | LOCATION | NUM_BUCKETS | OUTPUT_FORMAT | SERDE_ID |
+-------+-------+------------------------------------------+---------------+---------------------------+--------------------------------------------------------------+-------------+------------------------------------------------------------+----------+
| 5423 | 1846 | org.apache.hadoop.mapred.TextInputFormat | | | hdfs://cdh6-master:8020/tmp/tpcds-generate/2/store_sales | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5423 |
| 5424 | 1847 | org.apache.hadoop.mapred.TextInputFormat | | | hdfs://cdh6-master:8020/tmp/tpcds-generate/2/store_returns | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5424 |
| 5425 | 1848 | org.apache.hadoop.mapred.TextInputFormat | | | hdfs://cdh6-master:8020/tmp/tpcds-generate/2/catalog_sales | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5425 |
| 5426 | 1849 | org.apache.hadoop.mapred.TextInputFormat | | | hdfs://cdh6-master:8020/tmp/tpcds-generate/2/catalog_returns | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5426 |
| 5427 | 1850 | org.apache.hadoop.mapred.TextInputFormat | | | hdfs://cdh6-master:8020/tmp/tpcds-generate/2/web_sales | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5427 |
+-------+-------+------------------------------------------+---------------+---------------------------+--------------------------------------------------------------+-------------+------------------------------------------------------------+----------+
5 rows in set (0.00 sec)
## 更新 SDS 表中原HDFS地址为文件存储HDFS版挂载点地址
mysql> UPDATE SDS SET LOCATION=REPLACE(LOCATION,'hdfs://cdh6-master:8020','dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290');
Query OK, 11756 rows affected (0.30 sec)
Rows matched: 11756 Changed: 11756 Warnings: 0
mysql> SELECT * FROM SDS LIMIT 5;
+-------+-------+------------------------------------------+---------------+---------------------------+---------------------------------------------------------------------------------------------------+-------------+------------------------------------------------------------+----------+
| SD_ID | CD_ID | INPUT_FORMAT | IS_COMPRESSED | IS_STOREDASSUBDIRECTORIES | LOCATION | NUM_BUCKETS | OUTPUT_FORMAT | SERDE_ID |
+-------+-------+------------------------------------------+---------------+---------------------------+---------------------------------------------------------------------------------------------------+-------------+------------------------------------------------------------+----------+
| 5423 | 1846 | org.apache.hadoop.mapred.TextInputFormat | | | dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/tpcds-generate/2/store_sales | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5423 |
| 5424 | 1847 | org.apache.hadoop.mapred.TextInputFormat | | | dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/tpcds-generate/2/store_returns | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5424 |
| 5425 | 1848 | org.apache.hadoop.mapred.TextInputFormat | | | dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/tpcds-generate/2/catalog_sales | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5425 |
| 5426 | 1849 | org.apache.hadoop.mapred.TextInputFormat | | | dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/tpcds-generate/2/catalog_returns | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5426 |
| 5427 | 1850 | org.apache.hadoop.mapred.TextInputFormat | | | dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/tpcds-generate/2/web_sales | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 5427 |
+-------+-------+------------------------------------------+---------------+---------------------------+---------------------------------------------------------------------------------------------------+-------------+------------------------------------------------------------+----------+
5 rows in set (0.00 sec)
- 重启服务。
-
- 在CDH Web主页,找到 Hive,在其右侧的操作项中,单击 启动。
- 在启动确认框中,单击 启动。
配置 Spark 服务
说明:配置HDFS服务完成后,才能配置Spark服务。配置Spark服务前,请确认
/user/spark
和
/user/history
目录中的数据已经完成了全量迁移。迁移方法请参见:
将最新的文件存储HDFS版 Java SDK 复制到 Spark 服务的 jars 目录下。请根据实际值进行替换。
cp aliyun-sdk-dfs-x.y.z.jar /opt/cloudera/parcels/CDH/lib/spark/jars/
配置 HBase 服务
说明:配置HDFS服务完成后,才能配置HBase服务。配置HBase 服务前,请确认原HDFS集群HBase中的快照已迁移至文件存储HDFS版,迁移方法请参见:
HBase 快照迁移- 在 CDH Web 主页,选择 配置>高级配置代码段,进入高级配置代码段页面。
- 在最上面的搜索框中搜索
hbase-site.xml
- 在hbase-site.xml 的HBase服务高级配置代码段(安全阀)和 hbase-site.xml 的 HBase 客户端高级配置代码段(安全阀)中,都要添加如下配置项。
-
-
hbase.rootdir
dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/hbase
-
hbase.unsafe.stream.capability.enforce
false
-
- 配置
zookeeper.znode.parent
-
- 在CDH Web主页,选择 HBase,在其右侧的操作栏中,单击 配置。
-
配置新的 HBase 根 znode 并保存,在本文档中设置为zookeeper.znode.parent
/hbase_dfs
zookeeper.znode.parent
默认配置为
/hbase
,HBase 服务配置文件存储HDFS版时需修改该配置,否则存储在 Zookeeper 中的数据会冲突。
- 部署新配置并启动服务。
-
- 在 CDH Web 主页,找到 HBase,单击重新部署图标,进行重新部署。
- 在 重启过时服务 页面,选择需要重启的服务,单击 立即重启。
- 快照恢复(可选)
将存储在原 HDFS 集群的
到文件存储HDFS版后,可以参考下面命令恢复快照。
在 HBase Shell 中执行如下命令,查看并恢复文件存储HDFS版中已经迁移的快照。
## 查看快照
hbase(main):001:0> list_snapshots
SNAPSHOT TABLE + CREATION TIME
mock_table_0_snapshot mock_table_0 (2021-11-19 17:25:38 +0800)
mock_table_1_snapshot mock_table_1 (2021-11-19 17:25:47 +0800)
2 row(s)
Took 0.4619 seconds
=> ["mock_table_0_snapshot", "mock_table_1_snapshot"]
## 恢复快照
hbase(main):002:0> restore_snapshot 'mock_table_0_snapshot'
Took 2.4750 seconds
hbase(main):003:0> restore_snapshot 'mock_table_1_snapshot'
Took 1.2615 seconds
停止 HDFS 服务
完成上述各项服务配置后,集群的HDFS服务已经替换为文件存储HDFS版,建议您停止集群的HDFS服务。
- 您可以在CDH Web主页,找到 HDFS,停止服务。
服务配置验证
YARN 服务验证
使用 CDH Hadoop 中自带包
hadoop-mapreduce-examples-3.x.x-cdh6.x.x.jar
进行测试,在
/tmp/randomtextwriter
目录下生成大小约为 128M 的文件,示例命令如下
yarn jar \
/opt/cloudera/parcels/CDH/jars/hadoop-mapreduce-examples-*-cdh*.jar \
randomtextwriter \
-D mapreduce.randomtextwriter.totalbytes=134217728 \
/tmp/randomtextwriter
执行以下命令验证文件是否生成成功,从而验证文件系统实例的连通性
hadoop fs -ls dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/randomtextwriter
Hive 服务验证
数据迁移验证
在本文档中从原HDFS集群将TPC-DS的数据都迁移到了文件存储HDFS版。
-
- 在 Hue 上查看库中的
表信息store_sales
- 在 Hue 上查看库中的
可以看到该内部表的分区存储信息等都迁移到了文件存储HDFS版上。
b. 执行 TPC_DS 第 63 条 SQL
SELECT *
FROM
(SELECT i_manager_id ,
sum(ss_sales_price) sum_sales ,
avg(sum(ss_sales_price)) over (partition BY i_manager_id) avg_monthly_sales
FROM item ,
store_sales ,
date_dim ,
store
WHERE ss_item_sk = i_item_sk
AND ss_sold_date_sk = d_date_sk
AND ss_store_sk = s_store_sk
AND d_month_seq IN (1211,
1211+1,
1211+2,
1211+3,
1211+4,
1211+5,
1211+6,
1211+7,
1211+8,
1211+9,
1211+10,
1211+11)
AND ((i_category IN ('Books',
'Children',
'Electronics')
AND i_class IN ('personal',
'portable',
'reference',
'self-help')
AND i_brand IN ('scholaramalgamalg #14',
'scholaramalgamalg #7',
'exportiunivamalg #9',
'scholaramalgamalg #9')) or(i_category IN ('Women','Music','Men')
AND i_class IN ('accessories','classical','fragrances','pants')
AND i_brand IN ('amalgimporto #1','edu packscholar #1','exportiimporto #1', 'importoamalg #1')))
GROUP BY i_manager_id,
d_moy) tmp1
WHERE CASE
WHEN avg_monthly_sales > 0 THEN ABS (sum_sales - avg_monthly_sales) / avg_monthly_sales
ELSE NULL
END > 0.1
ORDER BY i_manager_id ,
avg_monthly_sales ,
sum_sales
LIMIT 100;
执行 SQL 并查看结果
说明:因为TPC-DS 数据都是随机生成,所以SQL查询返回结果和本文档不一致属于正常现象。
新建数据表验证
- 在 Hue 上创建并查看表信息
DROP TABLE IF EXISTS user_info_test;
CREATE TABLE user_info_test(user_id BIGINT, firstname STRING, lastname STRING, country STRING);
INSERT INTO user_info_test VALUES(1,'Dennis','Hu','CN'),(2,'Json','Lv','Jpn'),(3,'Mike','Lu','USA');
- 执行查询 SQL
SELECT country,count(*) AS country_count FROM user_info_test GROUP BY country;
Spark 服务验证
使用 CDH Spark 中自带包
spark-examples_*-cdh*.jar
从本地读取文件写入文件存储HDFS版实例
spark-submit \
--master yarn \
--executor-memory 2G \
--executor-cores 2 \
--class org.apache.spark.examples.DFSReadWriteTest \
/opt/cloudera/parcels/CDH/jars/spark-examples_*-cdh*.jar \
/etc/profile /tmp/sparkwrite
执行如下命令查看是否写入成功
hadoop fs -ls dfs://f-xxxxxxxx.cn-zhangjiakou.dfs.aliyuncs.com:10290/tmp/sparkwrite/*
HBase 服务验证
查看迁移到文件存储HDFS版两张表的数据行数
hbase(main):001:0> list
TABLE
mock_table_0
mock_table_1
2 row(s)
Took 0.3587 seconds
=> ["mock_table_0", "mock_table_1"]
hbase(main):002:0> count 'mock_table_0'
Current count: 1000, row: 001637311398
........
Current count: 100000, row: 991637311398
100000 row(s)
Took 7.2724 seconds
=> 100000
hbase(main):003:0> count 'mock_table_1'
Current count: 1000, row: 001637311398
........
Current count: 100000, row: 991637311398
100000 row(s)
Took 3.9399 seconds
=> 100000
- 使用
创建测试表并插入数据hbase shell
hbase(main):001:0> create 'hbase_test','info'
Created table hbase_test
Took 1.7688 seconds
=> Hbase::Table - hbase_test
hbase(main):002:0> list
TABLE
hbase_test
mock_table_0
mock_table_1
3 row(s)
Took 0.0147 seconds
=> ["hbase_test", "mock_table_0", "mock_table_1"]
hbase(main):003:0> put 'hbase_test','1', 'info:name' ,'Sariel'
Took 0.2415 seconds
hbase(main):004:0> put 'hbase_test','1', 'info:age' ,'22'
Took 0.0053 seconds
hbase(main):005:0> put 'hbase_test','1', 'info:industry' ,'IT'
Took 0.0631 seconds
hbase(main):006:0> scan 'hbase_test'
ROW COLUMN+CELL
1 column=info:age, timestamp=1637636289233, value=22
1 column=info:industry, timestamp=1637636299912, value=IT
1 column=info:name, timestamp=1637636279553, value=Sariel
1 row(s)
Took 0.0227 seconds
- 在文件存储HDFS版上的 HBase 数据目录查看是否有新建的测试表
至此,CDH 中的服务已经迁移到文件存储HDFS版。
常见问题
- SecondaryNameNode 服务停止。
按照本文档链接配置文件存储HDFS版后, CDH中的 HDFS 服务会报错,报错信息:SecondaryNameNode 服务无法启动。这是由于 SecondaryNameNode 服务需要通过 http get 方式获取 NameNode 的 fsimage 与 edits 文件进行工作。而文件存储HDFS版不提供 http 服务,所以 SecondaryNameNode 服务无法启动。此时,CDH内的 Spark\Hive\HBase 服务已经使用阿里云文件存储HDFS版读写数据,CDH 自身的 HDFS 服务问题不会影响系统运行和数据安全。
- Hue 服务文件浏览器不可用。
Hue 是通过 WebHDFS REST API 访问 HDFS 上的文件。文件存储HDFS版目前不支持 WebHDFS REST API,因此不可以在 Hue 上直接操作文件存储HDFS版实例上的文件。
https://www.aliyun.com/product/alidfs了解更多关于文件存储HDFS版的产品信息,欢迎访问
https://www.aliyun.com/product/alidfs如果您对文件存储HDFS版有任何问题,欢迎钉钉扫描以下二维码加入文件存储HDFS版技术交流群。