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

大数据Hadoop之ApacheHudi与PrestoTrino集成

  一、概述
  Apache Hudi  是一个快速增长的数据湖存储系统,可帮助组织构建和管理PB级数据湖。Hudi通过引入诸如升序、删除和增量查询之类的原语,将流式处理引入到批处理式大数据中。这些功能有助于在统一服务层上更快、更新鲜的数据。Hudi表可以存储在Hadoop分布式文件系统(HDFS)或云存储上,并与流行的查询引擎(如Presto(Trino)、Apache Hive、ApacheSpark和Apache Impala  )集成良好。鉴于Hudi开创了一种新的模型,它不仅仅是将文件写入到一个更受管理的存储层,该存储层可以与所有主要的查询引擎进行互操作,因此在集成点是如何演变的方面有了有趣的经验。
  使用presto或者trino分析hudi表数据,最终将结果存储到mysql表中。
  Hive中创建表,关联Hudi表 Presto集成Hive,加载Hive表数据 Presto集成MySQL,读取或者保存数据 二、Trino 环境部署
  关于trino或者presto的介绍,可以参考我这篇文章:大数据Hadoop之——基于内存型SQL查询引擎Presto(Presto-Trino环境部署),这里部署trino单机版进行测试。 1)安装JDK
  【注意】Trino不同的版本要求的JDK版本也不一样的。这里我安装Trino最新版,JDK也安装最新版本。 wget https://cdn.azul.com/zulu/bin/zulu19.30.11-ca-jdk19.0.1-linux_x64.zip unzip zulu19.30.11-ca-jdk19.0.1-linux_x64.zip
  配置环境变量 # /etc/profile文件中追加如下内容: export JAVA_HOME=/opt/bigdata/trino/zulu19.30.11-ca-jdk19.0.1-linux_x64 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  # 加载生效 source /etc/profile2)安装python# version 2.6.x, 2.7.x, or 3.x yum -y install python3 python3 --version ln -s /usr/bin/python3 /usr/bin/python3)安装Trino
  这里部署单机版,Coordinator和Worker同进程。 1、下载解压并配置环境变量wget https://repo1.maven.org/maven2/io/trino/trino-server/401/trino-server-401.tar.gz tar -xf trino-server-401.tar.gz  # 配置环境变量/etc/profile export TRINO_HOME=/opt/bigdata/trino/trino-server-401 export PATH=$TRINO_HOME/bin:$PATH2、修改配置
  首先创建etc和data目录,后面配置文件需要用到 cd $TRINO_HOME mkdir -p data etc/catalognode.properties  cat << EOF > $TRINO_HOME/etc/node.properties # 环境的名字。集群中所有的Trino节点必须具有相同的环境名称。 node.environment=dev # 此Trino安装的唯一标识符。这对于每个节点都必须是唯一的。 node.id=trino-worker # 数据目录的位置(文件系统路径)。Trino在这里存储日志和其他数据。 node.data-dir=/opt/bigdata/trino/trino-server-401/data EOFjvm.config  cat << EOF > $TRINO_HOME/etc/jvm.config -server -Xmx2G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+ExplicitGCInvokesConcurrent -XX:+ExitOnOutOfMemoryError -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -XX:ReservedCodeCacheSize=512M -XX:PerMethodRecompilationCutoff=10000 -XX:PerBytecodeRecompilationCutoff=10000 -Djdk.attach.allowAttachSelf=true -Djdk.nio.maxCachedBufferSize=2000000 EOFconfig.properties  cat << EOF > $TRINO_HOME/etc/config.properties # 设置该节点为coordinator节点 coordinator=true # 允许在协调器上调度工作,也就是coordinator节点又充当worker节点用 node-scheduler.include-coordinator=true # 指定HTTP服务器的端口。Trino使用HTTP进行内部和外部web的所有通信。 http-server.http.port=9000 # 查询可以使用的最大分布式内存。【注意】不能配置超过jvm配置的最大堆栈内存大小 query.max-memory=1GB # 查询可以在任何一台机器上使用的最大用户内存。【注意】也是不能配置超过jvm配置的最大堆栈内存大小 query.max-memory-per-node=1GB # hadoop-node1也可以是IP discovery.uri=http://local-168-182-130:9000 EOFlog.properties  cat << EOF > $TRINO_HOME/etc/log.properties # 设置日志级别,有四个级别:DEBUG, INFO, WARN and ERROR io.trino=INFO EOF配置hive数据源, hive.properties  cat << EOF > $TRINO_HOME/etc/catalog/hive.properties connector.name=hive hive.metastore.uri=thrift://local-168-182-130:9083 hive.config.resources=/opt/bigdata/hadoop/hadoop-3.3.2/etc/hadoop/core-site.xml,/opt/bigdata/hadoop/hadoop-3.3.2/etc/hadoop/hdfs-site.xml EOF配置mysql数据源, mysql.properties  # 所有节点都得添加 cat << EOF > $TRINO_HOME/etc/catalog/mysql.properties connector.name=mysql connection-url=jdbc:mysql://local-168-182-130:3306 connection-user=root connection-password=123456 EOF3、启动服务$TRINO_HOME/bin/launcher start  # 查看日志 tail -f $TRINO_HOME/data/var/log/server.log  netstat -tnlp|grep :90004、测试验证
  web访问验证:http://local-168-182-130:9000
  下载对应trino版本的客户端进行连接测试 cd $TRINO_HOME/bin/ wget https://repo1.maven.org/maven2/io/trino/trino-cli/401/trino-cli-401-executable.jar  # 改名,加执行权限 mv trino-cli-401-executable.jar trino chmod +x trino  # 非交互式连接操作 $TRINO_HOME/bin/trino --server local-168-182-130:9000 --execute="select * from system.runtime.nodes";  ### 交互式连接测试 $TRINO_HOME/bin/trino --server local-168-182-130:9000  # 命令不区分大小写 show catalogs; # 查库 show schemas from system; # 查表 show tables from system.runtime; # 查具体记录,查看当前node节点记录 select * from system.runtime.nodes;
  三、在Hive中创建表关联Hudi表
  hive 查询hudi 数据主要是在hive中 建立外部表 ,数据路径指向hdfs 路径,同时hudi 重写了 inputformat   和outpurtformat  。因为hudi 在读的数据的时候会读元数据来决定我要加载那些parquet文件,而在写的时候会写入新的元数据信息到hdfs路径下。所以hive 要集成hudi 查询要把编译的jar 包放到HIVE-HOME/lib 下面。否则查询时找不到inputformat和outputformat的类。1)添加jar包cp hudi/hudi-0.12.0/packaging/hudi-hive-sync-bundle/target/hudi-hive-sync-bundle-0.12.0.jar $HIVE_HOME/lib  # 重启metastore服务 nohup hive --service metastore &  # 重启hiverserver2 nohup hive --service hiveserver2 > /dev/null 2>&1 &  # 查看日志 tail -f /tmp/root/hive.log  # 连接 beeline -u jdbc:hive2://local-168-182-130:10000  -n root2)创建库表关联Hudi### 1、创建数据库 CREATE DATABASE IF NOT EXISTS hudi_hive; USE hudi_hive;  ### 2、创建hive表,指定数据存储路径,关联hudi表路径。 beeline -u jdbc:hive2://local-168-182-130:10000  -n root  CREATE EXTERNAL TABLE hudi_hive.tbl_customer( id string, customer_relationship_id string, create_date_time string, update_date_time string, deleted string, name string, idcard string, birth_year string, gender string, phone string, wechat string, qq string, email string, area string, leave_school_date string, graduation_date string, bxg_student_id string, creator string, origin_type string, origin_channel string, tenant string, md_id string )PARTITIONED BY (day_str string) ROW FORMAT SERDE "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe" STORED AS INPUTFORMAT "org.apache.hudi.hadoop.HoodieParquetInputFormat" OUTPUTFORMAT "org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat" LOCATION "/hudi-hive/customer_hudi" ;
  就会在DFS上创建相关的目录
  数据来源可以是flink或者spark任务去写数据,根据具体场景而定。 四、Hudi 与 Trino集成
  trino 集成hudi 是 基于hive catalog , 同样是访问hive 外表进行查询,如果要集成,需要把hudi trino jar包copy 到trino plugin hive插件下面。 cp hudi/hudi-0.12.0/packaging/hudi-trino-bundle/target/hudi-trino-bundle-0.12.0.jar $TRINO_HOME/plugin/hive/
  查询 $TRINO_HOME/bin/trino --server local-168-182-130:9000  show schemas from hive; show tables from hive.hudi_hive;  select * from hive.hudi_hive.tbl_customer;
  trino或者presto将需要查询的数据进行统计写入到其它数据源,这是trino/presto的优势,因为trino/presto本身支持很多种数据源(catalog)。
  Hudi与Trino(Presto)的集成讲解就先到这里了,有任何疑问欢迎给我留言,后面会持续更新【大数据+云原生】相关的文章,请小伙伴耐心等待~

男子长期喝酒熬夜,30岁已患痛风6年!医生治疗痛风无特效药近日,江苏的刘先生又为了他的病来到医院。原来,刘先生今年30岁,正值而立之年的他,事业有成,家庭和睦,可是身体却出了问题。由于长期应酬,喝酒熬夜,30岁的刘先生却已经患痛风6年!每每天一个鸡蛋,是养生,还是损坏心血管?研究告诉你答案鸡蛋有很多种类的做法蒸鸡蛋炒鸡蛋茶叶蛋虽然味道不同,做法也不同,但是鸡蛋中的营养从未流失。鸡蛋当中的营养物质卵磷脂卵黄素优质蛋白钙元素多种氨基酸非机体补充所缺少的营养物质,防止营养痛风反复发作,大疙瘩该如何消除?医生提醒做好这3件事痛风石的形成,主要是由于尿酸盐沉积。如果痛风反复地发作,这种情况很难彻底根除,时间一长,不仅能够引起局部疼痛,而且还会引起关节功能障碍的同时影响美观。在慢性痛风患者中,尿酸在身体各一口热水喝掉5000块钱,中医医生劝你,别这么喝水之前网络上有一个博主说自己一口热水喝掉了5000多块,只是因为他早上起来,想喝水,但水又开了,又没有别的水可以喝,没有办法直接喝热水,导致舌头瞬间被烫伤,后续治疗花了5000块,不医生的23个健康忠告,应对生活中的小问题,非常实用,建议收藏如果问你最想要的是什么,相信大部分人都会回答健康,没错,健康是一切美好的前提,只有拥有健康的身体,才能远离疾病的发生,也才可以更好的工作与生活。生活水平提高之后,人们的观念发生了很饮酒不过量就没事?医生提醒这4类人最好做到滴酒不沾俗话说无酒不成席!酒对于中国人来说,是生活中不可缺少的一部分。有朋有客,摆酒洗尘闲时相聚,把酒言欢喜事登门,举杯相庆愁上心头,借酒消忧。汲取丰富的中国酒文化营养,结合现代人的生活方尿酸高出现痛风,手指脚疼痛,医生教你降尿酸的方法痛风在生活中是比较常见的,它是由于患者身体内部的尿酸过高所引起的疾病,尿酸水平升高到一定程度时就会引起高尿酸血症和痛风,并且双脚关节是最容易沉积尿酸的部位,同时会引起剧烈的疼痛症状30岁女子每天喝牛奶,为啥会患有骨质疏松?建议平时做好3件小事医生,我每天都喝牛奶,为什么会患有骨质疏松呢?而且我这么年轻,骨质疏松不是老年人疾病吗?医生,我每天都喝牛奶,为什么会患有骨质疏松呢?而且我这么年轻,骨质疏松不是老年人的疾病吗?我这7种食物或没有保质期?就算存放很久也能吃,别再傻傻丢掉随着时代发展,医学技术不断完善,人们开始加入养生的行列,在之前的时候大家只追求能够保护,不过现在越来越关注食品安全问题。在购买食物的时候,首先应该查看食物生产日期以及保质期,对于过常吃这5种早餐等于喝油,难怪越减越胖,快看看有你爱吃的吗俗话说一日之计在于晨,清晨是人一天中精力最旺盛的时段,同样早餐也是一日三餐中最重要的一餐,老话说早吃好,午吃饱,晚吃少因此早餐不仅要吃得好,还要营养均衡,这样才能元气满满地开启一天每月一度电换全家远离寒气,健康养生低成本俗话说十病九寒,又有万恶淫为首,百病寒为先之说,可见寒邪影响人体健康之甚。十病九寒,百病皆起于寒。体寒不是病,可是却对健康有着很不利的影响,比如会引起血脉不畅消化不良等,会给我们的
海南本地人公期酒单曝光,5款廉价酒在当地十分受欢迎海南本地人公期酒单曝光,5款廉价酒在当地十分受欢迎公期是海南本地的一种独特的地方文化习俗,也是一项很重要的祭神活动。除了祭神外,爱吃爱喝爱请客的海南人民每逢公期都要广邀亲戚朋友朋友勾兑酒最怕加热?教你3个鉴酒小妙招,照着买就能避开勾兑酒人怕出名猪怕壮,勾兑酒怕什么?当然是怕被人识破伪装,撕开披在身上的遮羞布,被大众嫌弃没人买。那如何才能撕开勾兑酒伪装的外衣呢?对此,曾有人直言勾兑酒最怕加热,不管是杏花村还是茅台镇酿酒简单?酿好酒可不简单!6个步骤缺一不可,建议了解在酒水市场上,质量上乘的好酒总是受到爱酒人士的强烈追捧,好酒凭借其独特的香味和别具一格的口感让人入口难忘。不知道爱喝酒的朋友们对酒的了解有多少呢?小编今天带大家了解一下好酒的酿造过安徽一酒客,喝了20年的酒单火了,行家都是100纯粮酒,真会喝人生几何,对酒当歌,美好的生活,温润的时光怎能缺少美酒呢?生活中,酒不单单是一味佳酿,它的用途还有很多,婚丧嫁娶得用酒公司年会得用酒,走亲串戚得用酒,拜寿拜节得用酒。在这些习俗和文95后女生成立上门做饭团队4道菜88元,两个月接超350单,适合会做饭又想赚零花钱的人在社交平台上发完上门做饭的帖子后,张要红很快接到了第一单。一位女士要求她做四个菜番茄丸子汤干煸苦瓜芹菜肉末和清炒西兰花。午休时间,她去公司附近的菜市场买好所需菜品,下班后驱车十多公毛豆这样做太好吃了,不炒也不炖,柔软又劲道,比大鱼大肉还香生活没有彩排,美食没有美颜。大家好,今天用毛豆给大家分享一道美食。毛豆是我们生活中随处可见的一种食材,可以用来做成各种各样好的美食。在我们日常生活中也可以用来做成下酒小零食来食用。吸烟对健康有哪些影响,怎样才能戒掉?虽然香烟内的化学物质主要是干烟草,但是经过化学处理又加了很多添加成分。点燃香烟的烟雾含约4000种化学物质,很多是有毒物质,引致异变物质及有数千种致癌物质。尼古丁是一种难闻味苦无色清纯可人高颜值网红美女小姐姐第21期这位素色穿着的网红小姐姐,仿佛深闺玉女般散发出恬静美好的气息,身材虽不是魔鬼般的惹火,好在一头柔顺起伏的长发发出耀眼的光芒,手中的小扇则增添了一丝书香之气。话说那高山的皑皑冰雪,也张歆艺更大胆了!深V领口直接开到胃,露出傲人事业线,性感高级张歆艺恢复身材后越来越大胆了,非常自信地展现自己的曼妙身材!一身深V领连体裤性感又高级,短发也很飒。对于穿衣小白来说,真的建议你们多尝试连体裤这类时尚单品,虽然说穿脱不方便,却能让金卡戴珊在快餐店火辣庆生!服装太省布料直接秀出肋骨,造型封神近日,金卡戴珊迎来了自己42岁的生日,为了庆祝,她原本是打算跟朋友家人们一起乘坐凯莉的私人飞机,去赌城拉斯维加斯开派对,狂欢一场,但由于天气的原因,飞机没能够降落在拉斯维加斯,只能辣妹时髦精,27套不重样穿搭,照着穿就对了,收藏一下吧鞋,头排看客,大商潮流装备控,今日宜宠粉连衣裙,头排看客,今日宜宠粉,高能小子终极装备,秋天打个卡,文章,天南海北庆丰收服装,时尚官看点,最in买手君,鞋,万能白T恤,头排看客,西谈谈旅游产业的反转机会你有多久没领悟过大自然的美丽了?有多久没能约上几个朋友来一次说走就走的旅行?自2019年以来,不管是国内还是国外,最受冲击的行业当属旅游业,细分为运输酒店机场景点几个部分。单论投资秋景如画长春市友谊公园秋景(10月19日摄)。金秋时节,吉林省长春市色彩斑斓,秋景如画。10月19日,市民在长春市百木园观赏秋景。金秋时节,吉林省长春市色彩斑斓,秋景如画。新华社记者许畅摄瞰黄河上游湿地秋韵深秋时节,四川省阿坝藏族羌族自治州境内的大片湿地景色壮美。作为黄河上游重要水源涵养地,近年来,当地采取护湿还水,禁牧还草等生态修复治理措施,全力推动黄河上游生态保护,境内湿地生态环阿里巴巴入选国家乡村振兴局第一批社会帮扶典型案例10月24日,国家乡村振兴局公布社会帮扶助力巩固拓展脱贫攻坚成果同乡村振兴有效衔接典型案例(第一批),阿里巴巴集团建立陕西宜君共配中心助力农产品上行和扩大贵州普安茶的品牌知晓度,被有群众进入区内游玩管理局禁止未经批准进入鄱阳湖国家级自然保护区央广网北京10月25日消息据江西鄱阳湖国家级自然保护区管理局消息,近日,江西鄱阳湖国家级自然保护区管理局沙湖站庐山市公安局蛟塘派出所联合发布关于禁止未经批准进入江西鄱阳湖国家级自然NBA前三战表现最好的五大球星!米切尔利拉德重新证明自己今日比赛综述76人终于迎来了喜讯,在哈登和恩比德齐爆发下,合计砍下55分14篮板13助攻止三连败,在主场120102击败步行者迎来赛季首胜。火箭也在格林波特和史密斯合力砍下72分情篮网124134灰熊!绝望的不是输球,而是西蒙斯赛后这番话今日NBA常规赛,篮网以124134输给灰熊,战绩来到了1胜2负,此役过程跌宕起伏,首节篮网落后5分,次节篮网占上风,第三节灰熊火力全开压着篮网打,末节灰熊继续把控着节奏,篮网无力樊振东将放弃亚洲杯,专注于世界杯总决赛乒超联赛北京时间10月25日1500,国乒世界冠军樊振东作为球员代表,出席新乡世界杯总决赛新闻发布会,参与抽签。仪式最后,樊振东接受了记者采访。记者去年你是世界杯总决赛的男单冠军,今年有信积分被海港追平,申花今晚拿分才能保第3!吴金贵为生存而战中超第19轮补赛的第2个比赛日,上海申花将对阵广州城。由于海港70大胜梅州客家,申花的积分被海港追平,面对广州城申花只有拿分才能稳住自己第3的排名。赛前,申花主帅吴金贵表示,球队在凌晨3点!法甲霸主拒绝爆冷,3分16强,梅西1球16年神迹北京时间10月26日凌晨,欧冠第5轮的比赛打响,巴黎圣日耳曼将对阵海法马卡比,面对本小组最弱的球队,法甲霸主拒绝爆冷,而且已经积8分的他们,只要这一轮全取3分,就将提前一轮小组出线c罗决裂,准备要走?因在对阵热刺最后时刻拒绝替补登场并提前退场,C罗被排除出了本轮客战切尔西的比赛名单和遭到罚款,并被下放U21梯队,这让C罗和滕帅的关系处于决裂的边缘。然而,事情并非到了无可挽回的地