好久没有更新自己技术博客,现在开始工作了,把自己遇到的问题写到这里边来

主要把自己的问题写出来,分享给大家

sqoop 导入数据时候 有时候会遇到mysql 中有sql 中的关键字 这时候如果直接导出到hive 中会出现错误 例如下面的例子

这时候会出现错误 可以使用--query 来解决问题

例如 :

sqoop-import -D mapreduce.map.memory.mb=256 -D mapreduce.map.java.opts=-Xmx128m  --connect ''--username '' --password ''   --hive-import --hive-overwrite  --hive-database databases_name --hive-table table_name --query 'select doctor_id,uid as  uid1  from tb_doctor WHERE $CONDITIONS ' --where "1=1" --num-mappers 1 --split-by ''  --driver com.mysql.jdbc.Driver --direct  --target-dir '' -- --skip-tz-utc

当导入到mysql 中数据的时候 如果遇到主键自增的时候这个时候可以使用  --columns 加上列名

例如  --columns "type,name,user_id" 等

当sqoop 从mysql 中导入到hive 中数据库中  有时候mysql 中数据库比较大这个会出现oom 的现象 这个时候可以调节参数  例如第一个列子中这个 -D 用来指定的内存的参数  一般来调节三个参数 第一个是  -D mapreduce.map.memory.mb  用来调节整个maptask 的参数 ,-D mapreduce.map.java.opts=-Xmx128m 整个是用来调节java 中堆的内存大小    -Dmapreduce.task.io.sort.mb=64 用来制定环形缓冲区的大小 一般调节这三个参数 如果内存还不够 的话 这时候要调节yarn 中对于每一个容器的内存大小,然后相应调大maptask 的内存大小,和堆的大小和环形缓冲区的大小  大概的关系就是yarn 制定容器的大小 >maptask 制定的内存>堆内存的大小

这是为什么呢  我们知道sqoop 底层实际上 就是jdbc 和mapreduce 的封装 他只执行map的过程  所以在制定sqoop 的内存的参数的时候实际就是配置mapredcue 的参数  。所以在调节sqoop 的时候实际就是调节mapreduce 的参数。

当数据库表中数据比较大的时候这个时候会导致导出跑出异常 这个时候可以使用--query  制定导入一部分 然后到某一个分区 这个时候就可以解决这个问题 如下例子

sqoop-import -D mapreduce.map.memory.mb=6000 -D mapreduce.map.java.opts=-Xmx5120m -Dmapreduce.task.io.sort.mb=2400 --connect connection_name --username username --password password --hive-import --hive-overwrite --hive-database database_name  --hive-table table_name --query 'select uid,username from table_name  where type=8 and 1=1 and $CONDITIONS' --split-by tb_name .uid --hive-partition-key typedata --hive-partition-value 8 --num-mappers 4 --driver com.mysql.jdbc.Driver --direct --target-dir /user/hive/tb_msg_0 -- --skip-tz-utc

用--hive-partition-key  和--hive-partition-value 来制定分区    就可以减少导入的数据量 这个时候不至于导致内存不足。

sqoop 使用笔记的更多相关文章

  1. Flume+Sqoop+Azkaban笔记

    大纲(辅助系统) 离线辅助系统 数据接入 Flume介绍 Flume组件 Flume实战案例 任务调度 调度器基础 市面上调度工具 Oozie的使用 Oozie的流程定义详解 数据导出 sqoop基础 ...

  2. 【大数据】Sqoop学习笔记

    第1章 Sqoop简介 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MyS ...

  3. sqoop学习笔记

    #################################################################################################### ...

  4. Sqoop使用笔记(转载)

    Sqoop是Apache顶级项目,主要用来在Hadoop和关系数据库中传递数据.通过sqoop,可以方便的将数据从关系数据库导入到HDFS,或将数据从HDFS导出到关系数据库. 关于Sqoop 官网S ...

  5. Sqoop学习笔记_Sqoop的基本使用二(sqoop的import与export)

    Sqoop抽取从mysql抽取到hive sqoop抽取到mysql一样有两种方式一种是用command line的方式,一种是用sqoop opt文件调用的方式.(由于两种sqoop一已经记录了,现 ...

  6. Sqoop学习笔记_Sqoop的基本使用一

    Sqoop   关系DB与Hive/HDFS/HBase导入导出的Mapreduce框架. http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh ...

  7. 大数据之sqoopCDH 备份

    Sqoop课程笔记 一.概述 1.什么是sqoop? Hadoop的优势在于对数据的存储和处理,相比以前传统的数据库,在处理较较多的数据时,传统数据行业通过提升单机性能以提高处理性能,而且性价比随着性 ...

  8. Hadoop学习笔记—18.Sqoop框架学习

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  9. sqoop笔记

    adoop学习笔记—18.Sqoop框架学习   一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数 ...

随机推荐

  1. Python实现Excel转换工具小结

    经历过的打表工具从c++.C#,再到Python,算下来还是Python方便些.一天即可上手开发,非常适合快速迭代中的各种小工具开发. Python开源的第三方库很多,涉及excel方面的也有好几个x ...

  2. ABAP性能和优化

    哪些工具可以用于性能优化? ST05-性能追踪.包含SQL追踪加RFC,队列和缓存追踪.SQL追踪主要用于测量程序中select语句的性能. SE30-运行时分析.用于测量应用的性能. SAT是过时的 ...

  3. oracle使用with as提高查询效率

    经常在开发过程中会用到视图或组合查询的情况,但由于涉及表数据经常达到千万级别的笛卡尔积,而且一段查询时会反复调用,但结果输出往往不需要那么多,可以使用with将过滤或处理后的结果先缓存到临时表(此处原 ...

  4. go-simplejson文档学习

    https://godoc.org/github.com/bitly/go-simplejson 导入方式: import "github.com/bitly/go-simplejson&q ...

  5. intellij idea 修改背景保护色&&修改字体&&快捷键大全(转)

    文章转自http://blog.csdn.net/hpf911/article/details/16888797 近Idea比较流行,Eclipse因为maven的问题,运行起来非常慢,各种提示也不够 ...

  6. [转]QGis2.9在windows下的编译以及二次开发包下载

    今天心血来潮,将QGis在github上的代码更新后,又编译了一下.留意到源代码包里面的INSTALL文件有更新,于是本次编译完全基于官方的编译说明.编译过程非常顺利,除了在CMake的第一次conf ...

  7. 2018-2019-2 20175105王鑫浩 实验二《Java面向对象程序设计》实验报告

    一.实验步骤 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装,继承,多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 二.实验内容 (一).单元测试 1 ...

  8. flask 路由和视图

    路由设置的俩种方式 @app.route('/xxx') def index(): return 'index' ------------------------------------------ ...

  9. AI 前馈神经网络

    前馈神经网络(Feedforward Neural Network,简称FNN),也叫多层感知机(Multilayer Perceptron,简称MLP).FNN的目标是通过学习参数θ,得到最佳的函数 ...

  10. Linux命令——head/tail

    一.head head主要是用来显示档案的开头至标准输出中,默认打印相应文件的开头10 行. 1)命令格式 head [参数] [文件] 2)常用参数 -q     隐藏文件名-v     显示文件名 ...