知名网站排行榜,莱芜,广告设计公司核心优势,重要的建设工程人员查询Mysql数据准备
1、在node02节点登录Mysql。
mysql -uroot -proot2、新建数据库testdb。
create database testdb;3、新建数据表ts。
use testdb;
create table ts(id int, name varchar(10), age int, sex char(1));4、向表中插入数据。
insert into ts values(10001,张三…Mysql数据准备
1、在node02节点登录Mysql。
mysql -uroot -proot2、新建数据库testdb。
create database testdb;3、新建数据表ts。
use testdb;
create table ts(id int, name varchar(10), age int, sex char(1));4、向表中插入数据。
insert into ts values(10001,张三,18,m);
insert into ts values(10002,李四,20,m);
insert into ts values(10003,王小姐,18,w);Sqoop基本使用
1、查看MySQL中的所有数据库。
sqoop list-databases --connect jdbc:mysql://node02:3306/ --username root --password root2、在/root目录下新建sqoop_file目录用于存放作业配置文件。
mkdir /root/sqoop3、在/root/sqoop_file目录编写配置文件list_dbs.conf减少重复参数配置。
vim list_dbs.conf
# 添加以下内容
list-databases
--connect
jdbc:mysql://node02:3306/
--username
root
--password
root4、使用配置文件启动sqoop作业。
sqoop --options-file list_dbs.conf5、查看testdb中所有表使用非明文方式手动输入密码。
sqoop list-tables \--connect jdbc:mysql://node02:3306/testdb \--username root \-P6、在Mysql中执行SQL并将结果展示在控制台。
sqoop eval \--connect jdbc:mysql://node02:3306/testdb \--query SELECT * FROM ts LIMIT 10 \--username root \-P7、将testdb.ts表中所有数据全量导入到hdfs的/tmp/sqoop/testdb/ts目录中。
sqoop import \--connect jdbc:mysql://node02:3306/testdb \--username root \--query select * from ts where \$CONDITIONS \--target-dir /tmp/sqoop/testdb/ts \--fields-terminated-by , \--hive-drop-import-delims \--split-by id \-m 1\-P8、查看最终结果。
hadoop fs -ls /tmp/sqoop/testdb/ts
hadoop fs -cat /tmp/sqoop/testdb/ts/part-m-000009、在MySQL中新增一条数据。
insert into ts values(10004,张飞,28,m);9、使用append增量方式将新增数据导入到/tmp/sqoop/testdb/ts/目录中。
sqoop import \--connect jdbc:mysql://node02:3306/testdb \--username root \--password root \--query select * from ts where \$CONDITIONS \--target-dir /tmp/sqoop/testdb/ts/ \--split-by id \-m 1 \--incremental append \--check-column id \--last-value 1000311、查看导入结果。
hadoop fs -ls /tmp/sqoop/testdb/ts
hadoop fs -cat /tmp/sqoop/testdb/ts/part-m-00001Sqoop Job操作
将sqoop任务编写为sqoop job能够减少每次作业执行前进行的参数配置工作。
将增量导入任务制作为sqoop job。
sqoop job --create im_ts \-- import \--connect jdbc:mysql://node02:3306/testdb \--username root \--password root \--query select * from ts where \$CONDITIONS \--target-dir /tmp/sqoop/testdb/ts/ \--split-by id \-m 1 \--incremental append \--check-column id \--last-value 10004查看所有作业。
sqoop job --list查看指定作业的详细信息。
sqoop job --show im_ts在MySQL中新增数据。
insert into ts values(10005,赵子龙,27,m);运行作业增量导入数据这里需要手动输入数据库密码Sqoop job默认不保存。
sqoop job --exec im_ts查看导入结果。
hadoop fs -cat /tmp/sqoop/testdb/ts/part-m-00002再次在MySQL中新增数据。
insert into ts values(10006,悟空,5000,m);运行作业此时不需要手动修改--last-value作业会自动根据上次的结果进行更新。
sqoop job --exec im_ts修改$SQOOP_HOME/conf/sqoop-site.xml配置文件可以使sqoop job自动保存密码。 propertynamesqoop.metastore.client.record.password/namevaluetrue/valuedescriptionIf true, allow saved passwords in the metastore./description/property