文章目录
- 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’);