全国职业院校技能大赛-大数据应用赛项-hudi搭建示例

本任务需要使用root用户完成相关配置,具体要求如下:

1、 从宿主机/opt目录下将maven相关安装包复制到容器Master中的/opt/software(若路径不存在,则需新建)中,将maven相关安装包解压到/opt/module/目录下(若路径不存在,则需新建)并配置maven本地库为/opt/software/RepMaven/,远程仓库使用阿里云镜像,配置maven的环境变量,并在/opt/下执行mvn -v,将运行结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

 
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

首先我们需要使用docker cp先将软件拷贝到master容器内

docker cp apache-maven-3.6.3-bin.tar.gz  master:/opt/software/

接下来进入到master容器内解压安装包

进入命令:docker exec -it master(或者容器ID) bash

tar命令解压参数可使用–help查看 ,-C 代表最终解压的目录

tar -zxvf /opt/software/apache-maven-3.6.3-bin.tar.gz -C /opt/module/

找到maven安装目录下的conf文件夹,修改settings.xml文件,添加阿里云镜像

2、 从宿主机/opt目录下将Hudi相关安装包复制到容器Master中的/opt/software(若路径不存在,则需新建)中,将Hudi相关安装包解压到/opt/module/目录下(若路径不存在,则需新建),将命令复制并粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下;

该题需要我们搭建hudi的环境,首先我们需要搭建hadoop的环境,然后搭建spark的环境,最后搭建hudi的环境

hudi安装包下载地址:https://hudi.apache.org/releases/download/

首先我们需要使用docker cp先将软件拷贝到master容器内

docker cp hudi-0.12.0.src.tgz  master:/opt/software/

接下来进入到master容器内解压安装包

进入命令:docker exec -it master(或者容器ID) bash

tar命令解压参数可使用–help查看 ,-C 代表最终解压的目录

tar -zxvf /opt/software/hudi-0.12.0.src.tgz -C /opt/module/

3、 完成解压安装及配置后使用maven对Hudi进行构建(spark3.1,scala-2.12),编译完成后与Spark集成,集成后使用spark-shell操作Hudi,将spark-shell启动使用spark-shell运行下面给到的案例,并将最终查询结果截图粘贴至客户端桌面【Release\任务A提交结果.docx】中对应的任务序号下。

提示:编译需要替换以下内容:
1.将父模块pom.xml替换;
2.hudi-common/src/main/java/org/apache/hudi/common/table/log/block/HoodieParquetDataBlock.java替换;
3.将packaging/hudi-utilities-bundle/pom.xml替换
将packaging/hudi-spark-bundle/pom.xml替换)

 
 
import org.apache.hudi.QuickstartUtils._
import scala.collection.JavaConversions._
import org
  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用hudi-spark-client写数据到hudi表的步骤如下: 1. 首先,创建一个SparkSession对象,并配置相关的Spark和Hudi属性。例如: ```scala val spark = SparkSession.builder() .appName("HudiSparkClientExample") .config("spark.serializer", "org.apache.spark.serializer.KryoSerializer") .config("spark.sql.hive.convertMetastoreParquet", "false") .config("spark.sql.sources.partitionColumnTypeInference.enabled", "false") .config("spark.sql.hive.verifyPartitionPath", "false") .config("spark.hadoop.hive.exec.dynamic.partition.mode", "nonstrict") .config("spark.hadoop.hive.exec.dynamic.partition", "true") .config("spark.sql.warehouse.dir", "hdfs://localhost:9000/user/hive/warehouse") .config("spark.sql.catalogImplementation", "hive") .enableHiveSupport() .getOrCreate() ``` 2. 创建一个DataFrame对象,用于存储要写入Hudi表的数据。 ```scala val data = Seq( (1, "John Doe", 25), (2, "Jane Smith", 30) ) val df = spark.createDataFrame(data).toDF("id", "name", "age") ``` 3. 使用`HoodieSparkSqlWriter`将DataFrame写入Hudi表。指定要写入的表名、要使用的主键列以及要使用的分区列。 ```scala df.write .format("org.apache.hudi") .option("hoodie.table.name", "my_hudi_table") .option("hoodie.datasource.write.precombine.field", "id") .option("hoodie.datasource.write.recordkey.field", "id") .option("hoodie.datasource.write.partitionpath.field", "age") .mode(SaveMode.Append) .save("hdfs://localhost:9000/path/to/hudi_table") ``` 4. 最后,关闭SparkSession对象。 ```scala spark.stop() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值