This is an automated email from the ASF dual-hosted git repository. leesf pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/incubator-hudi.git
The following commit(s) were added to refs/heads/asf-site by this push: new 6d766d7 [doc][chinese] Update and fix errors in chinese documentation (#1069) 6d766d7 is described below commit 6d766d76c6975115be58704638558936850f99c0 Author: SuXingLee <suxing-...@qq.com> AuthorDate: Thu Dec 5 15:23:18 2019 +0800 [doc][chinese] Update and fix errors in chinese documentation (#1069) --- docs/_data/sidebars/mydoc_sidebar_cn.yml | 8 ++++---- docs/admin_guide.cn.md | 2 +- docs/comparison.cn.md | 2 +- docs/concepts.cn.md | 2 +- docs/configurations.cn.md | 2 +- docs/index.cn.md | 6 +++--- docs/powered_by.cn.md | 2 +- docs/querying_data.cn.md | 2 +- docs/quickstart.cn.md | 10 +++++----- docs/use_cases.cn.md | 18 +++++++++--------- docs/writing_data.cn.md | 6 +++--- 11 files changed, 30 insertions(+), 30 deletions(-) diff --git a/docs/_data/sidebars/mydoc_sidebar_cn.yml b/docs/_data/sidebars/mydoc_sidebar_cn.yml index 168f218..97975af 100644 --- a/docs/_data/sidebars/mydoc_sidebar_cn.yml +++ b/docs/_data/sidebars/mydoc_sidebar_cn.yml @@ -6,19 +6,19 @@ entries: version: (0.5.0-incubating) folders: - - title: Getting Started + - title: 入门指南 output: web folderitems: - - title: Quickstart + - title: 快速开始 url: /quickstart.html output: web - - title: 用户案例 + - title: 使用案例 url: /use_cases.html output: web - - title: 演讲 & Powered By + - title: 演讲 & Hudi 用户 url: /powered_by.html output: web diff --git a/docs/admin_guide.cn.md b/docs/admin_guide.cn.md index f980113..e1a266e 100644 --- a/docs/admin_guide.cn.md +++ b/docs/admin_guide.cn.md @@ -1,5 +1,5 @@ --- -title: Administering Hudi Pipelines +title: 管理 Hudi Pipelines keywords: hudi, administration, operation, devops sidebar: mydoc_sidebar permalink: admin_guide.html diff --git a/docs/comparison.cn.md b/docs/comparison.cn.md index 1ecad5f..393fc9e 100644 --- a/docs/comparison.cn.md +++ b/docs/comparison.cn.md @@ -1,5 +1,5 @@ --- -title: Comparison +title: 对比 keywords: apache, hudi, kafka, kudu, hive, hbase, stream processing sidebar: mydoc_sidebar permalink: comparison.html diff --git a/docs/concepts.cn.md b/docs/concepts.cn.md index a4f873a..c5c5fd4 100644 --- a/docs/concepts.cn.md +++ b/docs/concepts.cn.md @@ -1,5 +1,5 @@ --- -title: Concepts +title: 概念 keywords: hudi, design, storage, views, timeline sidebar: mydoc_sidebar permalink: concepts.html diff --git a/docs/configurations.cn.md b/docs/configurations.cn.md index 7b7397d..7100405 100644 --- a/docs/configurations.cn.md +++ b/docs/configurations.cn.md @@ -95,7 +95,7 @@ inputDF.write() ##### INSERT_DROP_DUPS_OPT_KEY {#INSERT_DROP_DUPS_OPT_KEY} 属性:`hoodie.datasource.write.insert.drop.duplicates`, 默认值:`false` <br/> - <span style="color:grey">如果设置为true,则在插入操作期间从传入数据帧中过滤掉所有重复记录。</span> + <span style="color:grey">如果设置为true,则在插入操作期间从传入DataFrame中过滤掉所有重复记录。</span> ##### HIVE_SYNC_ENABLED_OPT_KEY {#HIVE_SYNC_ENABLED_OPT_KEY} 属性:`hoodie.datasource.hive_sync.enable`, 默认值:`false` <br/> diff --git a/docs/index.cn.md b/docs/index.cn.md index cacd43c..19ab353 100644 --- a/docs/index.cn.md +++ b/docs/index.cn.md @@ -10,7 +10,7 @@ Hudi(发音为“hoodie”)摄取与管理处于DFS([HDFS](http://hadoop.apa * **读优化视图** - 在纯列式存储上提供出色的查询性能,非常像[parquet](https://parquet.apache.org/)表。 * **增量视图** - 在数据集之上提供一个变更流并提供给下游的作业或ETL任务。 - * **准实时的表** - 使用基于列存储(例如 Parquet + [Avro](http://avro.apache.org/docs/current/mr.html))和行存储以提供对实时数据的查询 + * **准实时的表** - 使用基于列存储和行存储(例如 Parquet + [Avro](http://avro.apache.org/docs/current/mr.html))以提供对实时数据的查询 @@ -18,6 +18,6 @@ Hudi(发音为“hoodie”)摄取与管理处于DFS([HDFS](http://hadoop.apa <img class="docimage" src="/images/hudi_intro_1.png" alt="hudi_intro_1.png" /> </figure> -通过仔细地管理数据在存储中的布局和如何将数据暴露给查询,Hudi支持丰富的数据生态系统,在该系统中,外部数据源可被近实时摄取并被用于[presto](https://prestodb.io)和[spark](https://spark.apache.org/sql/)等交互式SQL引擎,同时能够从处理/ETL框架(如[hive](https://hive.apache.org/)& [spark](https://spark.apache.org/docs/latest/)中进行增量消费以构建派生(Hudi)数据集。 +通过仔细地管理数据在存储中的布局和如何将数据暴露给查询,Hudi支持丰富的数据生态系统,在该系统中,外部数据源可被近实时摄取并被用于[presto](https://prestodb.io)和[spark](https://spark.apache.org/sql/)等交互式SQL引擎,同时能够从处理/ETL框架(如[hive](https://hive.apache.org/)和 [spark](https://spark.apache.org/docs/latest/)中进行增量消费以构建派生(Hudi)数据集。 -Hudi 大体上由一个自包含的Spark库组成,它用于构建数据集并与现有的数据访问查询引擎集成。有关演示,请参见[快速启动](quickstart.html)。 +Hudi 大体上由一个自包含的Spark库组成,它用于构建数据集并与现有的数据访问查询引擎集成。有关演示,请参见[快速开始](quickstart.html)。 diff --git a/docs/powered_by.cn.md b/docs/powered_by.cn.md index 11930ee..4432788 100644 --- a/docs/powered_by.cn.md +++ b/docs/powered_by.cn.md @@ -1,5 +1,5 @@ --- -title: Talks & Powered By +title: 演讲 & Hudi 用户 keywords: hudi, talks, presentation sidebar: mydoc_sidebar permalink: powered_by.html diff --git a/docs/querying_data.cn.md b/docs/querying_data.cn.md index 354c890..1676f13 100644 --- a/docs/querying_data.cn.md +++ b/docs/querying_data.cn.md @@ -96,7 +96,7 @@ Spark可将Hudi jars和捆绑包轻松部署和管理到作业/笔记本中。 spark.sparkContext.hadoopConfiguration.setClass("mapreduce.input.pathFilter.class", classOf[org.apache.hudi.hadoop.HoodieROTablePathFilter], classOf[org.apache.hadoop.fs.PathFilter]); ``` -如果您希望通过数据源在DFS上使用全局路径,则只需执行以下类似操作即可得到Spark数据帧。 +如果您希望通过数据源在DFS上使用全局路径,则只需执行以下类似操作即可得到Spark DataFrame。 ```Scala Dataset<Row> hoodieROViewDF = spark.read().format("org.apache.hudi") diff --git a/docs/quickstart.cn.md b/docs/quickstart.cn.md index 79c750b..46062e7 100644 --- a/docs/quickstart.cn.md +++ b/docs/quickstart.cn.md @@ -1,5 +1,5 @@ --- -title: Quickstart +title: 快速开始 keywords: hudi, quickstart sidebar: mydoc_sidebar toc: true @@ -55,7 +55,7 @@ df.write.format("org.apache.hudi"). `mode(Overwrite)`覆盖并重新创建数据集(如果已经存在)。 您可以检查在`/tmp/hudi_cow_table/<region>/<country>/<city>/`下生成的数据。我们提供了一个记录键 -([schema](#sample-schema)中的`uuid`),分区字段(`region/county/city`)和组合逻辑(`ts`[schema](#sample-schema)) +([schema](#sample-schema)中的`uuid`),分区字段(`region/county/city`)和组合逻辑([schema](#sample-schema)中的`ts`) 以确保行程记录在每个分区中都是唯一的。更多信息请参阅 [对Hudi中的数据进行建模](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=113709185#Frequentlyaskedquestions(FAQ)-HowdoImodelthedatastoredinHudi?), 有关将数据提取到Hudi中的方法的信息,请参阅[写入Hudi数据集](https://hudi.apache.org/writing_data.html)。 @@ -64,7 +64,7 @@ df.write.format("org.apache.hudi"). ## 查询数据 {#query} -将数据文件加载到数据帧中。 +将数据文件加载到DataFrame中。 ```Scala val roViewDF = spark. @@ -82,7 +82,7 @@ spark.sql("select _hoodie_commit_time, _hoodie_record_key, _hoodie_partition_pat ## 更新数据 {#updates} -这类似于插入新数据。使用数据生成器生成对现有行程的更新,加载到数据帧并将数据帧写入hudi数据集。 +这类似于插入新数据。使用数据生成器生成对现有行程的更新,加载到DataFrame中并将DataFrame写入hudi数据集。 ```Scala val updates = convertToStringList(dataGen.generateUpdates(10)) @@ -151,7 +151,7 @@ spark.sql("select `_hoodie_commit_time`, fare, begin_lon, begin_lat, ts from hu ## 从这开始下一步? -您也可以通过[自己构建hudi](https://github.com/apache/incubator-hudi#building-apache-hudi-from-source)来快速入门, +您也可以通过[自己构建hudi](https://github.com/apache/incubator-hudi#building-apache-hudi-from-source)来快速开始, 并在spark-shell命令中使用`--jars <path to hudi_code>/packaging/hudi-spark-bundle/target/hudi-spark-bundle-*.*.*-SNAPSHOT.jar`, 而不是`--packages org.apache.hudi:hudi-spark-bundle:0.5.0-incubating` diff --git a/docs/use_cases.cn.md b/docs/use_cases.cn.md index a5432a6..d6147c5 100644 --- a/docs/use_cases.cn.md +++ b/docs/use_cases.cn.md @@ -1,5 +1,5 @@ --- -title: Use Cases +title: 使用案例 keywords: hudi, data ingestion, etl, real time, use cases sidebar: mydoc_sidebar permalink: use_cases.html @@ -16,7 +16,7 @@ summary: "以下是一些使用Hudi的示例,说明了加快处理速度和提 尽管这些数据对整个组织来说是最有价值的,但不幸的是,在大多数(如果不是全部)Hadoop部署中都使用零散的方式解决,即使用多个不同的摄取工具。 -对于RDBMS摄取,Hudi提供__通过更新插入达到更快加载__,而不是昂贵且低效的批量加载。例如,您可以读取MySQL BIN日志或[Sqoop增量导入](https://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_incremental_imports)并将其应用于 +对于RDBMS摄取,Hudi提供 __通过更新插入达到更快加载__,而不是昂贵且低效的批量加载。例如,您可以读取MySQL BIN日志或[Sqoop增量导入](https://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html#_incremental_imports)并将其应用于 DFS上的等效Hudi表。这比[批量合并任务](https://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1770457)及[复杂的手工合并工作流](http://hortonworks.com/blog/four-step-strategy-incremental-updates-hive/)更快/更有效率。 @@ -24,9 +24,9 @@ DFS上的等效Hudi表。这比[批量合并任务](https://sqoop.apache.org/doc 毫无疑问, __全量加载不可行__,如果摄取需要跟上较高的更新量,那么则需要更有效的方法。 -即使对于像[Kafka](kafka.apache.org)这样的不可变数据源,Hudi也可以 __强制在HDFS上使用最小文件大小__, 这采取了综合方式解决[Hadoop中的一个老问题](https://blog.cloudera.com/blog/2009/02/the-small-files-problem/)来改善NameNode的健康状况。这对事件流来说更为重要,因为它通常具有较高容量(例如:点击流),如果管理不当,可能会对Hadoop群集造成严重损害。 +即使对于像[Kafka](kafka.apache.org)这样的不可变数据源,Hudi也可以 __强制在HDFS上使用最小文件大小__, 这采取了综合方式解决[HDFS小文件问题](https://blog.cloudera.com/blog/2009/02/the-small-files-problem/)来改善NameNode的健康状况。这对事件流来说更为重要,因为它通常具有较高容量(例如:点击流),如果管理不当,可能会对Hadoop集群造成严重损害。 -在所有源中,通过`提交`这一概念,Hudi增加了以原子方式向消费者发布新数据的功能,这种功能十分必要。 +在所有源中,通过`commits`这一概念,Hudi增加了以原子方式向消费者发布新数据的功能,这种功能十分必要。 ## 近实时分析 @@ -34,8 +34,8 @@ DFS上的等效Hudi表。这比[批量合并任务](https://sqoop.apache.org/doc 这对于较小规模的数据量来说绝对是完美的([相比于这样安装Hadoop](https://blog.twitter.com/2015/hadoop-filesystem-at-twitter)),这种情况需要在亚秒级响应查询,例如系统监控或交互式实时分析。 但是,由于Hadoop上的数据太陈旧了,通常这些系统会被滥用于非交互式查询,这导致利用率不足和硬件/许可证成本的浪费。 -另一方面,Hadoop上的交互式SQL解决方案(如Presto和SparkSQL)表现出色,在__几秒钟内完成查询__。 -通过将__数据新鲜度提高到几分钟__,Hudi可以提供一个更有效的替代方案,并支持存储在DFS中的__数量级更大的数据集__的实时分析。 +另一方面,Hadoop上的交互式SQL解决方案(如Presto和SparkSQL)表现出色,在 __几秒钟内完成查询__。 +通过将 __数据新鲜度提高到几分钟__,Hudi可以提供一个更有效的替代方案,并支持存储在DFS中的 __数量级更大的数据集__ 的实时分析。 此外,Hudi没有外部依赖(如专用于实时分析的HBase集群),因此可以在更新的分析上实现更快的分析,而不会增加操作开销。 @@ -61,8 +61,8 @@ Hudi通过以单个记录为粒度的方式(而不是文件夹/分区)从上游 ## DFS的数据分发 -Hadoop的一个流行用例是压缩数据,然后将其分发回在线服务存储层,以供应用程序使用。 +一个常用场景是先在Hadoop上处理数据,然后将其分发回在线服务存储层,以供应用程序使用。 例如,一个Spark管道可以[确定Hadoop上的紧急制动事件](https://eng.uber.com/telematics/)并将它们加载到服务存储层(如ElasticSearch)中,供Uber应用程序使用以增加安全驾驶。这种用例中,通常架构会在Hadoop和服务存储之间引入`队列`,以防止目标服务存储被压垮。 -对于队列的选择,一种流行的选择是Kafka,这个模型经常导致__在DFS上存储相同数据的冗余(用于计算结果的离线分析)和Kafka(用于分发)__ +对于队列的选择,一种流行的选择是Kafka,这个模型经常导致 __在DFS上存储相同数据的冗余(用于计算结果的离线分析)和Kafka(用于分发)__ -通过将每次运行的Spark管道更新插入的输出转换为Hudi数据集,Hudi可以再次有效地解决这个问题,然后可以以增量方式获取尾部数据(就像Kafka主题一样)然后写入服务存储层。 +通过将每次运行的Spark管道更新插入的输出转换为Hudi数据集,Hudi可以再次有效地解决这个问题,然后可以以增量方式获取尾部数据(就像Kafka topic一样)然后写入服务存储层。 diff --git a/docs/writing_data.cn.md b/docs/writing_data.cn.md index 81428ce..9be04b0 100644 --- a/docs/writing_data.cn.md +++ b/docs/writing_data.cn.md @@ -138,8 +138,8 @@ Usage: <main class> [options] ## Datasource Writer -`hudi-spark`模块提供了DataSource API,可以将任何数据帧写入(也可以读取)到Hudi数据集中。 -以下是在指定需要使用的字段名称的之后,如何插入更新数据帧的方法,这些字段包括 +`hudi-spark`模块提供了DataSource API,可以将任何DataFrame写入(也可以读取)到Hudi数据集中。 +以下是在指定需要使用的字段名称的之后,如何插入更新DataFrame的方法,这些字段包括 `recordKey => _row_key`、`partitionPath => partition`和`precombineKey => timestamp` ```Java @@ -193,7 +193,7 @@ Usage: <main class> [options] Hudi附带了一个内置的`org.apache.hudi.EmptyHoodieRecordPayload`类,它就是实现了这一功能。 ```Java - deleteDF // 仅包含要删除的记录的数据帧 + deleteDF // 仅包含要删除的记录的DataFrame .write().format("org.apache.hudi") .option(...) // 根据设置需要添加HUDI参数,例如记录键、分区路径和其他参数 // 指定record_key,partition_key,precombine_fieldkey和常规参数