码迷,mamicode.com
首页 > 其他好文 > 详细

sqoop 之数据迁移

时间:2018-01-18 19:36:33      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:默认   1.2   http   res   master   hadoop   ports   obb   apr   

安装sqoop的前提是已经具备java和hadoop的环境
1、下载并解压
最新版下载地址http://ftp.wayne.edu/apache/sqoop/1.4.6/


2、修改配置文件
$ cd $SQOOP_HOME/conf
$ mv sqoop-env-template.sh sqoop-env.sh
打开sqoop-env.sh并编辑下面几行:
export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.6.1/ 
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.6.1/
export HIVE_HOME=/home/hadoop/apps/hive-1.2.1


3、加入mysql的jdbc驱动包
cp  ~/app/hive/lib/mysql-connector-java-5.1.28.jar   $SQOOP_HOME/lib/

4、验证启动

$ cd $SQOOP_HOME/bin

$ sqoop-version

预期的输出:

15/12/17 14:52:32 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6

Sqoop 1.4.6 git commit id 5b34accaca7de251fc91161733f906af2eddbe83

Compiled by abe on Fri Aug 1 11:19:26 PDT 2015

到这里,整个Sqoop安装工作完成。

常用命令:

Available commands:
codegen    Generate code to interact with database records
create-hive-table    Import a table definition into Hive
eval    Evaluate a SQL statement and display the results
export    Export an HDFS directory to a database table
help    List available commands
import    Import a table from a database to HDFS
import-all-tables    Import tables from a database to HDFS
import-mainframe    Import datasets from a mainframe server to HDFS
job    Work with saved jobs
list-databases    List available databases on a server
list-tables    List available tables in a database
merge    Merge results of incremental imports
metastore    Run a standalone Sqoop metastore
version    Display version information

测试例子:

将数据库的表数据导入的hdfs:

mysql> select * from tmp;               
+------+------+
| id   | name |
+------+------+
|    1 | f    |
|    2 | a    |
|    3 | b    |
|    4 | c    |
+------+------+
4 rows in set (0.00 sec)

在sqoop 机器上测试是否可以连上mysql:
[root@master sqoop-1.4.6]# mysql -h slave1 -uroot -p123456
[root@master sqoop-1.4.6]# mysql -h slave1 -uroot -p123456
ERROR 1045 (28000): Access denied for user root@master (using password: YES)
需要授权:
mysql> show grants;
+----------------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                                                              |
+----------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY PASSWORD *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> grant all privileges on *.* to root@% identified by 123456;            
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#####################例子##############

[root@master sqoop-1.4.6]# pwd
/usr/local/src/sqoop-1.4.6

[root@master sqoop-1.4.6]# bin/sqoop import --connect jdbc:mysql://slave1:3306/test --username root --password 123456 --table tmp --m 1

。。。

。。。

18/01/18 02:20:47 INFO mapreduce.ImportJobBase: Transferred 16 bytes in 146.6658 seconds (0.1091 bytes/sec)
18/01/18 02:20:47 INFO mapreduce.ImportJobBase: Retrieved 4 records.

成功!!!!!!!!!!

提示:sqoop 是要跑mapreduce ,所以所有的MapReduce 机器一定要能给解析mysql 机器(也就是可以ping mysql 机器)

 

默认不指定路径:

[root@master sqoop-1.4.6]# hadoop fs -ls /user/root/tmp/
Found 2 items
-rw-r--r-- 3 root supergroup 0 2018-01-18 02:20 /user/root/tmp/_SUCCESS
-rw-r--r-- 3 root supergroup 16 2018-01-18 02:20 /user/root/tmp/part-m-00000
[root@master sqoop-1.4.6]# hadoop fs -cat /user/root/tmp/part-m-00000
1,f
2,a
3,b
4,c

 

sqoop 之数据迁移

标签:默认   1.2   http   res   master   hadoop   ports   obb   apr   

原文地址:https://www.cnblogs.com/shanhua-fu/p/8311735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!