城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

1。Sqoop入门

7月27日 火凤派投稿
  1。1Sqoop简介
  Sqoop即SqlToHadoop
  一般来说数据仓库中的数据不应该只有行为数据,还需要有业务数据,而业务数据一般存放在关系型数据库(例如Oracle、Mysql、SqlServer等)中,而在以前,从关系型数据库中导出数据到Hadoop是非常困难的,市场上也需要一款可以方便导入和导出的工具,此时Sqoop、Datax、Kettle等工具应运而生。
  官网:https:sqoop。apache。org
  ApacheSqoop项目在2021年6月就已经进入Attic了,这意味着Sqoop移动到Attic后,是不会再修复任何的Bug、Release新版本了,并且也不会再重启社区,但从使用角度来说是完全不受影响的,ApacheAttic依旧会提供代码库的下载。
  虽然Sqoopy已经退役,但目前将Sqoop做数据迁移工具公司也不在少数,如果遇到问题,我们只能自己建个分支去fix了。
  Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、oracle。。。)之间进行数据的传递,可以将一个关系型数据库(例如:MySQL、Oracle、Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  简单来说Sqoop的定位就是Hadoop生态存储和结构化存储之间的数据迁移。
  我们比较常见的场景就是HDFSHBaseHive和MySqlOracle之间的数据互导。Sqoop作为数据传输的桥梁,通过定义MapReduce的InPutFormat和OutPutFormat来对接源存储和目的存储。
  Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
  Sqloop的版本
  目前Sqoop总体有两大版本分为Sqoop1和Sqoop2,Sqoop1的最新release是1。4。7;
  Sqoop2的最新Release是1。99。7;这里如果大家使用的话推荐使用Sqoop1,而Sqoop2虽然增加了CLI和Restapi,但实际上是一个半成品,跟Sqoop1也完全不兼容,并且无论是CDH还是之前Apache都是不建议生产使用的,自己随便玩玩还可以。
  请注意,2与1不兼容,且特征不完整,它并不打算用于生产部署1。2Sqoop原理
  将导入或导出命令翻译成mapreduce程序来实现。
  在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。
  整个Sqoop的迁移过程,都会对应着一个MapReduce作业,实际上只有Map阶段,而迁移大致分为5个部分,如下所示。
  Sqoop逻辑简图
  Initializer:整个Sqoop迁移的初始化阶段,完成迁移前的准备工作,如连接数据源,创建临时表,添加依赖的jar包等。
  Partitioner:源数据分片,根据作业并发数来决定源数据要切分多少片。
  Extractor:开启extractor线程,内存中构造数据写入队列之中;
  Loader:开启loader线程,从队列中读取数据并写入对应后端;
  Destroyer:整个迁移的收尾工作,断开sqoop与数据源的连接,完成资源回收;
  流程解析:
  当迁移任务启动后,首先会进入初始化部分,使用JDBC检查导入的数据表,检索出表中的所有列以及列的数据类型,并将这些数据类型映射为Java数据类型,在转换后的MapReduce应用中使用这些对应的Java类型来保存字段的值,在每次Sqoop的任务执行时,代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录,即xxxx。java文件。
  紧接着Partitioner会根据splitby或者m指定整个任务的分片数量,如不指定默认是4个分片(每一个partition对应着一个Mapper),然后编译成一个本地Jar包用于提交MapReduce作业。当任务提交到集群后,每个Mapper会分别启动一个Extractor线程和Loader线程,整个MapReduce的InputFormat实际上是通过JDBC读取原端数据写入到Context中,而Loader线程将从Context中读出写入对应的数据作为OutPutFormat迁移的目的端。当任务执行完成后,yarn资源释放,随之Destroyer回收所有与数据源的连接。
  这里主要讲述的是Import的过程,而export流程与import十分相似,是把数据解析为一条条insert语句,在此不过多解析。1。3Sqoop安装
  安装Sqoop的前提是已经具备Java和Hadoop的环境。
  本文使用的是三台集群环境,选取192。168。204。103这台主机进行安装。
  下载并解压
  1)下载地址:http:archive。apache。orgdistsqoop1。4。7
  2)上传安装包sqoop1。4。7。binhadoop2。6。0。tar。gz到虚拟机中
  optsoftsqoop1。4。7。binhadoop2。6。0。tar。gz
  3)解压sqoop安装包到指定目录,例如:
  〔rootnode103soft〕tarzxvfsqoop1。4。7。binhadoop2。6。0。tar。gzC。。module
  如果觉得目录名称过长,可以修改一下:〔rootnode103sqoop1。4。7。binhadoop2。6。0〕pwd
  optmodulesqoop1。4。7。binhadoop2。6。0
  〔rootnode103module〕mvsqoop1。4。7。binhadoop2。6。0sqoop
  〔rootnode103sqoop1。4。7。binhadoop2。6。0〕pwd
  optmodulesqoop
  修改配置文件
  Sqoop的配置文件与大多数大数据框架类似。
  可以在etcprofile中配置,导出为全局变量
  或者
  在sqoopenv。sh文件中配置,该文件在sqoop根目录下的conf目录中。(本文章用的是这个方式进行的配置)
  我们需要配置哪些内容呢?HADOOPHOME
  HIVEHOME
  HBASEHOME
  ZOOKEEPERHOME
  为什么是这些环境变量,因为后面案例中要实现的导入、导出功能有:RDBMSHDFS
  RDBMSHive
  RDBMSHBase
  HDFSRDBMS
  HiveRDBMS
  1)重命名或复制一个配置文件〔rootnode103conf〕mvsqoopenvtemplate。shsqoopenv。sh
  或
  〔rootnode103conf〕cpsqoopenvtemplate。shsqoopenv。sh
  2)修改配置文件
  sqoopenv。shexportHADOOPCOMMONHOMEoptmodulehadoop2。7。5
  exportHADOOPMAPREDHOMEoptmodulehadoop2。7。5
  exportHBASEHOMEoptmodulehbase1。3。1
  exportHIVEHOMEoptmoduleapachehive2。1。1bin
  exportZOOKEEPERHOMEoptmodulezookeeper3。4。9
  exportZOOCFGDIRoptmodulezookeeper3。4。9conf
  效果图如下:
  拷贝JDBC驱动
  拷贝jdbc驱动到sqoop的lib目录下,可以从之前Hive的安装目录下找到mysql驱动包:〔rootnode103lib〕pwd
  optmoduleapachehive2。1。1binlib
  〔rootnode103lib〕cpmysqlconnectorjava5。1。38。jaroptmodulesqooplib
  验证Sqoop
  我们可以通过某一个command来验证sqoop配置是否正确:〔rootnode103sqoop〕pwd
  optmodulesqoop
  〔rootnode103sqoop〕。binsqoophelp
  出现一些Warning警告(警告信息已省略),并伴随着帮助命令的输出:usage:sqoopCOMMAND〔ARGS〕
  Availablecommands:
  codegenGeneratecodetointeractwithdatabaserecords
  createhivetableImportatabledefinitionintoHive
  evalEvaluateaSQLstatementanddisplaytheresults
  exportExportanHDFSdirectorytoadatabasetable
  helpListavailablecommands
  importImportatablefromadatabasetoHDFS
  importalltablesImporttablesfromadatabasetoHDFS
  importmainframeImportdatasetsfromamainframeservertoHDFS
  jobWorkwithsavedjobs
  listdatabasesListavailabledatabasesonaserver
  listtablesListavailabletablesinadatabase
  mergeMergeresultsofincrementalimports
  metastoreRunastandaloneSqoopmetastore
  versionDisplayversioninformation
  SeesqoophelpCOMMANDforinformationonaspecificcommand。
  这里的输出信息中有一个HBase路径不正确,是因为做测试已经移除掉HBase,需要重新安装HBase即可(请参考Hbase系列)。
  测试Sqoop是否能够成功连接数据库
  〔rootnode103sqoop〕。binsqooplistdatabasesconnectjdbc:mysql:node103:3306usernamerootpassword123456
  出现如下输出:informationschema
  hive
  mysql
  test
  至此,Sqoop安装完毕!
投诉 评论 转载

女排最佳副攻出现,卡罗尔化身拦网机器人,创造了3个纪录2022年女排世锦赛进入尾声,决赛名单已经出炉,分别是上届世锦赛的卫冕冠军塞尔维亚和东京奥运亚军巴西。塞尔维亚女排晋级决赛并不意外,毕竟她们一直被看作是最大的夺冠热门,在本次世……一大理印象(失忆的大理六朝古都序言)正如人类拥有记忆一样,群体社会也有属于它自己的记忆,社会的记忆就是过去曾经发生过的事情,人们用一个词通俗地称为历史。但我们知道,人类在某种特定的条件下,比如突然遭受了重大……1。Sqoop入门1。1Sqoop简介Sqoop即SqlToHadoop一般来说数据仓库中的数据不应该只有行为数据,还需要有业务数据,而业务数据一般存放在关系型数据库(例如Oracl……趋势(一)1。趋势怎么定义的?道氏理论给出了标准:高、低点的变化。商品指数月线按照道氏理论,高点依次降低,低点依次降低,应该是下降趋势,是吧。但现实是:月线应该是……喜欢你携秋水揽星河,来渡我,秋来的惆怅一诗一文每一天的原创诗歌和梦想,不要再和我擦肩而过以欢喜心,慢度日常,光阴入画。岁月成诗,四季清宁,一生久安。愿你浅尝岁月,被时光深情相待,在这芸芸人海,不惧是非与……倪萍的坎坷人生,和她一生爱过的5个重要男人撰文无忧酒编辑1号唠嗑员倪萍是一个成功的女人,但是她的人生也充满了坎坷。2014年,倪萍做客《超级访谈》时说了这么一句话:如果有下辈子,我既不要爹娘,也……苏州5A景区内700年古宅起价1780万元开拍,当地是私宅,极目新闻记者肖名远张奇江苏苏州建于明朝的古宅怀古堂近日上线拍卖,起始价为1780万元,引发网友关注。11月10日,极目新闻记者了解到,古宅目前归苏州一名人士私人所有,与其……药食同源话健康山楂与肉的相爱相杀中医自古以来就有药食同源理论,认为许多食物既是食物也是药物,吃对了能够防治疾病,这是中医养生重要的组成部分。那么,哪些食能入药,怎么吃才能防病治病?众所周知,山楂是我们生……我们从哪里来?答案是这个星球上最突出的高原寒地青藏高原我从哪里来?将往何处去?中国从哪里来?将往何处去?答案,在这颗星球上最突出的一块寒冷高地:青藏高原!1鬼使神差的大碰撞现今中国的地理格局,与一次大碰撞息息相关……善良是一种修行,但过度的善良就是一种愚蠢有这样一句话:世间所有的毒药和良药,都只是剂量上的不同。世间万物都有自己的生存法则,在做人做事的时候都要讲究一个度:凡有度者做事才会有分寸,凡有度者才会对万物有敬畏之心。……比西双版纳更像泰国,没有瑞丽人山人海这个位于中国滇西南的边陲的小城,远没有大理丽江的人山人海,却比西双版纳更具有东南亚风情。城市的名字只有一个字【芒】。作为金三角最美的城市德宏的首府,……太难了!廖力生韧带或断裂而非撕裂,恐伤缺一年孙准浩月底再赴韩山东泰山遭遇用人荒!球队主力后腰廖力生被曝左膝前交叉韧带撕裂,或将接受手术治疗。而最新消息显示,廖力生恐怕不止是韧带撕裂,可能是韧带断裂,不但赛季报销也许连明年6月的亚洲杯都难……
藏华33年,一年营收357亿,挤下老干妈的辣酱,还是个洋牌子星途多舛杨洋,被于小彤害的终身咳疾,与恩师李少红对簿公堂砂锅不开锅,质量再好也容易开裂,开锅方法告诉你,不粘锅不开裂三星w22,一款面子比实用性还高的手机,网友不然谁买这手机?幼儿园举办年会,被吐槽是变相炫富,幼儿园老师回应惹不满魔兽TBC1件防战专属武器,成P3猎人毕业,1。9攻速真那么注意幻塔4个隐藏设置,能避免资源浪费,探索更轻松正式退休!CBA三冠教头无缘新赛季拒绝马布里邀请秦晓雯伤他太锅都换成铁的了,铁怎么还是补不够?它们才是地球上最聪明的物种?科学家表示它们跟人类不相上下王者荣耀S26赛季初上分英雄推荐,真正的版本红利新机小米12刚发布,12UItra就出来捣乱了?

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找