美文网首页
2.2 sqoop指定目标路径

2.2 sqoop指定目标路径

作者: NEO_X | 来源:发表于2019-05-31 08:48 被阅读0次

Apache Sqoop Cookbook 英文版-翻译学习!!

sqoop 主要的命令

19/05/31 05:49:02 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5.2.2.4.2-2
usage: sqoop COMMAND [ARGS]

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
  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

See 'sqoop help COMMAND' for information on a specific command.

问题

上一节使用的例子能够很好的工作,这可以让你决定将Sqoop整合到Hadoop的数据工作流中。
为了能够做到这点,需要指定一个目录来存放导入的数据。

解决方案

Sqoop提供了两个参数用来指定自定义输出路径。

--target-dir--warehouse-dir ,使用 --target-dir 参数用来指定数据将要导入到的HDFS的路径上. 如 使用以下命令将cities表数据导入到目录 /etc/input/cities。

sqoop import \
    --connect jdbc:mysql://localhost:3306/sqoop \
    --username sqoop \
    --password sqoop \
    --table cities \
    --target-dir /etl/input/cities

指定所有sqoop任务的父目录的方法,使用 --warehouse-dir 参数

sqoop import \ 
    --connect jdbc:mysql://localhost:3306/sqoop \
    --username sqoop \ 
    --password sqoop \
    --table cities \
    --warehouse-dir /mydir/input

讨论

默认情况下,sqoop将会创建一个和导入表名相同的目录在HDFS上,并将全部的数据到这个目录中。举例来说

当用户jarcec导入表cities时,数据将会被导入到/user/jarcec/cities目录下。而这个目录替换成在HDFS上的
任意的目录通过使用参数--target-dir,前提条件是这个目录需要事先创建好。
对于已经存在的目录,Sqoop会拒绝写入,以防止数据覆盖而产生问题。

c2_2_table_exist.png

如果想对多个表执行sqoop作业,需要修改 --target-dir 参数
相比直接指定最终的存储路径,使用 --warehouse-dir 可以用来指定一个父目录,这样不仅仅是将数据写入到
warehouse目下,sqoop还会创建一个
和表同名的文件夹,并且将数据导入到这个文件夹下,这种情况有点像是sqoop将数据导入到你HDFS系统下的家目录下。但需要注意的是 --warehouse-dir 参数允许使用除家目录以外的路径,还有一点需要提醒的是,使用这个
参数时不需要改变每个表名,除非有同名的表。

更多信息https://blue-shadow.top/

相关文章

  • 2.2 sqoop指定目标路径

    Apache Sqoop Cookbook 英文版-翻译学习!! sqoop 主要的命令 问题 上一节使用的例子能...

  • tar压缩到指定文件

    tar压缩指定文件: 格式: tar -zcvf 目标路径/目标指定的压缩包名 要压缩的目录、...

  • sqoop mysql 导入hive CDH

    mysql 驱动jar包 使用版本 CDH sqoop lib 包路径,sqoop 需要找到jar 包联接mysq...

  • 命令

    一、概述 创建命令类声明命令实例指定命令源指定命令目标设置命令关联 二、使用 2.1 例子 2.2 默认命令库 A...

  • hdfs的基本shell命令

    -ls <路径>:查看指定路径的结构 -ls -R <路径>| lsr <路径>:递归查看指定路径的结构 -du ...

  • 基本命令

    通用语法格式:# 指令名称 [选项] [操作目标] 1、简单命令 ls指令ls [路径]:表示列出指定路径下的文件...

  • django

    1、安装,指定安装2.2版本 pip install django==2.2 -i http://pypi.dou...

  • 大数据工程师学习路径

    大数据学习路径中会学习并实践 Java、Scala、Hadoop、HBase、Mahout、Sqoop及Spark...

  • C语言头文件和库的搜索顺序

    #include <>与#include "" gcc搜索头文件顺序 参数-I指定的路径指定路径有多个路径时,按指...

  • Spring通过注解注入外部配置文件

    指定路径 使用 @PropertySource 指定配置文件路径,支持 properties 和 XML 的配置文...

网友评论

      本文标题:2.2 sqoop指定目标路径

      本文链接:https://www.haomeiwen.com/subject/vevitctx.html