返回顶部
首页 > 资讯 > 数据库 >sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法
  • 892
分享到

sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法

2023-06-02 17:06:28 892人浏览 安东尼
摘要

这篇文章主要介绍“sqoop1.4.7环境搭建及mysql数据导入导出到Hive的方法”,在日常操作中,相信很多人在sqoop1.4.7环境搭建及Mysql数据导入导出到hive的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作

这篇文章主要介绍“sqoop1.4.7环境搭建及mysql数据导入导出到Hive的方法”,在日常操作中,相信很多人在sqoop1.4.7环境搭建及Mysql数据导入导出到hive的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

sqoop文档:Http://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html#_prerequisites

在hive创建表和导入数据时必须添加分隔符,否则数据导出时会报错

下载安装

[root@node1 ~]# wget http://mirrors.shu.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

[root@node1 ~]# tar xvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/

[root@node1 ~]# cd /opt/

[root@node1 opt]# mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop-1.4.7

[root@node1 opt]# vim /etc/profile

export SQOOP_HOME=/opt/sqoop-1.4.7

export HADOOP_HOME=/opt/hadoop-2.8.5

export HADOOP_CLASSPATH=/opt/hive-2.3.4/lib/*

export HCAT_HOME=/opt/sqoop-1.4.7/testdata/hcatalog

export ACCUMULO_HOME=/opt/sqoop-1.4.7/src/java/org/apache/sqoop/accumulo

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$SQOOP_HOME/bin

[root@node1 opt]# source  /etc/profile

[root@node1 opt]# sqoop help             --帮助信息

[root@node1 opt]# sqoop import --help    --参数帮助信息

修改yarn配置文件

[root@node1 ~]# vim /opt/hadoop-2.8.5/etc/hadoop/yarn-site.xml 

    <property>        <name>yarn.nodemanager.resource.memory-mb</name>        <value>2048</value>    </property>    <property>        <name>yarn.nodemanager.resource.cpu-vcores</name>        <value>2</value>    </property>

[root@node1 ~]# scp /opt/hadoop-2.8.5/etc/hadoop/yarn-site.xml node2:/opt/hadoop-2.8.5/etc/hadoop/     --将配置文件复制到各节点

yarn-site.xml                   100% 1414   804.3KB/s   00:00    

[root@node1 ~]# scp /opt/hive-2.3.4/conf/hive-site.xml /opt/sqoop-1.4.7/conf/     --hive的配置文件也要放在sqoop下面,因为sqoop要调用hive

[root@node1 ~]# stop-all.sh

[root@node1 ~]# start-all.sh

将mysql数据导入到hdfs

参数解释:

--append          追加数据

--as-textfile     导入后形成文本文件

--columns         只导入哪些字段

--delete-target-dir    --如果导入的目录存在先删除再导入

--fetch-size <n>       --每次读多少数据

-m                     --起多少任务

-e                      --查询语句(select)

--table <table-name>   --表名

--target-dir dir              --指定HDFS目录

--warehouse-dir dir      --导入的表将在此目录之下(表名与目录名一至)

--where where clause --where条件

-z                        --数据压缩

--direct               --绕过mysql数据库,直接导入(忧化参数)

[root@node1 ~]# sqoop import --connect jdbc:mysql://172.16.9.100/hive --username hive --passWord system --table TBL_PRIVS  --target-dir /user/sqoop --direct -m 1 --fields-terminated-by '\t'

[root@node1 ~]# hdfs dfs -ls /user/sqoop       --查看导入的目录

Found 2 items

-rw-r--r--   3 root supergroup          0 2019-03-19 12:43 /user/sqoop/_SUCCESS

-rw-r--r--   3 root supergroup        176 2019-03-19 12:43 /user/sqoop/part-m-00000

[root@node1 ~]# hdfs dfs -cat /user/sqoop/part-m-00000       --查看导入的数据

6,1552878877,1,root,USER,root,USER,INSERT,6

7,1552878877,1,root,USER,root,USER,SELECT,6

8,1552878877,1,root,USER,root,USER,UPDATE,6

9,1552878877,1,root,USER,root,USER,DELETE,6

[root@node1 ~]# 

将mysql数据导入到hive中

参数详解:

--hive-home dir           指定hive目录

--hive-import               导入到hive

--hive-database           导入指定的库

--hive-overwrite           覆盖到hive

--create-hive-table      在hive中创建表

--hive-table table-name         指定hive表名

--hive-partition-value  v         hive分区

[root@node1 ~]# sqoop import --connect jdbc:mysql://172.16.9.100/hive --username hive --password system --table TBL_PRIVS --target-dir /user/tmp --hive-import --hive-table tt -m 1 --create-hive-table --delete-target-dir --direct --fields-terminated-by '\t'

[root@node1 conf]# hive

Logging initialized using configuration in jar:file:/opt/hive-2.3.4/lib/hive-common-2.3.4.jar!/hive-log4j2.properties Async: true

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

hive> show tables;

OK

tt

Time taken: 11.464 seconds, Fetched: 1 row(s)

hive> select * from tt;

OK

615528788771rootUSERrootUSERINSERT6

715528788771rootUSERrootUSERSELECT6

815528788771rootUSERrootUSERUPDATE6

915528788771rootUSERrootUSERDELETE6

Time taken: 3.978 seconds, Fetched: 4 row(s)

hive> 

将mysql数据导入到hive指定的库中

[root@node1 ~]# sqoop import --connect jdbc:mysql://172.16.9.100/hive --username hive --password system --table TABLE_PARAMS --hive-import --hive-table tt1 -m 1 --create-hive-table --hive-database tong --direct --fields-terminated-by '\t'

[root@node1 conf]# hive

Logging initialized using configuration in jar:file:/opt/hive-2.3.4/lib/hive-common-2.3.4.jar!/hive-log4j2.properties Async: true

Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

hive> use tong;

OK

Time taken: 14.34 seconds

hive> show tables;

OK

tt1

Time taken: 0.374 seconds, Fetched: 1 row(s)

hive> select * from tt1;

OK

6numFiles1

6numRows0

6rawDataSize0

6totalSize8

6transient_lastDdlTime1552878901

11commentImported by sqoop on 2019/03/19 15:36:21

11numFiles1

11numRows0

11rawDataSize0

11totalSize176

11transient_lastDdlTime1552981011

16commentImported by sqoop on 2019/03/19 16:04:22

16numFiles1

16numRows0

16rawDataSize0

16totalSize239

16transient_lastDdlTime1552982688

Time taken: 3.004 seconds, Fetched: 17 row(s)

hive> 

将HDFS的数据导入到mysql中

[root@node1 ~]# hdfs dfs -cat /user/tmp/part-m-00000

12

34

56

[root@node1 ~]# sqoop export --connect jdbc:mysql://172.16.9.100/tong --username tong --password system --export-dir /user/tmp/part-m-00000 --table t1 --direct --fields-terminated-by '\t'

[root@node1 ~]# mysql -u root -psystem

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MySQL connection id is 1006876

Server version: 5.6.35 MySQL CommUnity Server (GPL)

Copyright (c) 2000, 2017, oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> use tong

MySQL [tong]> select * from t1;

+------+------+

| a    | b    |

+------+------+

|    3 |    4 |

|    5 |    6 |

|    1 |    2 |

+------+------+

3 rows in set (0.00 sec)

MySQL [tong]> 

报错信息:(卡在Running job不动,不向下执行)

19/03/19 11:20:09 INFO mapReduce.JobSubmitter: Submitting tokens for job: job_1552965562217_0001

19/03/19 11:20:10 INFO impl.YarnClientImpl: Submitted application application_1552965562217_0001

19/03/19 11:20:10 INFO mapreduce.Job: The url to track the job: http://node1:8088/proxy/application_1552965562217_0001/

19/03/19 11:20:10 INFO mapreduce.Job: Running job: job_1552965562217_0001

解决方法:

[root@node1 ~]# vim /opt/hadoop-2.8.5/etc/hadoop/yarn-site.xml   --限制内存,cpu的资源,并将配置文件同步到其它node,重启hadoop服务

    <property>        <name>yarn.nodemanager.resource.memory-mb</name>        <value>2048</value>    </property>    <property>        <name>yarn.nodemanager.resource.cpu-vcores</name>        <value>2</value>    </property>

[root@node1 ~]# 

报错信息:(mysql导入到hive中)

19/03/19 14:34:25 INFO hive.HiveImport: Loading uploaded data into Hive

19/03/19 14:34:25 ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly.

19/03/19 14:34:25 ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf

at org.apache.sqoop.hive.HiveConfig.getHiveConf(HiveConfig.java:50)

at org.apache.sqoop.hive.HiveImport.getHiveArgs(HiveImport.java:392)

at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:379)

解决方法:

[root@node1 ~]# vim /etc/profile    --添加lib变量

export HADOOP_CLASSPATH=/opt/hive-2.3.4/lib/*

[root@node1 ~]# source /etc/profile

报错信息:(是因为sqoop和hive的jackson包冲突)

19/03/19 15:32:11 INFO ql.Driver: Concurrency mode is disabled, not creating a lock manager

19/03/19 15:32:11 INFO ql.Driver: Executing command(queryId=root_20190319153153_63feDDD9-a2c8-4217-97d4-23Dd9840a54b): CREATE TABLE `tt` ( `TBL_GRANT_ID` BIGINT, `CREATE_TIME` INT, 

`GRANT_OPTION` INT, `GRANTOR` STRING, `GRANTOR_TYPE` STRING, `PRINCIPAL_NAME` STRING, `PRINCIPAL_TYPE` STRING, `TBL_PRIV` STRING, `TBL_ID` BIGINT) COMMENT 'Imported by sqoop on 2019/03/19 

49' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LINES TERMINATED BY '\012' STORED AS TEXTFILE

19/03/19 15:32:11 INFO ql.Driver: Starting task [Stage-0:DDL] in serial mode

19/03/19 15:32:12 ERROR exec.DDLTask: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.readerFor(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/ObjectReader;

at org.apache.hadoop.hive.common.StatsSetupConst$ColumnStatsAccurate.<clinit>(StatsSetupConst.java:165)

at org.apache.hadoop.hive.common.StatsSetupConst.parseStatsAcc(StatsSetupConst.java:297)

at org.apache.hadoop.hive.common.StatsSetupConst.setBasicStatsState(StatsSetupConst.java:230)

at org.apache.hadoop.hive.common.StatsSetupConst.setBasicStatsStateForCreateTable(StatsSetupConst.java:292)

解决方法:

[root@node1 ~]# mv /opt/sqoop-1.4.7/lib/jackson-* /home/

[root@node1 ~]# cp -a /opt/hive-2.3.4/lib/jackson-* /opt/sqoop-1.4.7/lib/  

报错信息:

19/03/19 18:38:40 INFO metastore.HiveMetaStore: 0: Done cleaning up thread local RawStore

19/03/19 18:38:40 INFO HiveMetaStore.audit: ugi=rootip=unknown-ip-addrcmd=Done cleaning up thread local RawStore

19/03/19 18:38:40 ERROR tool.ImportTool: Import failed: java.io.IOException: Hive CliDriver exited with status=1

at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:355)

at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:241)

at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:537)

at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)

解决方法:

create table t1(a int,b int) row format delimited fields terminated by '\t';      --创建表时必须加分隔符

sqoop import --connect jdbc:mysql://172.16.9.100/hive --username hive --password system --table TBL_PRIVS  --target-dir /user/sqoop --direct -m 1 --fields-terminated-by '\t'

到此,关于“sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法

本文链接: https://lsjlt.com/news/230666.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法
    这篇文章主要介绍“sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法”,在日常操作中,相信很多人在sqoop1.4.7环境搭建及mysql数据导入导出到hive的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-02
  • MySQL数据库导入导出数据的方法
    这篇文章主要介绍“MySQL数据库导入导出数据的方法”,在日常操作中,相信很多人在MySQL数据库导入导出数据的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL数...
    99+
    2024-04-02
  • 导入和导出MYSQL数据库的方法
    本文主要给大家简单讲讲导入和导出MYSQL数据库的方法,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望导入和导出MYSQL数据库的方法这篇文章可以给大家带来一...
    99+
    2024-04-02
  • MySQL表数据的导入与导出方法
    本篇内容介绍了“MySQL表数据的导入与导出方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! LOAD...
    99+
    2024-04-02
  • Mysql导出导入数据的方法介绍
    这篇文章主要介绍“Mysql导出导入数据的方法介绍”,在日常操作中,相信很多人在Mysql导出导入数据的方法介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysql导出导...
    99+
    2024-04-02
  • Hive数据导出的方法是什么
    这篇文章主要介绍“Hive数据导出的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Hive数据导出的方法是什么”文章能帮助大家解决问题。一、数据导出是什么hive是一个依赖Hadoop集群...
    99+
    2023-07-06
  • mysql数据库导入导出的用法
    这篇文章主要讲解了“mysql数据库导入导出的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql数据库导入导出的用法”吧!mysql 数据库导入导...
    99+
    2024-04-02
  • [sqoop]将hive查询后的数据导入到MySQL
    一、知识点 export:将Hive的表导入到mysql叫导出 搜了很多,发现sqoop在hive导出到mysql时 1)不支持where参数对数据进行过滤。 2)不支持指定hive表的方式导出,只能指定Hive目录进行导出。 二...
    99+
    2023-09-24
    hive sqoop mysql
  • MySQL中数据导入和导出的方法详解
    MySQL中数据导入和导出的方法详解导入和导出数据是数据库管理中常用的操作,在MySQL中也有多种方法可以实现。本文将详细介绍几种常见的方法,并提供相应的代码示例。一、导出数据使用SELECT ... INTO OUTFILE...
    99+
    2023-10-22
    数据库 (Database) 导入 (Import) 导出 (Export)
  • mysql导入导出数据库以及函数的过程
    本篇内容主要讲解“mysql导入导出数据库以及函数的过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql导入导出数据库以及函数的过程”吧!常用导出数据命...
    99+
    2024-04-02
  • PostgreSQL数据库导入和导出的方法
    今天小编给大家分享一下PostgreSQL数据库导入和导出的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Postgre...
    99+
    2023-06-27
  • mysql导出数据的方法
    mysql导出数据的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!简单的介绍一下命令行进入mysql的方法:C:\&g...
    99+
    2024-04-02
  • mysql数据库表导出到excel的方法
    mysql数据库表导出到excel的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql数据库表导出到excel的...
    99+
    2024-04-02
  • Redis数据导入导出以及数据迁移的方法有哪些
    这篇文章主要介绍了Redis数据导入导出以及数据迁移的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、aof 导入方式。因为这种...
    99+
    2024-04-02
  • MySQL数据导入和导出的方法与工具介绍
    这篇文章主要介绍“MySQL数据导入和导出的方法与工具介绍”,在日常操作中,相信很多人在MySQL数据导入和导出的方法与工具介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • MySQL导入数据的方法
    这篇文章主要介绍了MySQL导入数据的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。1、mysql 命令导入使用 mysql 命令导入语法格...
    99+
    2024-04-02
  • plsql数据导出导入的方法是什么
    在PL/SQL中,可以使用以下方法导出和导入数据: 使用Oracle Data Pump工具进行导出和导入数据。Oracle D...
    99+
    2024-04-09
    plsql
  • MySQL数据库结构和数据的导出和导入方法介绍
    这篇文章主要讲解了“MySQL数据库结构和数据的导出和导入方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库结构和数据的导出和导入方法介...
    99+
    2024-04-02
  • Mysql数据库的导入导出方式有哪些
    本文小编为大家详细介绍“Mysql数据库的导入导出方式有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mysql数据库的导入导出方式有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。情况一本地导出,远程导...
    99+
    2023-07-05
  • 将mysql数据导出的方法
    小编给大家分享一下将mysql数据导出的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL 是最流行的关系型数据库管理...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作