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

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

1.下载安装

[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    --参数帮助信息

2.修改yarn配置文件

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

yarn.nodemanager.resource.memory-mb

2048

yarn.nodemanager.resource.cpu-vcores

2

[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

3.将mysql数据导入到HDFS

参数解释:

--append          追加数据

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

--columns         只导入哪些字段

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

--fetch-size        --每次读多少数据

-m                     --起多少任务

-e                      --查询语句(select)

--table    --表名

--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 ~]#

4.将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>

5.将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>

6.将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服务

yarn.nodemanager.resource.memory-mb

2048

yarn.nodemanager.resource.cpu-vcores

2

[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

15:31: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.(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'

mysql数据首次导入hive_sqoop1.4.7环境搭建及mysql数据导入导出到hive相关推荐

  1. Hadoop+hive+flask+echarts大数据可视化项目之hive环境搭建与系统数据的分析思路

    Hadoop+hive+flask+echarts大数据可视化项目(四) --------------hive环境搭建与系统数据的分析思路---------------- 关注过Hadoop+hive ...

  2. paip.最好的脚本语言node js 环境搭建连接mysql

    paip.最好的脚本语言node js 环境搭建连接mysql #====下载node...走十一个exe..容易的.. 1 #0----Hello world   .js 2 #---------模 ...

  3. 淘淘商城项目mysql服务器_SpringMVC+Spring+Mybatis+Mysql+Maven+Svn[ 淘淘商城项目环境搭建 ]...

    背景:淘淘商城项目的环境搭建 说明:采用SpringMVC+Spring+Mybatis+Mysql+Maven+Svn结构搭建,在开发之中可以参考其结构和搭建步骤去搭建实际的工程项目 工程结构简图: ...

  4. 大数据原生集群本地测试环境搭建六

    本篇软件版本 Kylin2.5.1!!!!强烈建议不要和我一样原因下面解释 Datax MongDB_linux-x86_64-4.0.10 clickhouse20.8.3.18-1 集群最后完善 ...

  5. mysql slave 详细配置_进击的MysqlSlave环境搭建及配置

    一)环境拓扑今天讨论的是mysql集群这一块,资源如下所示:二)Mysql安装配置这里不一一赘述,可以选择源代码编译安装,也可以参考我之前的一篇博文"懒人"速成 一)环境拓扑 二) ...

  6. 搭建mysql注入_常见的sql注入环境搭建

    常见的sql注入环境搭建 By : Mirror王宇阳 Time:2020-01-06 PHP+MySQL摘要 $conn = new mysqli('数据库服务器','username','pass ...

  7. 大数据原生集群本地测试环境搭建三

    本篇安装软件 Hive1.2 hue-3.9.0-cdh5.14.0 Zookeeper3.4 Kafka2.11-0.10 redis3.0.0 elasticsearch-6.6.2 elasti ...

  8. DataAnalysis:基本概念,环境介绍,环境搭建,大数据问题

    1,概述 1.1,数据的性质 所谓数据就是描述事物的符号,是对客观事物的性质.状态和相互关系等进行记载的物理符号或者是这些物理符号的组合.在计算机系统中,各种文字.字母.数字符号的组合,图形.图像.视 ...

  9. Angular-cli环境搭建,组件的数据渲染,父子组件传值

    Angular cli-1 博主wx: -GuanEr-,加博主进前端交流群 Angular 脚手架的脚本是 TypeScript 环境搭建 使用 node.js 配置 Angular-cli 的环境 ...

最新文章

  1. MySQL和SQL Server数据库基本语句总结(二)
  2. 【载誉】致远互联荣获“2017最佳协同管理解决方案”殊荣
  3. 计算机视觉未有深度学习之前
  4. 光栅图形学——直线段的扫描转换算法
  5. SRCNN:基于深度学习的超分辨率开山之作回顾
  6. 会员数据化运营应用场景与分析模型
  7. 单模光纤和多模光纤的区别,以及作用
  8. 桌面远程控制计算机名字和,Win7系统远程控制其他计算机桌面教程
  9. 解密QQ号(stl库)
  10. [51单片机]按键部分(软件消抖)
  11. springboot 集成beetl
  12. python将两张图片拼接成一张图_Python将两张图片拼接到一起 - 小众知识
  13. 分析如何为便携式电子设备挑选安全可靠的场效应晶体管?
  14. postman中如何设置全局变量?
  15. 甜味芯片打印法了解一下:科学家用糖实现微电路曲面打印,连针尖发丝都可以 | Science...
  16. 显卡显存测试u盘 mats 百度网盘_网盘数据不安全?还不如固态U盘来得踏实,而且传输速度还很快...
  17. cad面积计算机,CAD中如何计算面积?
  18. 同一个Maven项目移机出错解决办法
  19. 视图类成员函数GetDocument()和OnDraw()
  20. mondrian mysql 实例_mondrian 导入demo数据到mysql

热门文章

  1. madagascar 软件安装方法
  2. sizeof()与strlen()
  3. copyof java_死磕 java集合之CopyOnWriteArrayList源码分析
  4. 科大星云诗社动态20210813
  5. 【完结篇】专栏 | 基于 Jupyter 的特征工程手册:特征降维
  6. C 函数传递指针参数注意事项
  7. markdown编辑模式添加除水印图片方法
  8. python基础——迭代器与生成器
  9. JPA时间注解(转)
  10. sendmsg recvmsg函数