`

sqoop一点一滴之导数据从mysql2hive

 
阅读更多

 

1、使用sqoop在hive中创建table test

 

sqoop create-hive-table --connect jdbc:mysql://192.168.100.65:3301/crm --table d_accounttype --username crm --password crm --hive-table d_accounttype

 

2、编写mysql 导入opt 文件

 

import
--connect
jdbc:mysql://192.168.100.65:3301/crm
--username
crm
--password
crm
--m
1
--null-string
''
--table
d_accounttype
--columns
"id"
--hive-import
--hive-overwrite
--hive-table
d_accounttype

 

参与说明:

 

参数  ------------------------ 描述
--append 向hdfs中追加数据集
--hive-overwrite 覆盖hdfs数据集
--as-avrodatafile 保存的文件类型avr文件
--as-sequencefile 保存文件类型序列文件
--as-textfile 默认保存普通文本文件
-m,--num-mappers map任务数量设置
-e,--query <statement> 导入部分结果集使用"查询SQL"
--where <where clause> 查询table 使用的过滤条件
-z,--compress 启动压缩
 

3、运行opt 文件

 

sqoop --options-file m2h-d-acounttype.opt

 4、启动hive

 

hive

 5、查询tables

select * from d_accounttype;

 6、show date



 

遇到问题:

 

1、没有在hive创建mysql中得相同的表,就直接导入数据。系统自动生成输出目录就不在指定hive路径了。

再次运行就会报 目录以存在 error。

 

2、sqoop 所有参数说明

 

usage: sqoop import [GENERIC-ARGS] [TOOL-ARGS]

 

Common arguments:

   --connect <jdbc-uri>                         Specify JDBC connect                                                string

   --connection-manager <class-name>            Specify connection manager                       class name

   --connection-param-file <properties-file>    Specify connection        parameters file

   --driver <class-name>                        Manually specify JDBC                driver class to use

   --hadoop-mapred-home <dir>                   Override

                                                $HADOOP_MAPRED_HOME_ARG

   --help                                       Print usage instructions

   -P                                              Read password from console

   --password <password>                        Set authentication                                                 password

   --username <username>                        Set authentication                                                username

   --verbose                                    Print more information                                                while working

 

Import control arguments:

   --append                                                   Imports data      in append               mode

   --as-avrodatafile                                          Imports data          to Avro data                        files

   --as-sequencefile                                          Imports data           to                             SequenceFile

                               

   --as-textfile                                              Imports data            as plain  text                (default)

   --boundary-query <statement>                               Set boundary

                                                              query for  retrieving max and min value of the primary key

   --columns <col,col,col...>                    Columns to  import from table

   --compression-codec <codec>           Compression codec to use for import

   --direct                                                Use direct import fast path

   --direct-split-size <n>                          Split the input stream   every 'n' bytes when importing in direct mode

   -e,--query <statement>                  Import results of SQL 'statement'

   --fetch-size <n>                              Set number 'n' of rows to fetch from the database when more rows are needed

   --inline-lob-limit <n>                        Set the maximum size for an inline LOB

   -m,--num-mappers <n>                    Use 'n' map tasks to import in parallel

   --mapreduce-job-name <name>       Set name for generated mapreduce job

   --split-by <column-name>            Column of the table used to split work units

   --table <table-name>                                       Table to read

   --target-dir <dir>                                         HDFS plain table destination 

    --validate                                                 Validate the copy using the configured validator

   --validation-failurehandler <validation-failurehandler>    Fully qualified class name for ValidationFa 

                                                              ilureHandler

   --validation-threshold <validation-threshold>              Fully qualified class name for ValidationTh reshold

   --validator <validator>                  Fully   qualified  class name for the Validator

   --warehouse-dir <dir>                   HDFS parent for table destination

   --where <where clause>                WHERE clause to use during import

   -z,--compress                                Enable compression

 

Incremental import arguments:

   --check-column <column>        Source column to check for incremental change

   --incremental <import-type>    Define an incremental import of type 'append' or 'lastmodified'

   --last-value <value>           Last imported value in the incremental check column

 

Output line formatting arguments:

   --enclosed-by <char>               Sets a required field enclosing character

   --escaped-by <char>                Sets the escape character

   --fields-terminated-by <char>      Sets the field separator character

   --lines-terminated-by <char>       Sets the end-of-line character

   --mysql-delimiters                 Uses MySQL's default delimiter set:

                                      fields: ,  lines: \n  escaped-by: \optionally-enclosed-by: '

   --optionally-enclosed-by <char>    Sets a field enclosing character

Input parsing arguments:

   --input-enclosed-by <char>               Sets a required field encloser

   --input-escaped-by <char>                Sets the input escape character

   --input-fields-terminated-by <char>      Sets the input field separator

   --input-lines-terminated-by <char>       Sets the input end-of-line char

   --input-optionally-enclosed-by <char>    Sets a field enclosing character

 

Hive arguments:

   --create-hive-table                         Fail if the target hive table exists

   --hive-delims-replacement <arg>             Replace Hive record \0x01 and row delimiters (\n\r) from imported string fields with user-defined string

   --hive-drop-import-delims                   Drop Hive record \0x01 and row delimiters (\n\r) from imported string fields

   --hive-home <dir>                           Override $HIVE_HOME

   --hive-import                Import tables into Hive (Uses Hive's default delimiters if none are set.)

   --hive-overwrite            Overwrite existing data in the Hive table

   --hive-partition-key <partition-key>        Sets the partition key to use when importing to hive

   --hive-partition-value <partition-value>    Sets the partition value to use when importing to hive

   --hive-table <table-name>                   Sets the table name to use when importing to hive

   --map-column-hive <arg>                     Override mapping for specific column to hive types.

 

HBase arguments:

   --column-family <family>   Sets the target column family for the import

   --hbase-create-table        If specified, create missing HBase tables

   --hbase-row-key <col>     Specifies which input column to use as the row key

   --hbase-table <table>      Import to <table> in HBase

 

Code generation arguments:

   --bindir <dir>                  Output directory for compiled  objects

   --class-name <name>    Sets the generated class name. This overrides --package-name.

                                         When combined with --jar-file, sets the input class.

   --input-null-non-string <null-str>    Input null non-string  representation

   --input-null-string <null-str>        Input null string representation

   --jar-file <file>                     Disable code generation; use specified jar

   --map-column-java <arg>     Override mapping for specific       columns to java types

   --null-non-string <null-str>    Null non-string representation

   --null-string <null-str>           Null string representation

   --outdir <dir>                        Output directory for generated  code

   --package-name <name>     Put auto-generated classes in this package

 

3、增量导入 怎样动态修改 last-value ?

另外一个问题,如果我们要导入某个表中的新加入的部分,可以使用--check-column、--incremental、--last-value三个参数,--check-column指定要检查的列,--incremental指定某种增加的模式,只有两个合法的值,append 和lastmodified。如果--incremental为append,则Sqoop会导入--check-column指定的列的值大于--last-value所指定的值的记录。如果--incremental为lastmodified,则Sqoop会导入--check-column指定的列的值(这是一个时间戳)近于--last-value所指定的时间戳的记录。例如下面的命令可以导入列ID的值大于4的所有记录。

 

$ sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.56.111:1521:DBNAME --username USERNAME --password PASSWORD --verbose -m 1 --table TABLENAME --check-column ID --incremental append --last-value 4

 

 

 

  • 大小: 5.8 KB
分享到:
评论

相关推荐

    sqoop从mysql中导入数据到parquet格式的hive中

    sqoop导入数据到hive

    2、sqoop导入(RMDB-mysql、sybase到HDFS-hive)

    在本主题中,我们将深入探讨 Sqoop 的导入功能,特别是如何将数据从 MySQL 和 Sybase 数据库导入到 HDFS,并进一步加载到 Hive 表中。 ### 一、Sqoop 导入介绍 1. **语法结构**: Sqoop 导入数据的基本语法如下:...

    数据同步Sqoop用法之mysql与Hive导入导出.docx

    Sqoop 用法之 MySQL 与 Hive 导入导出 Sqoop 是一个专门用于将 Hadoop 和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL、Oracle、Postgres 等)中的数据导进到 Hadoop 的 HDFS 中,也...

    sqoop导入数据到hive中,数据不一致

    当使用Sqoop将数据导入Hive时,有时可能会遇到数据不一致的问题,这可能是由于多种原因引起的。本文将深入探讨这个问题,并提供可能的解决方案。 Sqoop是一个用于在关系数据库和Hadoop之间传输数据的工具,它可以...

    sqoop 从 hive 导到mysql遇到的问题.docx

    在将数据从 Hive 导入到 MySQL 时,Sqoop 可能会遇到一些问题。例如,在描述文件中,Sqoop 的版本为 1.4.4,Hadoop 的版本为 1.0.0,Hive 的版本为 0.11.0。 Sqoop 在连接 MySQL 时,需要指定 JDBC 连接器的路径,...

    使用sqoop抽取mysql数据

    Sqoop 是一个用于在 Hadoop 和关系型数据库之间进行数据导入导出的工具,它使得在大数据处理场景下,能够方便地将结构化的数据从 MySQL 这样的 RDBMS(关系型数据库管理系统)转移到 Hadoop 的 HDFS(Hadoop 分布式...

    Sqoop导Oracle数据到Hive

    ### Sqoop导入Oracle数据到Hive的详细步骤与解析 #### 一、概述 在大数据处理领域中,经常需要将关系型数据库中的数据导入到Hadoop的HDFS中,以便进一步进行数据分析或处理。其中,Sqoop作为一种强大的工具,能够...

    Sqoop通过Phoenix导hbase数据到hive

    出现此问题时使用:java.lang.NullPointerException at org.json.JSONObject.(JSONObject.java:144) at org.apache.sqoop.util.SqoopJsonUtil.... at org.apache.sqoop.Sqoop.main(Sqoop.java:252)

    基于Sqoop+Hive+Spark+MySQL+AirFlow+Grafana的工业大数据离线数仓项目

    在大数据项目中,AirFlow能确保数据从收集到分析的整个流程自动化、有条不紊地运行,例如设置定时任务从MySQL抽取数据,用Sqoop导入HDFS,然后启动Hive和Spark作业进行分析。 最后,Grafana是一个强大的可视化工具...

    Sqoop安装及MySQL、HDFS、Hive、HBase 数据迁移实验

    内容概要:本文档提供了详细的 Sqoop 安装指南以及在 Ubuntu 上运行 Sqoop 实验的具体步骤,涵盖从环境搭建、 Sqoop 基础配置、 MySQL 连接器获取到常见数据迁移操作。文中介绍了通过 Sqoop 在 MySQL 和 HDFS 之间、...

    mysql数据抽取,自动生成hive建表语句

    7. **数据导入**:使用ETL工具(如Apache Sqoop)或编写脚本,将MySQL数据导入到Hive中。这一步可能涉及数据格式转换、数据清洗等操作。 8. **验证与优化**:导入数据后,进行数据校验,确保数据一致性。根据业务...

    sqoop把mysql数据导入hbase2.1.6

    首先,Sqoop不仅支持将数据从关系型数据库如MySQL导入到HDFS或Hive,还能直接导入到HBase。关键在于正确使用参数: 1. `--hbase-table`:此参数用于指定导入的数据应存储在哪个HBase表中。不指定的话,数据将被导入...

    yinian_hive_increase_sqoop:sqoop从mysql同步数据到hive

    【标题】"yinian_hive_increase_sqoop:sqoop从mysql同步数据到hive" 描述了一种使用Apache Sqoop工具将数据从MySQL数据库高效地导入到Hadoop的Hive数据仓库的过程。这个过程在大数据处理中至关重要,因为它允许用户...

    实战Sqoop数据导入及大数据用户行为案例分析

    实战Sqoop数据导入及大数据用户行为案例分析...08_Sqoop将MySQL数据导入Hive表中 09_Sqoop的导出及脚本中使用的方式 10_案例分析-动态分区的实现 11_案例分析-源表的分区加载创建 12_案例分析-指标分析使用Sqoop导出

    mysql-connector-5.1.39,配合sqoop1.4.7和hive2.1.1使用

    2. **数据导出**:同样,当你在Hive中完成数据分析后,可以使用Sqoop将结果数据导回MySQL,更新或者创建新的表。这在数据仓库的ELT(提取、加载、转换)流程中非常常见。 3. **Hive与MySQL交互**:虽然Hive不直接...

    一个简单的Hive项目,使用了Sqoop、Hadoop、Hive、MySQL,对电商数据进行分析-BI_project.zip

    该项目是一个综合性的大数据分析实践,主要利用Hadoop生态系统中的组件,包括Sqoop、Hadoop、Hive以及MySQL,对电商数据进行深入分析。这个过程涵盖了数据的导入、存储、处理和查询等多个环节,展示了大数据技术在...

    hive2.1.1_mysql_sqoop.zip

    然后,你可以使用Sqoop命令行工具,结合Hive的HQL,实现从MySQL数据库到HDFS的数据迁移,或者反过来,将处理过的数据写回到MySQL。这整个过程简化了大数据处理的流程,使得数据的导入导出变得更加高效和便捷。 总结...

    sqoop从mysql到hive的时间字段问题

    一、问题发现与分析 ...经过对比:sqoop在转换MySQL的datatime字段类型为hive的string时会出现问题:默认先转为对应时间戳,再转换为北京市区时间,就会使时间多8小时。 解决办法有两个: 1、在sql里将时间字段转换为

    Hive数据仓库之垃圾分类数据分析系统

    (3)sqoop数据迁移,完成HIve与MySQL数据库中的数据交互 (4)Echarts搭建动态可视化大屏 (5)SpringBoot搭建可视化后台系统,完成前端与后台的数据传递与交互。 (6)基于Cenots7 搭建虚拟机,配置Hadoop、HDFS、...

    Hive、MySQL、HBase数据互导

    使用Sqoop将数据从Hive导入MySQL**: - 使用Sqoop连接到Hive并指定要导出的表。 - 设置目标MySQL数据库的连接信息,包括用户名、密码、数据库名和表名。 - 执行Sqoop命令,将Hive表的数据导入到MySQL中。 **3. ...

Global site tag (gtag.js) - Google Analytics