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

  1. 公共参数(Common arguments)

--connect:JDBC连接字符串

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

--driver:JDBC驱动类

--hadoop-mapred-home <dir>:如果系统环境变量中声明了HADOOP_HOME则可以不写这个参数

-P:在控制台输入密码

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

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

  1. 导入控制参数

  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

  1. 启动yarn

  1. 启动mysql

  1. 测试连接

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

  1. 创建mysql数据表

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

  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上创建表的时候没有设置主键,会抛出下面的异常。

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

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

解决方案有两种:

方案一:给表添上主键

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

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


重新执行命令

  1. 在Yarn的webUI上查看任务

http://faith-Kylin:8088

  1. 在HDFS上查看

faith-Fedora:50070

  1. 查看HDFS上面的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值