一、sqoop job相关命令参数
usage: sqoop job [GENERIC-ARGS] [JOB-ARGS] [-- [<tool-name>] [TOOL-ARGS]]
Job management arguments:
--create <job-id> Create a new saved job
--delete <job-id> Delete a saved job
--exec <job-id> Run a saved job
--help Print usage instructions
--list List saved jobs
--meta-connect <jdbc-uri> Specify JDBC connect string for the
metastore
--show <job-id> Show the parameters for a saved job
--verbose Print more information while working
Generic Hadoop command-line arguments:
(must preceed any tool-specific arguments)
Generic options supported are
-conf <configuration file> specify an application configuration file
-D <property=value> use value for given property
-fs <local|namenode:port> specify a namenode
-jt <local|jobtracker:port> specify a job tracker
-files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.
简单第一眼望去,终于比导入和导出的参数少了很多,自然内容好说一些。
Job存在的目的,是对频繁只用不变化的导入导出工作做自动化处理,例如创建一个Job每天做增量导入,导入最新的数据,这样的任务就可以使用Job来进行。
举个例子:
创建一个Job
$ sqoop job --create myjob -- import --connect jdbc:mysql://example.com/db \
--table mytable
查询当前Job列表
$ sqoop job --list
Available jobs:
myjob
查看某个Job的详情:
$ sqoop job --show myjob
Job: myjob
Tool: import
Options:
----------------------------
direct.import = false
codegen.input.delimiters.record = 0
hdfs.append.dir = false
db.table = mytable
...
执行某个Job:
$ sqoop job --exec myjob
10/08/19 13:08:45 INFO tool.CodeGenTool: Beginning code generation
...
执行时重写相关参数,例如你数据库的用户名和密码改变了:
$ sqoop job --exec myjob -- --username someuser -P
Enter password:
...
拥有--meta-connect私有存储空间的hadoop机器才能进行job操作,否则将会报如下错误:
[work@vm-nba01 ~]$ sqoop job --list
12/10/24 16:38:34 ERROR tool.JobTool: There is no JobStorage implementation available
12/10/24 16:38:34 ERROR tool.JobTool: that can read your specified storage descriptor.
12/10/24 16:38:34 ERROR tool.JobTool: Don't know where to save this job info! You may
12/10/24 16:38:34 ERROR tool.JobTool: need to specify the connect string with --meta-connect.
也就是说机器不知道你要的Job保存在哪里了,所以关于一切Job的操作都是徒劳的。
二、Metastore connection options
上面Joblist出错的问题这里就可以解决了,这里可以教你怎么创建Job的存储空间,相关参数:
Argument Description
--meta-connect <jdbc-uri> Specifies the JDBC connect string used to connect to the metastore
默认你会在$HOME/.sqoop目录下有一个私有的数据存储,你通过sqoop-metastore命令可以使用热数据存储来建立空间
By default, a private metastore is instantiated in $HOME/.sqoop. If you have configured a hosted metastore with the sqoop-metastore tool, you can connect to it by specifying the --meta-connect argument. This is a JDBC connect string just like the ones used to connect to databases for import.
In conf/sqoop-site.xml, you can configure sqoop.metastore.client.autoconnect.url with this address, so you do not have to supply --meta-connect to use a remote metastore. This parameter can also be modified to move the private metastore to a location on your filesystem other than your home directory.
If you configure sqoop.metastore.client.enable.autoconnect with the value false, then you must explicitly supply --meta-connect.(上述位置待以后实际操作后再翻译)
找到sqoop-site.xml的配置文件,发现如下配置:
<property>
<name>sqoop.metastore.client.enable.autoconnect</name>
<value>false</value>
<description>If true, Sqoop will connect to a local metastore
for job management when no other metastore arguments are
provided.
</description>
</property>
看来这个值设置为了false,导致不能够使用Job相关操作了。
<property>
<name>sqoop.metastore.client.record.password</name>
<value>true</value>
<description>If true, allow saved passwords in the metastore.
</description>
</property>
当这个值为真的时候才会保存密码。
sqoop-metastore命令可以检查你配置sqoop数据连接的正确性,当然这些配置还是在sqoop-site.xml中。
sqoop-merge命令可以允许你合并2个数据集到1个数据集。merge命令的相关参数:
Argument Description
--class-name <class> Specify the name of the record-specific class to use during the merge job.
--jar-file <file> Specify the name of the jar to load the record class from.
--merge-key <col> Specify the name of a column to use as the merge key.
--new-data <path> Specify the path of the newer dataset.
--onto <path> Specify the path of the older dataset.
--target-dir <path> Specify the target path for the output of the merge job.
举例:
$ sqoop merge --new-data newer --onto older --target-dir merged \
--jar-file datatypes.jar --class-name Foo --merge-key id
这样就会运行一个MapReduce的任务,新的数据集使用优先度高于老的数据集。
它能被使用在both SequenceFile-, Avro- and text-based incremental imports.并且新老的数据类型时相同的。
sqoop-codegen命令可以还原的你的java类,如果你的源码java丢失了,但是数据没有丢失,可以使用这样的命令:
$ sqoop codegen --connect jdbc:mysql://db.example.com/corp \
--table employees
sqoop-create-hive-table可以创建一个Hive表,复制某一个数据源的数据存储格式,例如:
$ sqoop create-hive-table --connect jdbc:mysql://db.example.com/corp \
--table employees --hive-table emps
sqoop-eval命令可以让用户快速做一个操作,结果显示在控制台中。例如:
$ sqoop eval --connect jdbc:mysql://db.example.com/corp \
--query "SELECT * FROM employees LIMIT 10"
$ sqoop eval --connect jdbc:mysql://db.example.com/corp \
-e "INSERT INTO foo VALUES(42, 'bar')"
sqoop-list-databases查看某个数据源的数据库列表,例如:
$ sqoop list-databases --connect jdbc:mysql://database.example.com/
information_schema
employees
sqoop-list-tables查看某个数据源的表列表,例如:
$ sqoop list-tables --connect jdbc:mysql://database.example.com/corp
employees
payroll_checks
job_descriptions
office_supplies
sqoop现在支持的数据库:
Database version --direct support? connect string matches
HSQLDB 1.8.0+ No jdbc:hsqldb:*//
MySQL 5.0+ Yes jdbc:mysql://
Oracle 10.2.0+ No jdbc:oracle:*//
PostgreSQL 8.3+ Yes (import only) jdbc:postgresql://
分享到:
相关推荐
这个压缩包 "sqoop-1.4.2.bin__hadoop-2.0.0-alpha.tar" 提供的是 Sqoop 1.4.2 版本,适用于与 Hadoop 2.0.0-alpha 版本集成。以下是对这个版本 Sqoop 的详细介绍以及相关的知识点: 1. **Sqoop 的作用**:Sqoop 是...
【Hadoop Sqoop介绍】 Hadoop Sqoop是一个专门设计用于在关系型数据库和Apache Hadoop之间高效迁移数据的工具。它的名称"SQL to Hadoop"表明了其主要功能,即帮助用户将数据从传统的数据库系统导入到Hadoop的HDFS...
本文档将详细介绍Sqoop2的安装步骤及配置方法,帮助用户顺利完成部署。 #### 二、安装步骤 1. **解压安装包** 使用命令行工具进行操作。首先切换到超级用户权限(sudo),然后使用`tar`命令来解压`sqoop-1.99.7-...
Hadoop-Sqoop配置 Sqoop 是一种数据迁移工具,主要用于在结构化数据源和 Hadoop 之间进行数据迁移。Sqoop 可以连接各种数据源,如 MySQL、PostgreSQL、Oracle 等,并将数据导入 Hadoop 中。 Sqoop 的主要特点是...
大数据集群 Hadoop HBase Hive Sqoop 集群环境安装配置及使用文档 在本文档中,我们将详细介绍如何搭建一个大数据集群环境,包括 Hadoop、HBase、Hive 和 Sqoop 的安装配置及使用。该文档将分为四部分:Hadoop 集群...
hadoop使用sqoop-1.2.0-CDH3B4.tar.gz需要将此包的hadoop-core-0.20.2-CDH3B4拷贝到sqoop/lib目录下
Sqoop中文文档 Sqoop是一款功能强大且广泛应用于大数据领域的数据导入工具,该工具可以将关系数据库中的数据导入到Hadoop生态系统中,如Hive、HBase等。本文档旨在为读者提供一个全面的Sqoop中文手册,涵盖了Sqoop...
hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文文档hadoop2.7中文...
首先,我们来看一下标题中的"hadoop_sqoop-1.4.6.bin__hadoop-2.0.4-alpha.rar",这表明我们将要操作的是Hadoop_Sqoop的1.4.6版本,这是针对Hadoop 2.0.4-alpha版本的一个特别打包。这个rar压缩文件包含了所有必要的...
本文档为Apache官方Hadoop 1.1.0中文文档 文档目录: 1.概述 2.快速入门 3.集群搭建 4.HDFS构架设计 5.HDFS使用指南 6.HDFS权限指南 7.HDFS配额管理指南 8.命令手册 9.FS Shell使用指南 10.DistCp使用指南 ...
根据提供的文件信息,我们可以提炼出以下关于Hadoop官方中文文档的知识点。 首先,文档标题为“Hadoop官方中文文档”,这意味着文档是Apache Hadoop项目的官方指南,且已经被翻译成中文,以便中文读者更容易理解和...
Hadoop 是一个开源的分布式计算...通过这份中文版的官方文档,读者不仅可以掌握Hadoop的基本概念和操作,还能深入了解分布式计算的原理和实践,对于想要从事大数据处理和分析的人员来说,是一份非常宝贵的参考资料。
### Hadoop Streaming中文官方文档解析 #### Hadoop Streaming概述 Hadoop Streaming是Hadoop生态系统中的一个组件,它允许用户使用自定义的编程语言(如Python、Perl或Ruby)编写MapReduce程序,而不仅仅是Java。...
虚拟机linux使用的sqoop-1.4.7版本
《Hadoop权威指南》是Hadoop领域的经典著作,其...通过阅读这份《Hadoop权威指南》第三版的中文文档,无论是初学者还是有经验的开发者,都能获得深入的理解和实践指导,从而更好地驾驭Hadoop这一强大的大数据处理工具。
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。sqoop是什么? sqoop是个传输数据的工具。 ...
7. **命令行工具**:文档会介绍如何使用Hadoop的命令行工具进行基本操作,如上传、下载文件,启动和停止HDFS和YARN服务,以及执行MapReduce作业。 8. **编程接口**:对于开发人员,文档会讲解如何编写MapReduce程序...
分析完成后,如果需要将结果数据返回到数据库,同样可以利用Sqoop完成导出操作。这种组合应用可以充分利用Hadoop的分布式计算能力,同时借助Hive简化数据分析工作,以及Sqoop实现数据的灵活迁移,为企业的大数据处理...
【Hadoop2.5.2+Sqoop-1.4.6】的组合主要用于在大数据环境中实现MySQL数据库数据的导入到Hadoop的分布式文件系统(HDFS)中。Hadoop是一个开源的分布式计算框架,而Sqoop是一款专门用于在关系型数据库与Hadoop之间...