范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

1。Sqoop入门

  1.1 Sqoop简介
  Sqoop 即 Sql To Hadoop
  一般来说数据仓库中的数据不应该只有行为数据,还需要有业务数据,而业务数据一般存放在关系型数据库(例如Oracle、Mysql、Sql Server等)中,而在以前,从关系型数据库中导出数据到Hadoop是非常困难的,市场上也需要一款可以方便导入和导出的工具,此时Sqoop、Datax、Kettle等工具应运而生。
  官网:https://sqoop.apache.org/
  Apache Sqoop项目在2021年6月就已经进入Attic了,这意味着Sqoop移动到Attic后,是不会再修复任何的Bug、Release新版本了,并且也不会再重启社区,但从使用角度来说是完全不受影响的,Apache Attic依旧会提供代码库的下载。
  虽然Sqoopy已经退役,但目前将Sqoop做数据迁移工具公司也不在少数,如果遇到问题,我们只能自己建个分支去fix了。
  Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、oracle...)之间进行数据的传递,可以将一个关系型数据库(例如:MySQL、Oracle、Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
  简单来说Sqoop的定位就是Hadoop生态存储和结构化存储之间的数据迁移 。
  我们比较常见的场景就是HDFS/HBase/Hive和MySql/Oracle之间的数据互导。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和Rest api,但实际上是一个半成品,跟Sqoop1也完全不兼容,并且无论是CDH还是之前Apache都是不建议生产使用的,自己随便玩玩还可以。
  请注意 ,2与1不兼容,且特征不完整,它并不打算用于生产部署1.2 Sqoop原理
  将导入或导出命令翻译成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会根据--split-by或者-m指定整个任务的分片数量,如不指定默认是4个分片(每一个partition对应着一个Mapper),然后编译成一个本地Jar包用于提交MapReduce作业。当任务提交到集群后,每个Mapper会分别启动一个Extractor线程和Loader线程,整个MapReduce的InputFormat实际上是通过JDBC读取原端数据写入到Context中,而Loader线程将从Context中读出写入对应的数据作为OutPutFormat迁移的目的端。当任务执行完成后,yarn资源释放,随之Destroyer回收所有与数据源的连接。
  这里主要讲述的是Import的过程,而export流程与import十分相似,是把数据解析为一条条insert 语句,在此不过多解析。1.3 Sqoop安装
  安装Sqoop的前提是已经具备Java和Hadoop的环境。
  本文使用的是三台集群环境,选取192.168.204.103这台主机进行安装。
  ① 下载并解压
  1) 下载地址:http://archive.apache.org/dist/sqoop/1.4.7/
  2) 上传安装包 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 到虚拟机中
  /opt/soft/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
  3) 解压sqoop安装包到指定目录,例如:
  [root@node103 soft]# tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C ../module/
  如果觉得目录名称过长,可以修改一下:[root@node103 sqoop-1.4.7.bin__hadoop-2.6.0]# pwd
  /opt/module/sqoop-1.4.7.bin__hadoop-2.6.0
  [root@node103 module]# mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop
  [root@node103 sqoop-1.4.7.bin__hadoop-2.6.0]# pwd
  /opt/module/sqoop
  ② 修改配置文件
  Sqoop的配置文件与大多数大数据框架类似。
  可以在/etc/profile中配置,导出为全局变量
  或者
  在sqoop-env.sh文件中配置,该文件在sqoop根目录下的conf目录中。(本文章用的是这个方式进行的配置)
  我们需要配置哪些内容呢?HADOOP_HOME
  HIVE_HOME
  HBASE_HOME
  ZOOKEEPER_HOME
  为什么是这些环境变量,因为后面案例中要实现的导入、导出功能有:RDBMS ----> HDFS
  RDBMS ----> Hive
  RDBMS ----> HBase
  ------------------
  HDFS ----> RDBMS
  Hive ----> RDBMS
  1) 重命名或复制一个配置文件[root@node103 conf]# mv sqoop-env-template.sh sqoop-env.sh
  或
  [root@node103 conf]# cp sqoop-env-template.sh sqoop-env.sh
  2) 修改配置文件
  sqoop-env.shexport HADOOP_COMMON_HOME=/opt/module/hadoop-2.7.5
  export HADOOP_MAPRED_HOME=/opt/module/hadoop-2.7.5
  export HBASE_HOME=/opt/module/hbase-1.3.1
  export HIVE_HOME=/opt/module/apache-hive-2.1.1-bin
  export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.9
  export ZOOCFGDIR=/opt/module/zookeeper-3.4.9/conf
  效果图如下:
  ③ 拷贝JDBC驱动
  拷贝jdbc驱动到sqoop的lib目录下,可以从之前Hive的安装目录下找到mysql驱动包:[root@node103 lib]# pwd
  /opt/module/apache-hive-2.1.1-bin/lib
  [root@node103 lib]# cp mysql-connector-java-5.1.38.jar /opt/module/sqoop/lib/
  ④ 验证Sqoop
  我们可以通过某一个command来验证sqoop配置是否正确:[root@node103 sqoop]# pwd
  /opt/module/sqoop
  [root@node103 sqoop]# ./bin/sqoop help
  出现一些Warning警告(警告信息已省略),并伴随着帮助命令的输出:usage: sqoop COMMAND [ARGS]
  Available commands:
  codegen Generate code to interact with database records
  create-hive-table Import a table definition into Hive
  eval Evaluate a SQL statement and display the results
  export Export an HDFS directory to a database table
  help List available commands
  import Import a table from a database to HDFS
  import-all-tables Import tables from a database to HDFS
  import-mainframe Import datasets from a mainframe server to HDFS
  job Work with saved jobs
  list-databases List available databases on a server
  list-tables List available tables in a database
  merge Merge results of incremental imports
  metastore Run a standalone Sqoop metastore
  version Display version information
  See "sqoop help COMMAND" for information on a specific command.
  这里的输出信息中有一个HBase路径不正确,是因为做测试已经移除掉HBase,需要重新安装HBase即可(请参考 Hbase系列)。
  ⑤ 测试Sqoop是否能够成功连接数据库
  [root@node103 sqoop]# ./bin/sqoop list-databases --connect jdbc:mysql://node103:3306/ --username root --password 123456
  出现如下输出:information_schema
  hive
  mysql
  test
  至此,Sqoop安装完毕!

中国十大最受欢迎景点No。10中国十大最受欢迎景点故宫博物院故宫博物院北京故宫博物院是一座中国综合性博物馆,建立于1925年10月10日,位于北京故宫紫禁城内,收藏品包括但不限于明朝清朝两代皇宫及其收藏。北京故去贵州,必去的8个景点,你都去过吗?美旅图赏世界的美好就在眼前贵州可以说是名副其实的旅游大省。无论是自然景观,还是少数民族风情,都有着其本身独有的特色魅力。那么贵州有哪些必须要去的地方呢?01黔灵山公园黔灵山被誉为黔四川雅安值得推荐的十八个著名旅游景点蒙顶山风景区五峰环列,状若莲花的避暑胜地蒙顶山风景区位于四川省雅安市境内,四川盆地西南部,横亘于名山县城西北侧,山势北高南低,呈东北一西南带状分布,延伸至雅安境内。山体长约10公里中超广东四队第21轮大湾区三队皆平局收场,梅州遗憾被山东绝杀中超比赛愈战愈烈,截止中超联赛第21轮,广东四支子弟兵都没有取得三分,深圳队作为客队1比1逼平坐镇主场的广州城,广州客战长春亚泰0比0闷平,梅州主场1比2遭山东泰山逆转。深圳队11小鹿鲸鱼海豹,在这座海边城市都能看到内卷时代,什么样的景色最卷?第一是古镇,第二就是海边了,尤其是北方。由于先天不足(先天是天气的天,仅三五个月适合旅游),更是卷上加卷。在中国悠长的海岸线上,如何在看海景吃海鲜洗海澡这趟列车重新定义了旅行,能运营1个世纪,就是因为它死贵还死慢我在头条搞创作第二期一百多年前,外出旅行尤其是长途跨国之旅对大多数人来说都不是一件易事,即便是王公贵族社会豪富也不例外,能够舒舒服服地进行一场长途旅行是很多人的梦想。今天文史君要讲秋色入目四下皆景国庆假期这么过这个假期,在重庆推出了七彩稻田乡村游,道路两旁,成片的彩色稻田形态各异的稻草人,吸引着三五成群的游客徜徉其间。据悉,稻田经过设计画图精准定位和人工移栽等步骤,拼种出各种字样和图案节前日本队主帅曝出争议猛料,中国足球成国际笑话,球迷吐槽声一片北京时间10月6日,中国足球传来最新消息,前日本队主帅冈田武史在接受日媒日刊体育采访时曝出争议猛料,在中国执教时不掺杂私心,有球员因两次违反队规被解雇,这样的情况也是引起了不小的争从试训小队员到世界冠军,肖雁宁两次随中国花游队创造历史我这十年封面新闻记者陈甘露布达佩斯的艳阳将一池水照得湛蓝,大屏幕上,鲜艳的五星红旗慢慢展开,一曲熟悉的旋律我爱你中国在2022布达佩斯游泳世锦赛赛场响起,8位挺拔的姑娘跳入池水。她们开场就50!中国队夺冠,奖牌榜紧追美国,网友盛赞好样的2022年世界射击飞碟世锦赛青年组女子双向飞碟团体赛决赛,中国队在与美国队战成55平后,通过加枪以50胜出,成功拿到该项金牌。赛后,队员们高举国旗合影庆祝,值得一提的是,这也是本届完胜葡萄牙!中国女队挺进世乒赛4强北京时间10月6日,成都世乒赛进入女子团体4强争夺战,一路高奏凯歌的中国女队遭遇葡萄牙女队的挑战。此役,葡萄牙女队则排出由世界排名第17的付玉世界排名第53的邵洁妮两名华裔球员领衔
做细胞治疗转化应用领跑者赵辉博士(左)与团队成员进行样本细胞数据分析。本报记者杨凌摄本报记者杨凌在国外的10年时间,我深感生物医药技术对未来社会发展的重要作用和我国相关原创技术的薄弱。为了将所学为国家创新把消费者当傻子?比亚迪这次被罚,一点也不冤枉阅读下面文章之前,希望您能够在上方点个免费的关注!接下来您每天都能够收到免费的国际资讯哟!您的关注是我的动力多多支持下嘛!!作为国产之光的比亚迪,在前段时间竟然被国家罚款了!这是怎佩信集团创新BPS助力高科技行业变革的步伐是非凡的,在当今的技术世界中,几乎每10年左右,技术就会进步一次。PC互联网移动云AI等速度正在加快。当前,新一轮世界科技革命和产业变革方兴未艾,高科技行业正在迈入黄金时社保可缓缴!新增17个行业日前,国家省市先后出台阶段性缓缴社会保险费政策,扩大了实施范围,延长了缓缴期限。武汉市人社局全面梳理整理出近期用人单位和参保人员关注的具有代表性的7个热点问题进行权威解答。一哪些行散文诗看一朵慢慢打开自己的莲看一朵慢慢打开自己的莲,如看一本书慢慢打开月光和月光一样清澈的文字,我是长在莲上的一片叶子,借住一片水域养活今生。折叠的蛙声被皎洁的清辉念出微光,丢进夏夜的雨水长出千年的古训。风抓人生似茶苦尽甘来近日,体内火气上升,下巴上起了两个火疖子,为了去火,药店买来了苦丁,泡茶喝。同事怀疑地问我苦丁茶可苦得很,你喝的下去吗?必须喝下去啊,为了美(其实就是想火疖子赶紧消失),拼了。今天当你老了才明白,兄弟姐妹断交之后,会留下三种遗憾只要家里还有父母在,家里的兄弟姐妹之间的联系就还在,当父母过生日过年节假日有时会聚在一起,享受家庭带来的温暖。无论在外是否有小家,但父母支撑的大家庭,永远是最好的依靠。大家庭是靠父最能对抗美国田径队的这支队伍已聚集最强力量八位世界冠军到场谁是田径世锦赛上,美国队的最强挑战者?不是很多人想象的牙买加队,而是肯尼亚队。他们在世锦赛奖牌榜上总排名第二。只说最近几届,17年和19年世锦赛,肯尼亚队奖牌榜排名第二。15年北京中超深圳队大调整,前国足队长有望进入教练组,未来或出任主教练北京时间7月2日,中超联赛第7轮正式打响,卫冕冠军山东泰山在经过几轮比赛的调整后,终于找到了状态。上海德比的比赛,上海申花两回合取得一胜一平的战绩,让人很是意外。可几支广东球队的表前罗马队长官宣签约米兰,大伤让他远离巅峰,如今仍有一战之力前罗马队长官宣签约米兰,大伤让他远离巅峰,如今仍有一战之力在罗马球迷群体中,流行着这样一个梗,托蒂这位罗马王子是球队的一代目队长,而德罗西作为托蒂的接班人是球队的二代目队长,这二位本坦库尔我警告过孙兴慜了要小心乌拉圭和C罗当队友不可思议英国媒体football。london报道,热刺中场本坦库尔承认,自己已经开玩笑地警告过孙兴慜,在世界杯上一定要小心乌拉圭。本坦库尔还谈到了C罗,他认为和C罗成为队友是一次不可思议