文章转载自:http://www.zihou.me/html/2014/01/28/9114.html
Sqoop中文手册
子猴:Sqoop在我们的实际工作中有一些应用,为了对Sqoop的使用有个更全面的了解,于是我花了一些时间将Sqoop的使用整理成了一份中文手册,我自认还是非常全面的,覆盖到了Sqoop所有的方面。虽然对每一个用法,我都是尽可能地先经过测试然后再得出结论,但可能难免会有谬误,不过总的来说希望能对使用Sqoop的朋友有点帮助吧。
1. 概述
本文档主要对SQOOP的使用进行了说明,参考内容主要来自于Cloudera SQOOP的官方文档。为了用中文更清楚明白地描述各参数的使用含义,本文档几乎所有参数使用说明都经过了我的实际验证而得到。
2. codegen
将关系数据库表映射为一个Java文件、Java class类、以及相关的jar包,作用主要是两方面:
1、 将数据库表映射为一个Java文件,在该Java文件中对应有表的各个字段。
2、 生成的Jar和class文件在metastore功能使用时会用到。
基础语句:
sqoop codegen –connect jdbc:MySQL://localhost:3306/Hive –username root –password 123456 –table TBLS2
参数
说明
–bindir
指定生成的java文件、编译成的class文件及将生成文件打包为JAR的JAR包文件输出路径
–class-name
设定生成的Java文件指定的名称
–outdir
生成的java文件存放路径
–package-name
包名,如cn.cnnic,则会生成cn和cnnic两级目录,生成的文件(如java文件)就存放在cnnic目录里
–input-null-non-string
在生成的java文件中,可以将null字符串设为想要设定的值(比如空字符串’’)
–input-null-string
同上,设定时,最好与上面的属性一起设置,且设置同样的值(比如空字符串等等)。
–map-column-java
数据库字段在生成的java文件中会映射为各种属性,且默认的数据类型与数据库类型保持对应,比如数据库中某字段的类型为bigint,则在Java文件中的数据类型为long型,通过这个属性,可以改变数据库字段在java中映射的数据类型,格式如:–map-column-java DB_ID=String,id=Integer
–null-non-string
在生成的java文件中,比如TBL_ID==null?”null”:””,通过这个属性设置可以将null字符串设置为其它值如ddd,TBL_ID==null?”ddd”:””
–null-string
同上,使用的时候最好和上面的属性一起用,且设置为相同的值
–table
对应关系数据库的表名,生成的java文件中的各属性与该表的各字段一一对应。
3. create-hive-table
生成与关系数据库表的表结构对应的HIVE表
基础语句:
sqoop create-hive-table –connect jdbc:mysql://localhost:3306/hive -username root -password 123456 –table TBLS –hive-table h_tbls2
参数
说明
–hive-home
Hive的安装目录,可以通过该参数覆盖掉默认的hive目录
–hive-overwrite
覆盖掉在hive表中已经存在的数据
–create-hive-table
默认是false,如果目标表已经存在了,那么创建任务会失败
–hive-table
后面接要创建的hive表
–table
指定关系数据库表名
4. eval
可以快速地使用SQL语句对关系数据库进行操作,这可以使得在使用import这种工具进行数据导入的时候,可以预先了解相关的SQL语句是否正确,并能将结果显示在控制台。
查询示例 :
sqoop eval –connect jdbc:mysql://localhost:3306/hive -username root -password 123456 -query “SELECT * FROM tbls LIMIT 10″
数据插入示例 :
sqoop eval –connect jdbc:mysql://localhost:3306/hive -username root -password 123456 -e “INSERT INTO TBLS2
VALUES(100,1375170308,1,0,’Hadoop’,0,1,’guest’,’MANAGED_TABLE’,’abc’,’ddd’)”
-e、-query这两个参数经过测试,比如后面分别接查询和插入SQL语句,皆可运行无误,如上。
5. export
从hdfs中导数据到关系数据库中
sqoop export –connect jdbc:mysql://localhost:3306/hive –username root –password
123456 –table TBLS2 –export-dir sqoop/test
参数
说明
–direct
快速模式,利用了数据库的导入工具,如mysql的mysqlimport,可以比jdbc连接的方式更为高效的将数据导入到关系数据库中。
–export-dir
存放数据的HDFS的源目录
-m,–num-mappers
启动N个map来并行导入数据,默认是4个,最好不要将数字设置为高于集群的最大Map数
–table
要导入到的关系数据库表
–update-key
后面接条件列名,通过该参数,可以将关系数据库中已经存在的数据进行更新操作,类似于关系数据库中的update操作
–update-mode
更新模式,有两个值updateonly和默认的allowinsert,该参数只能是在关系数据表里不存在要导入的记录时才能使用,比如要导入的hdfs中有一条id=1的记录,如果在表里已经有一条记录id=2,那么更新会失败。
–input-null-string
可选参数,如果没有指定,则字符串null将被使用
–input-null-non-string
可选参数,如果没有指定,则字符串null将被使用
–staging-table
该参数是用来保证在数据导入关系数据库表的过程中事务安全性的,因为在导入的过程中可能会有多个事务,那么一个事务失败会影响到其它事务,比如导入的数据会出现错误或出现重复的记录等等情况,那么通过该参数可以避免这种情况。创建一个与导入目标表同样的数据结构,保留该表为空在运行数据导入前,所有事务会将结果先存放在该表中,然后最后由该表通过一次事务将结果写入到目标表中。
–clear-staging-table
如果该staging-table非空,则通过该参数可以在运行导入前清除staging-table里的数据。
–batch
该模式用于执行基本语句(暂时还不太清楚含义)
6. import
将数据库表的数据导入到hive中,如果在hive中没有对应的表,则自动生成与数据库表名相同的表。
sqoop import –connect jdbc:mysql://localhost:3306/hive –username root –password
123456 –table user –split-by id –hive-import
–split-by指定数据库表中的主键字段名,在这里为id。
参数
说明
–append
将数据追加到hdfs中已经存在的dataset中。使用该参数,sqoop将把数据先导入到一个临时目录中,然后重新给文件命名到一个正式的目录中,以避免和该目录中已存在的文件重名。
–as-avrodatafile
将数据导入到一个Avro数据文件中
–as-sequencefile
将数据导入到一个sequence文件中
–as-textfile
将数据导入到一个普通文本文件中,生成该文本文件后,可以在hive中通过sql语句查询出结果。
–boundary-query
边界查询,也就是在导入前先通过SQL查询得到一个结果集,然后导入的数据就是该结果集内的数据,格式如:–boundary-query ‘select id,creationdate from person where id = 3’,表示导入的数据为id=3的记录,或者select min(), max() from ,注意查询的字段中不能有数据类型为字符串的字段,否则会报错:java.sql.SQLException: Invalid value for
getLong()
目前问题原因还未知
–columns
指定要导入的字段值,格式如:–columns id,username
–direct
直接导入模式,使用的是关系数据库自带的导入导出工具。官网上是说这样导入会更快
–direct-split-size
在使用上面direct直接导入的基础上,对导入的流按字节数分块,特别是使用直连模式从PostgreSQL导入数据的时候,可以将一个到达设定大小的文件分为几个独立的文件。
–inline-lob-limit
设定大对象数据类型的最大值
-m,–num-mappers
启动N个map来并行导入数据,默认是4个,最好不要将数字设置为高于集群的节点数
–query,-e
从查询结果中导入数据,该参数使用时必须指定–target-dir、–hive-table,在查询语句中一定要有where条件且在where条件中需要包含$CONDITIONS,示例:–query ‘select * from person where $CONDITIONS ‘ –target-dir
/user/hive/warehouse/person –hive-table person
–split-by
表的列名,用来切分工作单元,一般后面跟主键ID
–table
关系数据库表名,数据从该表中获取
–target-dir
指定hdfs路径
–warehouse-dir
与–target-dir不能同时使用,指定数据导入的存放目录,适用于hdfs导入,不适合导入hive目录
–where
从关系数据库导入数据时的查询条件,示例:–where ‘id = 2′
-z,–compress
压缩参数,默认情况下数据是没被压缩的,通过该参数可以使用gzip压缩算法对数据进行压缩,适用于SequenceFile, text文本文件, 和Avro文件
–compression-codec
Hadoop压缩编码,默认是gzip
–null-string
可选参数,如果没有指定,则字符串null将被使用
–null-non-string
可选参数,如果没有指定,则字符串null将被使用
增量导入
参数
说明
–check-column (col)
用来作为判断的列名,如id
–incremental (mode)
append:追加,比如对大于last-value指定的值之后的记录进行追加导入。lastmodified:最后的修改时间,追加last-value指定的日期之后的记录
–last-value (value)
指定自从上次导入后列的最大值(大于该指定的值),也可以自己设定某一值
对incremental参数,如果是以日期作为追加导入的依据,则使用lastmodified,否则就使用append值。
7. import-all-tables
将数据库里的所有表导入到HDFS中,每个表在hdfs中都对应一个独立的目录。
sqoop import-all-tables –connect jdbc:mysql://localhost:3306/test
sqoop import-all-tables –connect jdbc:mysql://localhost:3306/test –hive-import
参数
说明
–as-avrodatafile
同import参数
–as-sequencefile
同import参数
–as-textfile
同import参数
–direct
同import参数
–direct-split-size
同import参数
–inline-lob-limit
同import参数
-m,–num-mappers
同import参数
–warehouse-dir
同import参数
-z,–compress
同import参数
–compression-codec
同import参数
8. job
用来生成一个sqoop的任务,生成后,该任务并不执行,除非使用命令执行该任务。
sqoop job
参数
说明
–create
生成一个job,示例如:sqoop job –create myjob — import –connectjdbc:mysql://localhost:3306/test –table
person
–delete
删除一个jobsqoop job –delete myjob
–exec
执行一个jobsqoop job –exec myjob
–help
显示帮助说明
–list
显示所有的jobsqoop job –list
–meta-connect
用来连接metastore服务,示例如:–meta-connect jdbc:hsqldb:hsql://localhost:16000/sqoop
–show
显示一个job的各种参数sqoop job –show myjob
–verbose
打印命令运行时的详细信息
9. list-databases
打印出关系数据库所有的数据库名
sqoop list-databases –connect jdbc:mysql://localhost:3306/ -username root -password 123456
10. list-tables
打印出关系数据库某一数据库的所有表名
sqoop list-tables –connect jdbc:mysql://localhost:3306/zihou -username root -password 123456
11. merge
将HDFS中不同目录下面的数据合在一起,并存放在指定的目录中,示例如:
sqoop merge –new-data /test/p1/person –onto /test/p2/person –target-dir /test/merged –jar-file /opt/data/sqoop/person/Person.jar –class-name Person –merge-key id
其中,–class-name所指定的class名是对应于Person.jar中的Person类,而Person.jar是通过Codegen生成的
参数
说明
–new-data
Hdfs中存放数据的一个目录,该目录中的数据是希望在合并后能优先保留的,原则上一般是存放越新数据的目录就对应这个参数。
–onto
Hdfs中存放数据的一个目录,该目录中的数据是希望在合并后能被更新数据替换掉的,原则上一般是存放越旧数据的目录就对应这个参数。
–merge-key
合并键,一般是主键ID
–jar-file
合并时引入的jar包,该jar包是通过Codegen工具生成的jar包
–class-name
对应的表名或对象名,该class类是包含在jar包中的。
–target-dir
合并后的数据在HDFS里的存放目录
12. metastore
记录sqoop job的元数据信息,如果不启动metastore实例,则默认的元数据存储目录为:~/.sqoop,如果要更改存储目录,可以在配置文件sqoop-site.xml中进行更改。
metastore实例启动:sqoop metastore
参数
说明
–shutdown
关闭一个运行的metastore实例
13. version
显示sqoop版本信息
语句:sqoop version
14. help
打印sqoop帮助信息
语句:sqoop help
15. 公共参数
Hive参数
参数
说明
–hive-delims-replacement
用自定义的字符串替换掉数据中的\n, \r, and \01等字符
–hive-drop-import-delims
在导入数据到hive中时,去掉数据中\n,\r和\01这样的字符
–map-column-hive
生成hive表时,可以更改生成字段的数据类型,格式如:–map-column-hiveTBL_ID=String,LAST_ACCESS_TIME=string
–hive-partition-key
创建分区,后面直接跟分区名即可,创建完毕后,通过describe 表名可以看到分区名,默认为string型
–hive-partition-value
该值是在导入数据到hive中时,与–hive-partition-key设定的key对应的value值。
–hive-home
Hive的安装目录,可以通过该参数覆盖掉默认的hive目录
–hive-import
将数据从关系数据库中导入到hive表中
–hive-overwrite
覆盖掉在hive表中已经存在的数据
–create-hive-table
默认是false,如果目标表已经存在了,那么创建任务会失败
–hive-table
后面接要创建的hive表
–table
指定关系数据库表名
数据库连接参数
参数
说明
–connect
Jdcb连接url,示例如:–connect jdbc:mysql://localhost:3306/hive
–connection-manager
指定要使用的连接管理类
–driver
数据库驱动类
–hadoop-home
Hadoop根目录
–help
打印帮助信息
-P
从控制端读取密码
–password
Jdbc url中的数据库连接密码
–username
Jdbc url中的数据库连接用户名
–verbose
在控制台打印出详细信息
–connection-param-file
一个记录着数据库连接参数的文件
文件输出参数
用于import场景。
示例如:
sqoop import –connect jdbc:mysql://localhost:3306/test –username root –P –table person –split-by id –check-column id –incremental append –last-value 1 –enclosed-by ‘\”‘
–escaped-by \# –fields-terminated-by .
参数
说明
–enclosed-by
给字段值前后加上指定的字符,比如双引号,示例:–enclosed-by ‘\”‘,显示例子:”3″,”jimsss”,”[email protected] ”
–escaped-by
给双引号作转义处理,如字段值为”测试”,经过–escaped-by \\处理后,在hdfs中的显示值为:\”测试\”,对单引号无效
–fields-terminated-by
设定每个字段是以什么符号作为结束的,默认是逗号,也可以改为其它符号,如句号.,示例如:–fields-terminated-by.
–lines-terminated-by
设定每条记录行之间的分隔符,默认是换行,但也可以设定自己所需要的字符串,示例如:–lines-terminated-by ‘#’ 以#号分隔
–mysql-delimiters
Mysql默认的分隔符设置,字段之间以,隔开,行之间以换行\n隔开,默认转义符号是\,字段值以单引号’包含起来。
–optionally-enclosed-by
enclosed-by是强制给每个字段值前后都加上指定的符号,而–optionally-enclosed-by只是给带有双引号或单引号的字段值加上指定的符号,故叫可选的。示例如:–optionally-enclosed-by ‘$’
显示结果:
$”hehe”,测试$
文件输入参数
对数据格式的解析,用于export场景,与文件输出参数相对应。
示例如:
sqoop export –connect jdbc:mysql://localhost:3306/test –username root –password
123456 –table person2 –export-dir /user/hadoop/person –staging-table person3
–clear-staging-table –input-fields-terminated-by ‘,’
在hdfs中存在某一格式的数据,在将这样的数据导入到关系数据库中时,必须要按照该格式来解析出相应的字段值,比如在hdfs中有这样格式的数据:
3,jimsss,[email protected] ,1,2013-08-07 16:00:48.0,”hehe”,测试
上面的各字段是以逗号分隔的,那么在解析时,必须要以逗号来解析出各字段值,如:
–input-fields-terminated-by ‘,’
参数
说明
–input-enclosed-by
对字段值前后有指定的字符,比如双引号的值进行解析:–input-enclosed-by ‘\”‘,数据例子:”3″,”jimsss”,”[email protected] ”
–input-escaped-by
对含有转义双引号的字段值作转义处理,如字段值为\”测试\”,经过–input-escaped-by \\处理后,解析得到的值为:”测试”,对单引号无效。
–input-fields-terminated-by
以字段间的分隔符来解析得到各字段值,示例如:– input-fields-terminated-by,
–input-lines-terminated-by
以每条记录行之间的分隔符来解析得到字段值,示例如:–input-lines-terminated-by ‘#’ 以#号分隔
–input-optionally-enclosed-by
与–input-enclosed-by功能相似,与–input-enclosed-by的区别参见输出参数中对–optionally-enclosed-by的描述
你可能感兴趣的:(Sqoop中文手册)
大数据学习(67)- Flume、Sqoop、Kafka、DataX对比
viperrrrrrr
大数据 学习 flume kafka sqoop datax
大数据学习系列专栏:哲学语录:用力所能及,改变世界。如果觉得博主的文章还不错的话,请点赞+收藏⭐️+留言支持一下博主哦工具主要作用数据流向实时性数据源/目标应用场景Flume实时日志采集与传输从数据源到存储系统实时日志文件、网络流量等→HDFS、HBase、Kafka等日志收集、实时监控、实时分析Sqoop关系型数据库与Hadoop间数据同步关系型数据库→Hadoop生态系统(HDFS、Hive、
PostgreSQL的学习心得和知识总结(一百二十四)|深入理解PostgreSQL数据库开源扩展pgreplay的安装说明和使用场景
孤傲小二~阿沐
数据库 postgresql 开源
目录结构注:提前言明本文借鉴了以下博主、书籍或网站的内容,其列表如下:1、参考书籍:《PostgreSQL数据库内核分析》2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》3、PostgreSQL数据库仓库链接,点击前往4、日本著名PostgreSQL数据库专家铃木启修网站主页,点击前往5、参考书籍:《PostgreSQL中文手册》6、参考书籍:《PostgreSQL指南:内幕探索》,点击
SpringBoot集成Flink-CDC
whiteBrocade
spring flink mysql java-activemq kafka elasticsearch
FlinkCDCCDC相关介绍CDC是什么?CDC是ChangeDataCapture(变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到MQ以供其他服务进行订阅及消费CDC分类CDC主要分为基于查询和基于Binlog基于查询基于Binlog开源产品Sqoop、DataXCanal、Maxwell、Debe
JavaScript+CSS2+CSS3中文手册大全
远方之巅
本文还有配套的精品资源,点击获取简介:JavaScript是一种用于网页动态效果和交互功能的脚本语言,与HTML和CSS共同构建富互联网应用。CSS2和CSS3作为网页样式的语言,增强了网页设计的布局控制和用户体验。本手册集提供了这三种技术的详细指南,包括基本语法、函数、对象操作、DOM操作、事件处理、BOM、AJAX以及ES6的新特性,同时深入介绍了CSS2的盒模型、布局技巧和CSS3的媒体查询
jdbc连接数据库步骤oracle,jdbc连接oracle数据库的步骤
weixin_39726044
使用E-MapReduce集群sqoop组件同步云外Oracle数据库数据到集群hiveE-MapReduce集群sqoop组件可以同步数据库的数据到集群里,不同的数据库源网络配置有一些差异网络配置。最常用的场景是从rdsmysql同步数据,最近也有用户询问如何同步云外专有Oracle数据库数据到hive。云外专有数据库需要集群所有节点通过公网访问,要创建VPC网络,使用VPC网络...文章鸿初2
强大的ETL利器—DataFlow3.0
lixiang2114
数据分析 etl flume sqoop 数据库 数据仓库
产品开发背景DataFlow是基于应用数据流程的一套分布式ETL系统服务组件,其前身是LogCollector2.0日志系统框架,自LogCollector3.0版本开始正式更名为DataFlow3.0。目前常用的ETL工具Flume、LogStash、Kettle、Sqoop等也可以完成数据的采集、传输、转换和存储;但这些工具都不具备事务一致性。比如Flume工具仅能应用到通信质量无障碍的局域网
本地Oracle数据库复制数据到Apache Hive的Linux服务器集群的分步流程
weixin_30777913
数据库 大数据 hive
我们已经有安装ApacheHive的Linux服务器集群,它可以连接到一个OracleRDS数据库,需要在该Linux服务器上安装配置sqoop,然后将OracleRDS数据库中所有的表数据复制到Hive。为了将本地Oracle数据库中的所有表数据复制到ApacheHiveLinux服务器集群中,您可以遵循以下详细步骤:第一步:安装和配置Sqoop1.下载并安装Sqoop您可以从ApacheSqo
大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
m0_74823705
面试 学习路线 阿里巴巴 大数据 架构
点一下关注吧!!!非常感谢!!持续更新!!!Java篇开始了!目前开始更新MyBatis,一起深入浅出!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已
INA226中文手册自译 - 高低端电流检测IC,电流电压测量芯片
盛郁舸Ferris
INA226中文手册自译-高低端电流检测IC,电流电压测量芯片【下载地址】INA226中文手册自译-高低端电流检测IC电流电压测量芯片分享INA226是一款分流和电源监控器,具有I2C或SMBUS兼容接口。该器件能够监控分流压降和总线电源电压,并通过可编程校准值、转换时间和均值,结合内部乘法器,直接读取电流(安培)和功率(瓦特)。INA226适用于高端或低端电流检测,检测共模总线电压上的电流,其变
AngularJS中文手册前半部分学习
CV战士plus
angular.js angular.js 学习 前端
AngularJS简介AngularJS的中文参考手册AngularJS的使用AngularJS是一个JS框架,通过指令(ng-directives)扩展了HTML,且通过表达式绑定数据到HTML,用于开发单一页面应用程序(SPAs:SinglePageApplications)可以通过script标签添加到网页中(建议把脚本放在元素的底部。这会提高网页加载速度,因为HTML加载不受制于脚本加载。
实现MySQL数据全量迁移至Hive的简单脚本
xiaoxaoyu
数仓 数据仓库
1、主要思路:编写脚本执行建表语句、sqoop命令1.1、编写建表语句脚本思路:在虚拟机下执行hive-f/脚本路径即可执行hql脚本1.2、编写shell脚本脚本内容为分为两部分执行hql建表语句脚本sqoop迁移命令2、示范案例:2.1、hive建表脚本:--示范案例dropdatabaseifexistsods_myshopscascade;createdatabaseods_myshops
MySQL的binlog日志
mysql
binlog基本认识MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册5.1.24版)。二进制有两个最重要的使用场景:其一:MySQLReplication在Master端开启binl
【网络安全】Snort中文查询手册
Walter_Jia
Network Security
Snort中文手册摘要snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。(2003-12-1116:39:12)Snort用户手册第一章snort
5. clickhouse 单节点多实例部署
Toroidals
大数据组件安装部署教程 clickhouse 单节点 多实例 伪分布 安装部署
环境说明:主机名:cmc01为例操作系统:centos7安装部署软件版本部署方式centos7zookeeperzookeeper-3.4.10伪分布式hadoophadoop-3.1.3伪分布式hivehive-3.1.3-bin伪分布式clickhouse21.11.10.1-2单节点多实例dolphinscheduler3.0.0单节点kettlepdi-ce-9.3.0.0单节点sqoop
Oracle的学习心得和知识总结(三十三)|Oracle数据库数据库的SQL ID的底层计算原理分析
孤傲小二~阿沐
数据库 oracle sql
目录结构注:提前言明本文借鉴了以下博主、书籍或网站的内容,其列表如下:1、参考书籍:《OracleDatabaseSQLLanguageReference》2、参考书籍:《PostgreSQL中文手册》3、EDBPostgresAdvancedServerUserGuides,点击前往4、PostgreSQL数据库仓库链接,点击前往5、PostgreSQL中文社区,点击前往1、本文内容全部来源于开
PostgreSQL的学习心得和知识总结(一百四十八)|查看 PostgreSQL 17 中的新内置排序规则提供程序
孤傲小二~阿沐
postgresql 数据库
目录结构注:提前言明本文借鉴了以下博主、书籍或网站的内容,其列表如下:1、参考书籍:《PostgreSQL数据库内核分析》2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》3、PostgreSQL数据库仓库链接,点击前往4、日本著名PostgreSQL数据库专家铃木启修网站主页,点击前往5、参考书籍:《PostgreSQL中文手册》6、参考书籍:《PostgreSQL指南:内幕探索》,点击
大数据-267 实时数仓 - ODS Lambda架构 Kappa架构 核心思想
m0_74823336
面试 学习路线 阿里巴巴 大数据 架构
点一下关注吧!!!非常感谢!!持续更新!!!Java篇开始了!MyBatis更新完毕目前开始更新Spring,一起深入浅出!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)Cl
sqoop导出orc数据至mysql,将Sqoop导入为OrC文件
终有尽头
IsthereanyoptioninsqooptoimportdatafromRDMSandstoreitasORCfileformatinHDFS?Alternativestried:importedastextformatandusedatemptabletoreadinputastextfileandwritetohdfsasorcinhive解决方案AtleastinSqoop1.4.5t
sqoop从orc文件到oracle,Sqoop import as OrC file
余革革
问题IsthereanyoptioninsqooptoimportdatafromRDMSandstoreitasORCfileformatinHDFS?Alternativestried:importedastextformatandusedatemptabletoreadinputastextfileandwritetohdfsasorcinhive回答1:AtleastinSqoop1.4.
Hadoop---(6)Sqoop(数据传输)
Mr Cao
sqoop 大数据
6.SqoopSqoop是一个用于hadoop数据和结构化数据之间转换的工具。全称SQL-TO-HADOOP.它可以把hadoop数据,包括hive和hbase存储的数据转化为结构化数据也就是数据库的数据,也可以把关系型数据库数据转化为hadoop数据这些转换操作全是通过Hadoop的MapTask来完成的,并不会涉及到Reduce操作。这是因为我们只是进行数据的拷贝,并不会对数据进行处理或者计算
Sqoop 支持 ORC 文件格式
吃鱼的羊
sqoop
ORC介绍ORC文件格式是Hive0.11.0版本引入的一种文件格式。ORC的引入是为了解决其他Hive文件格式的局限性。使用ORC文件格式提升Hive读取、写入及处理数据的性能。与RCFile对比,ORC文件格式有很多优点:每个Task只输出一个文件,降低NameNode的负载。Hive数据类型支持,包括:datetime、decimal以及复杂数据类型(struct、list、map、unio
本地Apache Hive的Linux服务器集群复制数据到SQL Server数据库的分步流程
weixin_30777913
数据库 数据仓库 hive sqlserver
我们已经有安装ApacheHive的Linux服务器集群,它可以连接到一个SQLServerRDS数据库,需要在该Linux服务器上安装配置sqoop,然后将Hive中所有的表数据复制到SQLServerRDS数据库。以下是分步指南,用于在Linux服务器上安装配置Sqoop并将Hive表数据迁移至SQLServerRDS:1.安装Sqoop步骤:下载Sqoop前往ApacheSqoop下载页面,
大数据开发的底层逻辑是什么?
瑰茵
大数据
大数据开发的底层逻辑主要围绕数据的生命周期进行,包括数据的采集、存储、处理、分析和可视化等环节。以下是大数据开发的一些关键底层逻辑:数据采集:目的:从不同的数据源(如日志文件、数据库、传感器等)收集数据。方法:使用数据采集工具(如ApacheFlume、ApacheKafka、ApacheSqoop)来捕获和传输数据。数据存储:目的:将收集到的数据存储在可靠且可扩展的存储系统中。方法:使用分布式文
Sqoop数据导出 第3关:Hive数据导出至MySQL中
是草莓熊吖
sqoop Educoder hive hadoop 数据仓库 sqoop
为了完成本关任务,你需要掌握:Hive数据导出至MySQL中。Hive数据导入MySQL中MySQL建表因为之前已经创建过数据库了,我们直接使用之前的数据库hdfsdb,在数据库中建表project,表结构如下:名类状态pro_noint主键,序号pro_namevarchar(20)课程名pro_teachervarchar(20)课程老师#首先进入MySQLmysql-uroot-p12312
把hive中的数据导出到mysql
樱浅沐冰
笔记 hadoop hive mysql
注意事项!!!!1.hive中的表的字段和类型必须和mysql表中的字段和类型一样不如hive中的stnamevarchar(50),那么mysql中的字段和类型也必须为stnamestring2.sqoopexport--connectjdbc:mysql://localhost:3306/xiandian--usernameroot--passwordbigdata--tablem1--hca
Hive数据仓库中的数据导出到MySQL的数据表不成功
sin2201
出错问题 数据仓库 hive mysql
可能的原因:(1)没有下载flume和sqoop(2)权限问题:因为MySQL数据库拒绝了root用户从hadoop3主机的连接请求,root用户没有从hadoop3主机进行连接的权限解决:通过MySQL的授权命令来授予权限mysql>GRANTALLPRIVILEGESONsqoop_weblog.*TO'root'@'hadoop3'IDENTIFIEDBY'2020';QueryOK,0ro
基于飞腾平台的Sqoop的安装配置
【写在前面】飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。点击这里开始你的技术升级之旅吧本文分享至飞腾开发者平台《飞腾平台Sqoop1.99
mysql+binlog+查看+加密,mysql查看binlog日志
疯疯疯狂的野兔
MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册5.1.24版)。二进制有两个最重要的使用场景:其一:MySQLReplication在Master端开启binlog,Mster把它
SeaTunnel 与 DataX 、Sqoop、Flume、Flink CDC 对比
不二人生
# 数据集成工具 SeaTunnel
文章目录SeaTunnel与DataX、Sqoop、Flume、FlinkCDC对比同类产品横向对比2.1、高可用、健壮的容错机制2.2、部署难度和运行模式2.3、支持的数据源丰富度2.4、内存资源占用2.5、数据库连接占用2.6、自动建表2.7、整库同步2.8、断点续传2.9、多引擎支持2.10、数据转换算子2.11、性能2.12、离线同步2.13、增量同步&实时同步2.14、CDC同步2.15
大数据-257 离线数仓 - 数据质量监控 监控方法 Griffin架构
武子康
大数据 离线数仓 大数据 数据仓库 java 后端 hadoop hive
点一下关注吧!!!非常感谢!!持续更新!!!Java篇开始了!目前开始更新MyBatis,一起深入浅出!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已
对股票分析时要注意哪些主要因素?
会飞的奇葩猪
股票 分析 云掌股吧
众所周知,对散户投资者来说,股票技术分析是应战股市的核心武器,想学好股票的技术分析一定要知道哪些是重点学习的,其实非常简单,我们只要记住三个要素:成交量、价格趋势、振荡指标。
一、成交量
大盘的成交量状态。成交量大说明市场的获利机会较多,成交量小说明市场的获利机会较少。当沪市的成交量超过150亿时是强市市场状态,运用技术找综合买点较准;
【Scala十八】视图界定与上下文界定
bit1129
scala
Context Bound,上下文界定,是Scala为隐式参数引入的一种语法糖,使得隐式转换的编码更加简洁。
隐式参数
首先引入一个泛型函数max,用于取a和b的最大值
def max[T](a: T, b: T) = {
if (a > b) a else b
}
因为T是未知类型,只有运行时才会代入真正的类型,因此调用a >
C语言的分支——Object-C程序设计阅读有感
darkblue086
apple c 框架 cocoa
自从1972年贝尔实验室Dennis Ritchie开发了C语言,C语言已经有了很多版本和实现,从Borland到microsoft还是GNU、Apple都提供了不同时代的多种选择,我们知道C语言是基于Thompson开发的B语言的,Object-C是以SmallTalk-80为基础的。和C++不同的是,Object C并不是C的超集,因为有很多特性与C是不同的。
Object-C程序设计这本书
去除浏览器对表单值的记忆
周凡杨
html 记忆 autocomplete form 浏览
&n
java的树形通讯录
g21121
java
最近用到企业通讯录,虽然以前也开发过,但是用的是jsf,拼成的树形,及其笨重和难维护。后来就想到直接生成json格式字符串,页面上也好展现。
// 首先取出每个部门的联系人
for (int i = 0; i < depList.size(); i++) {
List<Contacts> list = getContactList(depList.get(i
Nginx安装部署
510888780
nginx linux
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源
java servelet异步处理请求
墙头上一根草
java 异步返回 servlet
servlet3.0以后支持异步处理请求,具体是使用AsyncContext ,包装httpservletRequest以及httpservletResponse具有异步的功能,
final AsyncContext ac = request.startAsync(request, response);
ac.s
我的spring学习笔记8-Spring中Bean的实例化
aijuans
Spring 3
在Spring中要实例化一个Bean有几种方法:
1、最常用的(普通方法)
<bean id="myBean" class="www.6e6.org.MyBean" />
使用这样方法,按Spring就会使用Bean的默认构造方法,也就是把没有参数的构造方法来建立Bean实例。
(有构造方法的下个文细说)
2、还
为Mysql创建最优的索引
annan211
mysql 索引
索引对于良好的性能非常关键,尤其是当数据规模越来越大的时候,索引的对性能的影响越发重要。
索引经常会被误解甚至忽略,而且经常被糟糕的设计。
索引优化应该是对查询性能优化最有效的手段了,索引能够轻易将查询性能提高几个数量级,最优的索引会比
较好的索引性能要好2个数量级。
1 索引的类型
(1) B-Tree
不出意外,这里提到的索引都是指 B-
日期函数
百合不是茶
oracle sql 日期函数 查询
ORACLE日期时间函数大全
TO_DATE格式(以时间:2007-11-02 13:45:25为例)
Year:
yy two digits 两位年 显示值:07
yyy three digits 三位年 显示值:007
线程优先级
bijian1013
java thread 多线程 java多线程
多线程运行时需要定义线程运行的先后顺序。
线程优先级是用数字表示,数字越大线程优先级越高,取值在1到10,默认优先级为5。
实例:
package com.bijian.study;
/**
* 因为在代码段当中把线程B的优先级设置高于线程A,所以运行结果先执行线程B的run()方法后再执行线程A的run()方法
* 但在实际中,JAVA的优先级不准,强烈不建议用此方法来控制执
适配器模式和代理模式的区别
bijian1013
java 设计模式
一.简介 适配器模式:适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。 &nbs
【持久化框架MyBatis3三】MyBatis3 SQL映射配置文件
bit1129
Mybatis3
SQL映射配置文件一方面类似于Hibernate的映射配置文件,通过定义实体与关系表的列之间的对应关系。另一方面使用<select>,<insert>,<delete>,<update>元素定义增删改查的SQL语句,
这些元素包含三方面内容
1. 要执行的SQL语句
2. SQL语句的入参,比如查询条件
3. SQL语句的返回结果
oracle大数据表复制备份个人经验
bitcarter
oracle 大表备份 大表数据复制
前提:
数据库仓库A(就拿oracle11g为例)中有两个用户user1和user2,现在有user1中有表ldm_table1,且表ldm_table1有数据5千万以上,ldm_table1中的数据是从其他库B(数据源)中抽取过来的,前期业务理解不够或者需求有变,数据有变动需要重新从B中抽取数据到A库表ldm_table1中。
HTTP加速器varnish安装小记
ronin47
http varnish 加速
上午共享的那个varnish安装手册,个人看了下,有点不知所云,好吧~看来还是先安装玩玩!
苦逼公司服务器没法连外网,不能用什么wget或yum命令直接下载安装,每每看到别人博客贴出的在线安装代码时,总有一股羡慕嫉妒“恨”冒了出来。。。好吧,既然没法上外网,那只能麻烦点通过下载源码来编译安装了!
Varnish 3.0.4下载地址: http://repo.varnish-cache.org/
java-73-输入一个字符串,输出该字符串中对称的子字符串的最大长度
bylijinnan
java
public class LongestSymmtricalLength {
/*
* Q75题目:输入一个字符串,输出该字符串中对称的子字符串的最大长度。
* 比如输入字符串“google”,由于该字符串里最长的对称子字符串是“goog”,因此输出4。
*/
public static void main(String[] args) {
Str
学习编程的一点感想
Cb123456
编程 感想 Gis
写点感想,总结一些,也顺便激励一些自己.现在就是复习阶段,也做做项目.
本专业是GIS专业,当初觉得本专业太水,靠这个会活不下去的,所以就报了培训班。学习的时候,进入状态很慢,而且当初进去的时候,已经上到Java高级阶段了,所以.....,呵呵,之后有点感觉了,不过,还是不好好写代码,还眼高手低的,有
[能源与安全]美国与中国
comsci
能源
现在有一个局面:地球上的石油只剩下N桶,这些油只够让中国和美国这两个国家中的一个顺利过渡到宇宙时代,但是如果这两个国家为争夺这些石油而发生战争,其结果是两个国家都无法平稳过渡到宇宙时代。。。。而且在战争中,剩下的石油也会被快速消耗在战争中,结果是两败俱伤。。。
在这个大
SEMI-JOIN执行计划突然变成HASH JOIN了 的原因分析
cwqcwqmax9
oracle
甲说:
A B两个表总数据量都很大,在百万以上。
idx1 idx2字段表示是索引字段
A B 两表上都有
col1字段表示普通字段
select xxx from A
where A.idx1 between mmm and nnn
and exists (select 1 from B where B.idx2 =
SpringMVC-ajax返回值乱码解决方案
dashuaifu
Ajax springMVC response 中文乱码
SpringMVC-ajax返回值乱码解决方案
一:(自己总结,测试过可行)
ajax返回如果含有中文汉字,则使用:(如下例:)
@RequestMapping(value="/xxx.do") public @ResponseBody void getPunishReasonB
Linux系统中查看日志的常用命令
dcj3sjt126com
OS
因为在日常的工作中,出问题的时候查看日志是每个管理员的习惯,作为初学者,为了以后的需要,我今天将下面这些查看命令共享给各位
cat
tail -f
日 志 文 件 说 明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信
[应用结构]应用
dcj3sjt126com
PHP yii2
应用主体
应用主体是管理 Yii 应用系统整体结构和生命周期的对象。 每个Yii应用系统只能包含一个应用主体,应用主体在 入口脚本中创建并能通过表达式 \Yii::$app 全局范围内访问。
补充: 当我们说"一个应用",它可能是一个应用主体对象,也可能是一个应用系统,是根据上下文来决定[译:中文为避免歧义,Application翻译为应
assertThat用法
eksliang
JUnit assertThat
junit4.0 assertThat用法
一般匹配符1、assertThat( testedNumber, allOf( greaterThan(8), lessThan(16) ) );
注释: allOf匹配符表明如果接下来的所有条件必须都成立测试才通过,相当于“与”(&&)
2、assertThat( testedNumber, anyOf( g
android点滴2
gundumw100
应用服务器 android 网络应用 OS HTC
如何让Drawable绕着中心旋转?
Animation a = new RotateAnimation(0.0f, 360.0f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,0.5f);
a.setRepeatCount(-1);
a.setDuration(1000);
如何控制Andro
超简洁的CSS下拉菜单
ini
html Web 工作 html5 css
效果体验:http://hovertree.com/texiao/css/3.htmHTML文件:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>简洁的HTML+CSS下拉菜单-HoverTree</title>
kafka consumer防止数据丢失
kane_xie
kafka offset commit
kafka最初是被LinkedIn设计用来处理log的分布式消息系统,因此它的着眼点不在数据的安全性(log偶尔丢几条无所谓),换句话说kafka并不能完全保证数据不丢失。
尽管kafka官网声称能够保证at-least-once,但如果consumer进程数小于partition_num,这个结论不一定成立。
考虑这样一个case,partiton_num=2
@Repository、@Service、@Controller 和 @Component
mhtbbx
DAO spring bean prototype
@Repository、@Service、@Controller 和 @Component 将类标识为Bean
Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的开发。@Repository注解便属于最先引入的一批,它用于将数据访问层 (DAO 层 ) 的类标识为 Spring Bean。具体只需将该注解标注在 DAO类上即可。同时,为了让 Spring 能够扫描类
java 多线程高并发读写控制 误区
qifeifei
java thread
先看一下下面的错误代码,对写加了synchronized控制,保证了写的安全,但是问题在哪里呢?
public class testTh7 {
private String data;
public String read(){
System.out.println(Thread.currentThread().getName() + "read data "
mongodb replica set(副本集)设置步骤
tcrct
java mongodb
网上已经有一大堆的设置步骤的了,根据我遇到的问题,整理一下,如下:
首先先去下载一个mongodb最新版,目前最新版应该是2.6
cd /usr/local/bin
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.0.tgz
tar -zxvf mongodb-linux-x86_64-2.6.0.t
rust学习笔记
wudixiaotie
学习笔记
1.rust里绑定变量是let,默认绑定了的变量是不可更改的,所以如果想让变量可变就要加上mut。
let x = 1; let mut y = 2;
2.match 相当于erlang中的case,但是case的每一项后都是分号,但是rust的match却是逗号。
3.match 的每一项最后都要加逗号,但是最后一项不加也不会报错,所有结尾加逗号的用法都是类似。
4.每个语句结尾都要加分