创建数据库gmall-ali,按照原有的sql脚本将数据加载到数据库后,使用sqoop同步到大数据集群中。同步的表有order- info,sku-info
时间: 2024-02-06 15:09:45 浏览: 165
首先需要在本地安装并配置好 MySQL 数据库和 Sqoop 工具。
1. 创建数据库和表
在本地 MySQL 中创建数据库 `gmall-ali`,并使用该数据库,执行原有的 SQL 脚本以创建表和插入数据。
2. 配置 Sqoop
在本地安装 Sqoop 工具后,需要进行配置。编辑 `$SQOOP_HOME/conf/sqoop-env.sh` 文件,设置以下参数:
```
export SQOOP_HOME=/path/to/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
export HADOOP_COMMON_HOME=/path/to/hadoop
export HADOOP_MAPRED_HOME=/path/to/hadoop
export HIVE_HOME=/path/to/hive
export HBASE_HOME=/path/to/hbase
export ZOOKEEPER_HOME=/path/to/zookeeper
```
在 `$SQOOP_HOME/conf/` 目录下新建一个名为 `sqoop.properties` 的文件,并添加以下配置:
```
# JDBC connection properties
sqoop.jdbc.driver=com.mysql.jdbc.Driver
sqoop.jdbc.url=jdbc:mysql://localhost:3306/gmall-ali
sqoop.jdbc.username=root
sqoop.jdbc.password=password
# Hadoop configuration properties
sqoop.mapreduce.job.name=gmall-ali-sync
sqoop.mapreduce.job.user.classpath=true
sqoop.mapreduce.job.queuename=default
sqoop.mapreduce.job.reduce.slowstart.completedmaps=0.5
# HBase configuration properties
sqoop.hbase.zookeeper.quorum=<zookeeper-quorum>
sqoop.hbase.zookeeper.property.clientPort=2181
sqoop.hbase.table.name=<hbase-table-name>
sqoop.hbase.column.family=<hbase-column-family>
```
其中,`<zookeeper-quorum>` 为 HBase 所使用的 ZooKeeper 集群地址,`<hbase-table-name>` 为要同步的 HBase 表名,`<hbase-column-family>` 为 HBase 表中要同步的列族名。
3. 同步表到大数据集群
执行以下 Sqoop 命令,将 MySQL 中的 `order_info` 和 `sku_info` 表同步到 HBase 中:
```
sqoop import \
--connect $sqoop.jdbc.url \
--username $sqoop.jdbc.username \
--password $sqoop.jdbc.password \
--table order_info \
--hbase-table $sqoop.hbase.table.name \
--column-family $sqoop.hbase.column.family \
--hbase-create-table \
--hbase-row-key id \
--hbase-bulkload \
--split-by id \
--num-mappers 10
sqoop import \
--connect $sqoop.jdbc.url \
--username $sqoop.jdbc.username \
--password $sqoop.jdbc.password \
--table sku_info \
--hbase-table $sqoop.hbase.table.name \
--column-family $sqoop.hbase.column.family \
--hbase-create-table \
--hbase-row-key id \
--hbase-bulkload \
--split-by id \
--num-mappers 10
```
这里的 `--num-mappers` 参数指定了 Sqoop 使用的并发任务数,可以根据实际情况进行调整。执行完毕后,`order_info` 和 `sku_info` 表的数据就被成功同步到了 HBase 中。
阅读全文