- 从 MySQL 同步数据到 HBase(批量 / 实时)
(1)批量同步:Sqoop(Linux 下最常用)
Sqoop 是 Hadoop 生态工具,可将 MySQL 关系型数据导入 HBase,适合离线批量同步:
安装 Sqoop(Linux):
wget https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
tar -zxvf sqoop-1.4.7.tar.gz -C /usr/local/
ln -s /usr/local/sqoop-1.4.7 /usr/local/sqoop
放入MySQL驱动包到sqoop/lib
cp mysql-connector-java-8.0.30.jar /usr/local/sqoop/lib/
核心同步命令(Linux 执行):
sqoop import
--connect jdbc:mysql://mysql-ip:3306/mydb
--username root
--password Mysql@123
--table mysql_table \ # MySQL源表
--hbase-table hbase_table \ # HBase目标表
--column-family cf1 \ # HBase列族
--hbase-row-key id \ # 映射为HBase RowKey的MySQL字段
--hbase-create-table # 自动创建HBase表(若不存在)
(2)实时同步:Canal + Kafka + HBase(Linux)
适合 MySQL 数据实时更新到 HBase:
Linux 部署 Canal:监听 MySQL binlog,解析数据变更;
发送解析后的数据到 Kafka 集群;
编写 Flink/Spark 消费 Kafka 数据,调用 HBase API 写入 HBase;
关键配置:Canal 需配置 MySQL 主从(开启 binlog),Linux 下 Canal 进程后台运行:
nohup /usr/local/canal/bin/startup.sh > canal.log 2>&1 &
浙公网安备 33010602011771号