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
Sqoop练习题_Sqoop

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

Sqoop练习题_Sqoop_02

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
Sqoop练习题_Sqoop_03

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;

Sqoop练习题_Sqoop_04

题二

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
Sqoop练习题_Sqoop_05

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’);

Sqoop练习题_Sqoop_06