Sqoop(3)—— Mysql数据导入HDFS

Sqoop3)—— Mysql数据导入HDFS

  1. 官方文档

Sqoop导入导出的官方文档:

http://sqoop.apache.org/docs/1.4.7/index.html

http://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html

  1. 执行Sqoop的两种方式

http://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html#_using_options_files_to_pass_arguments

Sqoop(3)—— Mysql数据导入HDFS_第1张图片

  1. 公共参数(Common arguments)

Sqoop(3)—— Mysql数据导入HDFS_第2张图片

--connect:JDBC连接字符串

--connectioni-manager:JDBC连接管理类

--driver:JDBC驱动类

--hadoop-mapred-home

:如果系统环境变量中声明了HADOOP_HOME则可以不写这个参数

-P:在控制台输入密码

--password:JDBC连接关系型数据库的密码

--username:JDBC连接关系型数据库的用户名

  1. 导入控制参数

Sqoop(3)—— Mysql数据导入HDFS_第3张图片

  1. 示例

将mysql数据库中的内容导入到hdfs

  1. 集群规划与版本

hadoop-2.6.5

sqoop-1.4.7.bin__hadoop-2.6.0

zookeeper-3.4.10

 

faith-Fedora

faith-Ubuntu

faith-openSUSE

faith-Kylin

faith-Mint

faith-Fedora2

NN1(ZKFC1)

         

NN2(ZKFC2)

 

       

JN1

         

JN2

 

       

JN3

   

     

DN1(NM1)

   

     

DN2(NM2)

     

   

DN3(NM3)

       

 

RS1

     

   

RS2

       

 

ZK1

   

     

ZK2

     

   

ZK3

       

 

SQOOP

         

MYSQL

         

  1. 启动集群

  1. 启动ZK

  1. 启动HDFS

Sqoop(3)—— Mysql数据导入HDFS_第4张图片

  1. 启动yarn

  1. 启动mysql

Sqoop(3)—— Mysql数据导入HDFS_第5张图片

  1. 测试连接

使用list-databases工具展示mysql数据库列表。

Sqoop(3)—— Mysql数据导入HDFS_第6张图片

  1. 创建mysql数据表

创建一个表psn,作为源表,并向该表中存入一些数据。

Sqoop(3)—— Mysql数据导入HDFS_第7张图片

Sqoop(3)—— Mysql数据导入HDFS_第8张图片

  1. 导入命令

import

--connect

jdbc:mysql://faith-Fedora2:3306/test

--username

root

--password

--as-textfile

--columns

id,name,msg

--table

psn

--delete-target-dir

--target-dir

/user/aith/sqoop/data

-m

4

将命令写入一个文本文件sqoop_options_file


  1. 执行命令

如果mysql上创建表的时候没有设置主键,会抛出下面的异常。

Sqoop(3)—— Mysql数据导入HDFS_第9张图片

这个异常是因为关系型数据库中的表没有主键造成的

(参考文章http://blog.csdn.net/holdbelief/article/details/79638463)

解决方案有两种:

方案一:给表添上主键

方案二:有些数据表无法设置主键,比如很多的监测记录数据,找不到唯一值,针对这种数据,我们可以根据上面的错误提示通过以下两个方法来解决:

  1. 将map的个数设置成1(Sqoop默认是4)
  2. 使用一个字段(需要是整型字段)作为分片的字段,使用—split-by指定分片字段。


重新执行命令

Sqoop(3)—— Mysql数据导入HDFS_第10张图片

  1. 在Yarn的webUI上查看任务

http://faith-Kylin:8088

Sqoop(3)—— Mysql数据导入HDFS_第11张图片

  1. 在HDFS上查看

faith-Fedora:50070

Sqoop(3)—— Mysql数据导入HDFS_第12张图片

  1. 查看HDFS上面的数据

Sqoop(3)—— Mysql数据导入HDFS_第13张图片

你可能感兴趣的:(Sqoop,---Sqoop教程,---Sqoop教程---原创)