Sqoop练习题

2021-04-09 14:54:53 浏览数 (1)

文章目录

  • Sqoop练习题
    • 题一
    • 题二

Sqoop练习题

题一

1.准备数据 CREATE TABLE student ( id int(11) DEFAULT NULL, name varchar(100) DEFAULT NULL, class varchar(100) DEFAULT NULL, age int(11) DEFAULT NULL, high varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO student VALUES (‘1001’, ‘James’, ‘12’, ‘16’, ‘158’); INSERT INTO student VALUES (‘1002’, ‘Mark’, ‘34’, ‘17’, ‘169’); INSERT INTO student VALUES (‘1003’, ‘Henry’, ‘13’, ‘18’, ‘178’); INSERT INTO student VALUES (‘1004’, ‘Kitte’, ‘24’, ‘17’, ‘175’); INSERT INTO student VALUES (‘1005’, ‘Tom’, ‘23’, ‘20’, ‘180’);

1.2请使用sqoop把数据全量导入到HDFS的 /MysqlToHDFS1 目录下,要求使用一个map。 bin/sqoop import –connect jdbc:mysql://192.168.10.10:3306/userdb –username root –delete-target-dir –target-dir /MysqlToHDFS1 –table student --m 1

1.3请使用sqoop把部分数据导入到HDFS的 /MysqlToHDFS2 目录下,要求使用where指定age=17的条件查询,一个map。 bin/sqoop import –connect jdbc:mysql://192.168.10.10:3306/userdb –username root –where "age =17 " –target-dir /MysqlToHDFS2 –table student --m 1

1.4请使用sqoop把部分数据导入到HDFS的 /MysqlToHDFS3 目录下,要求使用query sql语句查询,导入的字段为id,name,age,查询条件为age>16,两个map,以id字段进行划分。 bin/sqoop import –connect jdbc:mysql://192.168.10.10:3306/userdb –username root –delete-target-dir –target-dir /MysqlToHDFS3 –query ‘select id,name,age from student WHERE age > 16 and $CONDITIONS’ –split-by id –fields-terminated-by ‘t’ –m 2

1.5请使用sqoop把数据全量导入到Hive的 exam1217数据库下,要求使用一个map。 bin/sqoop import –connect jdbc:mysql://192.168.10.10:3306/userdb –username root –table student –hive-import –m 1 –hive-database exam1217;

题二

2.准备数据: create table login(id int,name varchar(20),password varchar(20), last_time timestamp default current_timestamp on update current_timestamp); 一条一条插入: insert into login(id,name,password) values(1,‘A’,123456); insert into login(id,name,password) values(2,‘B’,123456); insert into login(id,name,password) values(3,‘C’,123456); insert into login(id,name,password) values(4,‘D’,123456); insert into login(id,name,password) values(5,‘F’,123456);

2.1将数据全部导入到HDFS /Login 目录下,要求使用一个map。 bin/sqoop import –connect jdbc:mysql://node01:3306/userdb –username root –target-dir /Login –table login --m 1

bin/sqoop import –connect jdbc:mysql://192.168.10.10:3306/userdb –username root –delete-target-dir –target-dir /Login –table login --m 1

2.2.增量和更新导入到/Login 目录下,要求使用一个map。 插入一条数据,修改id为1、2的用户密码 update login set password = ‘admin’ where id = 1; update login set password = ‘admin’ where id = 2; insert into login(id,name,password) values(6,‘G’,‘admin’);

0 人点赞