登陆mysql
[hadoop@master root]$ mysql -u root -p -h 192.168.168.20
create database
mysql> create database hadoopguide;
Query OK, 1 row affected (0.06 sec)
操作权限
mysql> grant all privileges on hadoopguide.* to '%'@'192.168.168.20';
Query OK, 0 rows affected (0.17 sec)
mysql> grant all privileges on hadoopguide.* to ''@'192.168.168.20';
Query OK, 0 rows affected (0.00 sec)
create table widgets
mysql> use hadoopguide;
mysql> create table widgets(id int not null primary key auto_increment,
-> widget_name varchar(64) not null,
-> price decimal(10,2),
-> design_date date,
-> version int,
-> design_comment varchar(100));
Query OK, 0 rows affected (0.08 sec)
mysql> insert into widgets values(null,'sprocket',0.25,'2010-02-10',1,'Connects two gizmos');
Query OK, 1 row affected (0.03 sec)
mysql> insert into widgets values(null,'gizmo',4.00,'2009-02-10',4,null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into widgets values(null,'gadget',99.99,'1983-02-10',13,'Our flagship product');
Query OK, 1 row affected (0.00 sec)
mysql> select * from widgets;
+----+-------------+-------+-------------+---------+----------------------+
| id | widget_name | price | design_date | version | design_comment |
+----+-------------+-------+-------------+---------+----------------------+
| 1 | sprocket | 0.25 | 2010-02-10 | 1 | Connects two gizmos |
| 2 | gizmo | 4.00 | 2009-02-10 | 4 | NULL |
| 3 | gadget | 99.99 | 1983-02-10 | 13 | Our flagship product |
+----+-------------+-------+-------------+---------+----------------------+
3 rows in set (0.01 sec)
sqoop 导入hdfs
[hadoop@master bin]$ sqoop import --connect jdbc:mysql://192.168.168.20:3306/hadoopguide --username root -password 123456 --table widgets -m 1
Warning: $HADOOP_HOME is deprecated.
14/12/03 17:31:47 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
14/12/03 17:31:48 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
14/12/03 17:31:48 INFO tool.CodeGenTool: Beginning code generation
14/12/03 17:31:48 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `widgets` AS t LIMIT 1
14/12/03 17:31:48 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `widgets` AS t LIMIT 1
14/12/03 17:31:48 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /opt/hadoop/hadoop
Note: /tmp/sqoop-hadoop/compile/77c947843e2b141bf06bc0f35e06f3ee/widgets.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
14/12/03 17:31:51 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-hadoop/compile/77c947843e2b141bf06bc0f35e06f3ee/widgets.jar
14/12/03 17:31:51 WARN manager.MySQLManager: It looks like you are importing from mysql.
14/12/03 17:31:51 WARN manager.MySQLManager: This transfer can be faster! Use the --direct
14/12/03 17:31:51 WARN manager.MySQLManager: option to exercise a MySQL-specific fast path.
14/12/03 17:31:51 INFO manager.MySQLManager: Setting zero DATETIME behavior to convertToNull (mysql)
14/12/03 17:31:51 INFO mapreduce.ImportJobBase: Beginning import of widgets
14/12/03 17:32:01 INFO mapred.JobClient: Running job: job_201411301631_0001
14/12/03 17:32:02 INFO mapred.JobClient: map 0% reduce 0%
14/12/03 17:32:47 INFO mapred.JobClient: map 100% reduce 0%
14/12/03 17:32:48 INFO mapred.JobClient: Job complete: job_201411301631_0001
sqoop 的 import 工具会运行一个MapReduce 作业。默认情况下,该作业会并行使用4个map tasktracker 来加速导入过程, 每个tasktracker都会将其所导入的数据写到一个单独的文件,但所有4个文件都位于同一个目录中,在本例中,由于我们知道只有三行可以导入的数据,因此指定sqoop只使用一个map tasktracker(-m 1),这样我们只得到一个保存在HDFS中的文件。
查看HDFS
hadoop fs -cat widgets/part-m-00000
[hadoop@master root]$ mysql -u root -p -h 192.168.168.20
create database
mysql> create database hadoopguide;
Query OK, 1 row affected (0.06 sec)
操作权限
mysql> grant all privileges on hadoopguide.* to '%'@'192.168.168.20';
Query OK, 0 rows affected (0.17 sec)
mysql> grant all privileges on hadoopguide.* to ''@'192.168.168.20';
Query OK, 0 rows affected (0.00 sec)
create table widgets
mysql> use hadoopguide;
mysql> create table widgets(id int not null primary key auto_increment,
-> widget_name varchar(64) not null,
-> price decimal(10,2),
-> design_date date,
-> version int,
-> design_comment varchar(100));
Query OK, 0 rows affected (0.08 sec)
mysql> insert into widgets values(null,'sprocket',0.25,'2010-02-10',1,'Connects two gizmos');
Query OK, 1 row affected (0.03 sec)
mysql> insert into widgets values(null,'gizmo',4.00,'2009-02-10',4,null);
Query OK, 1 row affected (0.00 sec)
mysql> insert into widgets values(null,'gadget',99.99,'1983-02-10',13,'Our flagship product');
Query OK, 1 row affected (0.00 sec)
mysql> select * from widgets;
+----+-------------+-------+-------------+---------+----------------------+
| id | widget_name | price | design_date | version | design_comment |
+----+-------------+-------+-------------+---------+----------------------+
| 1 | sprocket | 0.25 | 2010-02-10 | 1 | Connects two gizmos |
| 2 | gizmo | 4.00 | 2009-02-10 | 4 | NULL |
| 3 | gadget | 99.99 | 1983-02-10 | 13 | Our flagship product |
+----+-------------+-------+-------------+---------+----------------------+
3 rows in set (0.01 sec)
sqoop 导入hdfs
[hadoop@master bin]$ sqoop import --connect jdbc:mysql://192.168.168.20:3306/hadoopguide --username root -password 123456 --table widgets -m 1
Warning: $HADOOP_HOME is deprecated.
14/12/03 17:31:47 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
14/12/03 17:31:48 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
14/12/03 17:31:48 INFO tool.CodeGenTool: Beginning code generation
14/12/03 17:31:48 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `widgets` AS t LIMIT 1
14/12/03 17:31:48 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `widgets` AS t LIMIT 1
14/12/03 17:31:48 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /opt/hadoop/hadoop
Note: /tmp/sqoop-hadoop/compile/77c947843e2b141bf06bc0f35e06f3ee/widgets.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
14/12/03 17:31:51 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-hadoop/compile/77c947843e2b141bf06bc0f35e06f3ee/widgets.jar
14/12/03 17:31:51 WARN manager.MySQLManager: It looks like you are importing from mysql.
14/12/03 17:31:51 WARN manager.MySQLManager: This transfer can be faster! Use the --direct
14/12/03 17:31:51 WARN manager.MySQLManager: option to exercise a MySQL-specific fast path.
14/12/03 17:31:51 INFO manager.MySQLManager: Setting zero DATETIME behavior to convertToNull (mysql)
14/12/03 17:31:51 INFO mapreduce.ImportJobBase: Beginning import of widgets
14/12/03 17:32:01 INFO mapred.JobClient: Running job: job_201411301631_0001
14/12/03 17:32:02 INFO mapred.JobClient: map 0% reduce 0%
14/12/03 17:32:47 INFO mapred.JobClient: map 100% reduce 0%
14/12/03 17:32:48 INFO mapred.JobClient: Job complete: job_201411301631_0001
sqoop 的 import 工具会运行一个MapReduce 作业。默认情况下,该作业会并行使用4个map tasktracker 来加速导入过程, 每个tasktracker都会将其所导入的数据写到一个单独的文件,但所有4个文件都位于同一个目录中,在本例中,由于我们知道只有三行可以导入的数据,因此指定sqoop只使用一个map tasktracker(-m 1),这样我们只得到一个保存在HDFS中的文件。
查看HDFS
hadoop fs -cat widgets/part-m-00000
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26495863/viewspace-1356001/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26495863/viewspace-1356001/