Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOCS] Cut new docs version 1.0.0 #12484

Merged
merged 2 commits into from
Dec 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions website/docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,11 +140,11 @@ module.exports = {
},
{
from: ["/docs/releases", "/docs/next/releases"],
to: "/releases/release-0.15.0",
to: "/releases/release-1.0.0",
},
{
from: ["/releases"],
to: "/releases/release-0.15.0",
to: "/releases/release-1.0.0",
},
],
},
Expand Down Expand Up @@ -327,7 +327,7 @@ module.exports = {
},
{
label: "Releases",
to: "/releases/release-0.15.0",
to: "/releases/release-1.0.0",
},
{
label: "Download",
Expand Down Expand Up @@ -509,8 +509,8 @@ module.exports = {
path: "next",
banner: "unreleased",
},
"0.15.0": {
label: "0.15.0",
"1.0.0": {
label: "1.0.0",
path: "",
},
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
title: Azure 文件系统
keywords: [ hudi, hive, azure, spark, presto]
summary: 在本页中,我们讨论如何在 Azure 文件系统中配置 Hudi 。
last_modified_at: 2020-05-25T19:00:57-04:00
language: cn
---
在本页中,我们解释如何在 Microsoft Azure 上使用 Hudi 。

## 声明

本页面由 Hudi 社区维护。
如果信息不准确,或者你有信息要补充,请尽管创建 JIRA ticket。
对此贡献高度赞赏。

## 支持的存储系统

Hudi 支持两种存储系统。

- Azure Blob 存储
- Azure Data Lake Gen 2

## 经过验证的 Spark 与存储系统的组合

#### Azure Data Lake Storage Gen 2 上的 HDInsight Spark 2.4
This combination works out of the box. No extra config needed.
这种组合开箱即用,不需要额外的配置。

#### Azure Data Lake Storage Gen 2 上的 Databricks Spark 2.4
- 将 Hudi jar 包导入到 databricks 工作区 。

- 将文件系统挂载到 dbutils 。
```scala
dbutils.fs.mount(
source = "abfss://[email protected]",
mountPoint = "/mountpoint",
extraConfigs = configs)
```
- 当写入 Hudi 数据集时,使用 abfss URL
```scala
inputDF.write
.format("org.apache.hudi")
.options(opts)
.mode(SaveMode.Append)
.save("abfss://<<storage-account>>.dfs.core.windows.net/hudi-tables/customer")
```
- 当读取 Hudi 数据集时,使用挂载点
```scala
spark.read
.format("org.apache.hudi")
.load("/mountpoint/hudi-tables/customer")
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: BOS Filesystem
keywords: [ hudi, hive, baidu, bos, spark, presto]
summary: In this page, we go over how to configure Hudi with BOS filesystem.
last_modified_at: 2021-06-09T11:38:24-10:00
language: cn
---
这个页面描述了如何让你的Hudi任务使用Baidu BOS存储。

## Baidu BOS 部署

为了让Hudi使用BOS,需要增加两部分的配置:

- 为Hudi增加Baidu BOS的相关配置
- 增加Jar包到classpath

### Baidu BOS 相关的配置

新增下面的配置到你的Hudi能访问的core-site.xml文件。使用你的BOS bucket name替换掉`fs.defaultFS`,使用BOS endpoint地址替换`fs.bos.endpoint`,使用BOS的key和secret分别替换`fs.bos.access.key`和`fs.bos.secret.access.key`,这样Hudi就能读写相应的bucket。

```xml
<property>
<name>fs.defaultFS</name>
<value>bos://bucketname/</value>
</property>

<property>
<name>fs.bos.endpoint</name>
<value>bos-endpoint-address</value>
<description>Baidu bos endpoint to connect to,for example : http://bj.bcebos.com</description>
</property>

<property>
<name>fs.bos.access.key</name>
<value>bos-key</value>
<description>Baidu access key</description>
</property>

<property>
<name>fs.bos.secret.access.key</name>
<value>bos-secret-key</value>
<description>Baidu secret key.</description>
</property>

<property>
<name>fs.bos.impl</name>
<value>org.apache.hadoop.fs.bos.BaiduBosFileSystem</value>
</property>
```

### Baidu BOS Libs

新增Baidu hadoop的jar包添加到classpath.

- com.baidubce:bce-java-sdk:0.10.165
- bos-hdfs-sdk-1.0.2-community.jar

可以从[这里](https://sdk.bce.baidu.com/console-sdk/bos-hdfs-sdk-1.0.2-community.jar.zip) 下载bos-hdfs-sdk jar包,然后解压。
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
title: 云储存
keywords: [ hudi, aws, gcp, oss, azure, cloud]
summary: "In this page, we introduce how Hudi work with different Cloud providers."
toc: true
last_modified_at: 2019-06-16T21:59:57-04:00
language: cn
---

## 与云存储连接

无论使用RDD/WriteClient API还是数据源,以下信息都有助于配置对云存储的访问。

* [AWS S3](/cn/docs/s3_hoodie) <br/>
S3和Hudi协同工作所需的配置。
* [Google Cloud Storage](/cn/docs/gcs_hoodie) <br/>
GCS和Hudi协同工作所需的配置。
* [Alibaba Cloud OSS](/cn/docs/oss_hoodie) <br/>
阿里云和Hudi协同工作所需的配置。
* [Microsoft Azure](/cn/docs/azure_hoodie) <br/>
Azure和Hudi协同工作所需的配置。
* [Tencent Cloud Object Storage](/cn/docs/cos_hoodie) <br/>
COS和Hudi协同工作所需的配置。
* [IBM Cloud Object Storage](/cn/docs/ibm_cos_hoodie) <br/>
IBM Cloud Object Storage和Hudi协同工作所需的配置。
* [Baidu Cloud Object Storage](bos_hoodie) <br/>
百度BOS和Hudi协同工作所需的配置。

Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
title: 对比
keywords: [ apache, hudi, kafka, kudu, hive, hbase, stream processing]
last_modified_at: 2019-12-30T15:59:57-04:00
language: cn
---

Apache Hudi填补了在DFS上处理数据的巨大空白,并可以和这些技术很好地共存。然而,
通过将Hudi与一些相关系统进行对比,来了解Hudi如何适应当前的大数据生态系统,并知晓这些系统在设计中做的不同权衡仍将非常有用。

## Kudu

[Apache Kudu](https://kudu.apache.org)是一个与Hudi具有相似目标的存储系统,该系统通过对`upserts`支持来对PB级数据进行实时分析。
一个关键的区别是Kudu还试图充当OLTP工作负载的数据存储,而Hudi并不希望这样做。
因此,Kudu不支持增量拉取(截至2017年初),而Hudi支持以便进行增量处理。

Kudu与分布式文件系统抽象和HDFS完全不同,它自己的一组存储服务器通过RAFT相互通信。
与之不同的是,Hudi旨在与底层Hadoop兼容的文件系统(HDFS,S3或Ceph)一起使用,并且没有自己的存储服务器群,而是依靠Apache Spark来完成繁重的工作。
因此,Hudi可以像其他Spark作业一样轻松扩展,而Kudu则需要硬件和运营支持,特别是HBase或Vertica等数据存储系统。
到目前为止,我们还没有做任何直接的基准测试来比较Kudu和Hudi(鉴于RTTable正在进行中)。
但是,如果我们要使用[CERN](https://db-blog.web.cern.ch/blog/zbigniew-baranowski/2017-01-performance-comparison-different-file-formats-and-storage-engines),
我们预期Hudi在摄取parquet上有更卓越的性能。

## Hive事务

[Hive事务/ACID](https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions)是另一项类似的工作,它试图实现在ORC文件格式之上的存储`读取时合并`。
可以理解,此功能与Hive以及[LLAP](https://cwiki.apache.org/confluence/display/Hive/LLAP)之类的其他工作紧密相关。
Hive事务不提供Hudi提供的读取优化存储选项或增量拉取。
在实现选择方面,Hudi充分利用了类似Spark的处理框架的功能,而Hive事务特性则在用户或Hive Metastore启动的Hive任务/查询的下实现。
根据我们的生产经验,与其他方法相比,将Hudi作为库嵌入到现有的Spark管道中要容易得多,并且操作不会太繁琐。
Hudi还设计用于与Presto/Spark等非Hive引擎合作,并计划引入除parquet以外的文件格式。

## HBase

尽管[HBase](https://hbase.apache.org)最终是OLTP工作负载的键值存储层,但由于与Hadoop的相似性,用户通常倾向于将HBase与分析相关联。
鉴于HBase经过严格的写优化,它支持开箱即用的亚秒级更新,Hive-on-HBase允许用户查询该数据。 但是,就分析工作负载的实际性能而言,Parquet/ORC之类的混合列式存储格式可以轻松击败HBase,因为这些工作负载主要是读取繁重的工作。
Hudi弥补了更快的数据与分析存储格式之间的差距。从运营的角度来看,与管理分析使用的HBase region服务器集群相比,为用户提供可更快给出数据的库更具可扩展性。
最终,HBase不像Hudi这样重点支持`提交时间`、`增量拉取`之类的增量处理原语。

## 流式处理

一个普遍的问题:"Hudi与流处理系统有何关系?",我们将在这里尝试回答。简而言之,Hudi可以与当今的批处理(`写时复制存储`)和流处理(`读时合并存储`)作业集成,以将计算结果存储在Hadoop中。
对于Spark应用程序,这可以通过将Hudi库与Spark/Spark流式DAG直接集成来实现。在非Spark处理系统(例如Flink、Hive)情况下,可以在相应的系统中进行处理,然后通过Kafka主题/DFS中间文件将其发送到Hudi表中。从概念上讲,数据处理
管道仅由三个部分组成:`输入`,`处理`,`输出`,用户最终针对输出运行查询以便使用管道的结果。Hudi可以充当将数据存储在DFS上的输入或输出。Hudi在给定流处理管道上的适用性最终归结为你的查询在Presto/SparkSQL/Hive的适用性。

更高级的用例围绕[增量处理](https://www.oreilly.com/ideas/ubers-case-for-incremental-processing-on-hadoop)的概念展开,
甚至在`处理`引擎内部也使用Hudi来加速典型的批处理管道。例如:Hudi可用作DAG内的状态存储(类似Flink使用的[rocksDB(https://ci.apache.org/projects/flink/flink-docs-release-1.2/ops/state_backends#the-rocksdbstatebackend))。
这是路线图上的一个项目并将最终以[Beam Runner](https://issues.apache.org/jira/browse/HUDI-60)的形式呈现。
Loading
Loading