blob: a783e5bba064cd2a42e6c72ea94eedc5a9f08b52 [file] [log] [blame]
<!DOCTYPE html>
<html lang="zh" dir=ZgotmplZ>
<head>
<link rel="stylesheet" href="/bootstrap/css/bootstrap.min.css">
<script src="/bootstrap/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" type="text/css" href="/font-awesome/css/font-awesome.min.css">
<script src="/js/anchor.min.js"></script>
<script src="/js/flink.js"></script>
<link rel="canonical" href="https://flink.apache.org/zh/how-to-contribute/getting-help/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="获取帮助 # 有问题吗? # Apache Flink 社区每天都会回答许多用户的问题。你可以从历史存档中搜索答案和建议,也可以联系社区寻求帮助和指导。
用户邮件列表 # 许多 Flink 用户、贡献者和提交者都订阅了 Flink 的用户邮件列表。用户邮件列表是一个寻求帮助的好地方。
在发送邮件到邮件列表之前,你可以搜索以下网站的邮件列表存档,从中找到你关注问题的相关讨论。
Apache Pony 邮件存档 如果你想发送到邮件列表,你需要:
发送电子邮件至 user-subscribe@flink.apache.org 来订阅邮件列表 通过回复确认邮件来确认订阅 发送你的电子邮件到 user@flink.apache.org. 请注意,如果你没有订阅邮件列表,你将不会收到邮件的回复。
Slack # 你可以通过 此链接 加入 Apache Flink 社区专属的 Slack 工作空间。 在成功加入后,不要忘记在 #introductions 频道介绍你自己。 Slack 规定每个邀请链接最多可邀请 100 人,如果遇到上述链接失效的情况,请联系 Dev 邮件列表。 所有已经加入社区 Slack 空间的成员同样可以邀请新成员加入。
在 Slack 空间交流时,请遵守以下规则:
保持尊重 - 这是最重要的规则 所有重要的决定和结论 必须在邮件列表中有所体现。 &ldquo;没有发生在邮件列表上的事情,即视为没有发生。&rdquo; - Apache 准则 使用 Slack 消息列(Thread 使频道(Channel)中的多组同时进行的对话保持有序。 Use either #pyflink (for all Python Flink questions) or #troubleshooting (for all other Flink questions).">
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="获取帮助" />
<meta property="og:description" content="获取帮助 # 有问题吗? # Apache Flink 社区每天都会回答许多用户的问题。你可以从历史存档中搜索答案和建议,也可以联系社区寻求帮助和指导。
用户邮件列表 # 许多 Flink 用户、贡献者和提交者都订阅了 Flink 的用户邮件列表。用户邮件列表是一个寻求帮助的好地方。
在发送邮件到邮件列表之前,你可以搜索以下网站的邮件列表存档,从中找到你关注问题的相关讨论。
Apache Pony 邮件存档 如果你想发送到邮件列表,你需要:
发送电子邮件至 user-subscribe@flink.apache.org 来订阅邮件列表 通过回复确认邮件来确认订阅 发送你的电子邮件到 user@flink.apache.org. 请注意,如果你没有订阅邮件列表,你将不会收到邮件的回复。
Slack # 你可以通过 此链接 加入 Apache Flink 社区专属的 Slack 工作空间。 在成功加入后,不要忘记在 #introductions 频道介绍你自己。 Slack 规定每个邀请链接最多可邀请 100 人,如果遇到上述链接失效的情况,请联系 Dev 邮件列表。 所有已经加入社区 Slack 空间的成员同样可以邀请新成员加入。
在 Slack 空间交流时,请遵守以下规则:
保持尊重 - 这是最重要的规则 所有重要的决定和结论 必须在邮件列表中有所体现。 &ldquo;没有发生在邮件列表上的事情,即视为没有发生。&rdquo; - Apache 准则 使用 Slack 消息列(Thread 使频道(Channel)中的多组同时进行的对话保持有序。 Use either #pyflink (for all Python Flink questions) or #troubleshooting (for all other Flink questions)." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://flink.apache.org/zh/how-to-contribute/getting-help/" /><meta property="article:section" content="how-to-contribute" />
<title>获取帮助 | Apache Flink</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="alternate" hreflang="en" href="https://flink.apache.org/how-to-contribute/getting-help/" title="Getting Help">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
<script defer src="/zh.search.min.4fed8368d7410bf2cb8853d136d796128533433358adcd85133b7d8014ce76ef.js" integrity="sha256-T&#43;2DaNdBC/LLiFPRNteWEoUzQzNYrc2FEzt9gBTOdu8="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->
<meta name="generator" content="Hugo 0.124.1">
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['disableCookies']);
_paq.push(["setDomains", ["*.flink.apache.org","*.nightlies.apache.org/flink"]]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
</head>
<body dir=ZgotmplZ>
<header>
<nav class="navbar navbar-expand-xl">
<div class="container-fluid">
<a class="navbar-brand" href="/zh/">
<img src="/img/logo/png/100/flink_squirrel_100_color.png" alt="Apache Flink" height="47" width="47" class="d-inline-block align-text-middle">
<span>Apache Flink</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<i class="fa fa-bars navbar-toggler-icon"></i>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">About</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="/zh/what-is-flink/flink-architecture/">架构</a>
</li>
<li>
<a class="dropdown-item" href="/zh/what-is-flink/flink-applications/">应用</a>
</li>
<li>
<a class="dropdown-item" href="/zh/what-is-flink/flink-operations/">运维</a>
</li>
<li>
<a class="dropdown-item" href="/zh/what-is-flink/use-cases/">应用场景</a>
</li>
<li>
<a class="dropdown-item" href="/zh/what-is-flink/powered-by/">Flink 用户</a>
</li>
<li>
<a class="dropdown-item" href="/zh/what-is-flink/roadmap/">开发计划</a>
</li>
<li>
<a class="dropdown-item" href="/zh/what-is-flink/community/">社区 & 项目信息</a>
</li>
<li>
<a class="dropdown-item" href="/zh/what-is-flink/security/">Security</a>
</li>
<li>
<a class="dropdown-item" href="/zh/what-is-flink/special-thanks/">特殊致谢</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">教程</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/try-flink/local_installation/">With Flink<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/docs/try-flink-kubernetes-operator/quick-start/">With Flink Kubernetes Operator<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable/docs/get-started/introduction/">With Flink CDC<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/docs/try-flink-ml/quick-start/">With Flink ML<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/getting-started/project-setup.html">With Flink Stateful Functions<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/docs/learn-flink/overview/">Training Course<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Documentation</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-stable/">Flink 1.19 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-docs-master/">Flink Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-stable/">Kubernetes Operator 1.8 (latest)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main">Kubernetes Operator Main (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-stable">CDC 3.0 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-cdc-docs-master">CDC Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-stable/">ML 2.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-ml-docs-master">ML Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-stable/">Stateful Functions 3.3 (stable)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
<li>
<a class="dropdown-item" href="https://nightlies.apache.org/flink/flink-statefun-docs-master">Stateful Functions Master (snapshot)<i class="link fa fa-external-link title" aria-hidden="true"></i>
</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">How to Contribute</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="/zh/how-to-contribute/overview/">如何参与贡献</a>
</li>
<li>
<a class="dropdown-item" href="/zh/how-to-contribute/contribute-code/">贡献代码</a>
</li>
<li>
<a class="dropdown-item" href="/zh/how-to-contribute/reviewing-prs/">审核 Pull Request</a>
</li>
<li>
<a class="dropdown-item" href="/zh/how-to-contribute/code-style-and-quality-preamble/">代码样式与质量指南</a>
</li>
<li>
<a class="dropdown-item" href="/zh/how-to-contribute/contribute-documentation/">贡献文档</a>
</li>
<li>
<a class="dropdown-item" href="/zh/how-to-contribute/documentation-style-guide/">文档样式指南</a>
</li>
<li>
<a class="dropdown-item" href="/zh/how-to-contribute/improve-website/">贡献网站</a>
</li>
<li>
<a class="dropdown-item" href="/zh/how-to-contribute/getting-help/">获取帮助</a>
</li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link" href="/zh/downloads/">Downloads</a>
</li>
</ul>
<div class="book-search">
<div class="book-search-spinner hidden">
<i class="fa fa-refresh fa-spin"></i>
</div>
<form class="search-bar d-flex" onsubmit="return false;"su>
<input type="text" id="book-search-input" placeholder="搜索" aria-label="搜索" maxlength="64" data-hotkeys="s/">
<i class="fa fa-search search"></i>
<i class="fa fa-circle-o-notch fa-spin spinner"></i>
</form>
<div class="book-search-spinner hidden"></div>
<ul id="book-search-results"></ul>
</div>
</div>
</div>
</nav>
<div class="navbar-clearfix"></div>
</header>
<main class="flex">
<section class="container book-page">
<article class="markdown"><!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<h1 id="获取帮助">
获取帮助
<a class="anchor" href="#%e8%8e%b7%e5%8f%96%e5%b8%ae%e5%8a%a9">#</a>
</h1>
<h2 id="有问题吗">
有问题吗?
<a class="anchor" href="#%e6%9c%89%e9%97%ae%e9%a2%98%e5%90%97">#</a>
</h2>
<p>Apache Flink 社区每天都会回答许多用户的问题。你可以从历史存档中搜索答案和建议,也可以联系社区寻求帮助和指导。</p>
<h3 id="用户邮件列表">
用户邮件列表
<a class="anchor" href="#%e7%94%a8%e6%88%b7%e9%82%ae%e4%bb%b6%e5%88%97%e8%a1%a8">#</a>
</h3>
<p>许多 Flink 用户、贡献者和提交者都订阅了 Flink 的用户邮件列表。用户邮件列表是一个寻求帮助的好地方。</p>
<p>在发送邮件到邮件列表之前,你可以搜索以下网站的邮件列表存档,从中找到你关注问题的相关讨论。</p>
<ul>
<li><a href="https://lists.apache.org/list.html?user@flink.apache.org">Apache Pony 邮件存档</a></li>
</ul>
<p>如果你想发送到邮件列表,你需要:</p>
<ol>
<li>发送电子邮件至 <code>user-subscribe@flink.apache.org</code> 来订阅邮件列表</li>
<li>通过回复确认邮件来确认订阅</li>
<li>发送你的电子邮件到 <code>user@flink.apache.org</code>.</li>
</ol>
<p>请注意,如果你没有订阅邮件列表,你将不会收到邮件的回复。</p>
<h3 id="slack">
Slack
<a class="anchor" href="#slack">#</a>
</h3>
<p>你可以通过 <a href="https://join.slack.com/t/apache-flink/shared_invite/zt-1t4khgllz-Fm1CnXzdBbUchBz4HzJCAg">此链接</a> 加入 Apache Flink 社区专属的 Slack 工作空间。
在成功加入后,不要忘记在 #introductions 频道介绍你自己。
Slack 规定每个邀请链接最多可邀请 100 人,如果遇到上述链接失效的情况,请联系 <a href="/zh/what-is-flink/community/#mailing-lists">Dev 邮件列表</a>
所有已经加入社区 Slack 空间的成员同样可以邀请新成员加入。</p>
<p>在 Slack 空间交流时,请遵守以下规则:</p>
<ul>
<li><strong>保持尊重</strong> - 这是最重要的规则</li>
<li>所有重要的决定和结论 <strong>必须在邮件列表中有所体现。</strong>
&ldquo;没有发生在邮件列表上的事情,即视为没有发生。&rdquo; - <a href="http://theapacheway.com/on-list/">Apache 准则</a></li>
<li>使用 <strong>Slack 消息列(Thread</strong> 使频道(Channel)中的多组同时进行的对话保持有序。</li>
<li>Use either <a href="https://apache-flink.slack.com/archives/C03G7LJTS2G">#pyflink</a> (for all Python Flink questions) or <a href="https://apache-flink.slack.com/archives/C03G7LJTS2G">#troubleshooting</a> (for all other Flink questions).</li>
<li><strong>不要通过私信(Direct Message</strong> 要求他人答疑、指派 Jira、审查 PR。这些事务应遵从自愿原则。</li>
</ul>
<h3 id="stack-overflow">
Stack Overflow
<a class="anchor" href="#stack-overflow">#</a>
</h3>
<p>Flink 社区的许多成员都活跃在 <a href="https://stackoverflow.com">Stack Overflow</a>。你可以在这里搜索问题和答案,或者使用 <a href="https://stackoverflow.com/questions/tagged/apache-flink">[apache-flink]</a> 标签来发布你的问题。</p>
<h2 id="发现-bug">
发现 Bug?
<a class="anchor" href="#%e5%8f%91%e7%8e%b0-bug">#</a>
</h2>
<p>如果你发现一个意外行为可能是由 Bug 导致的,你可以在 <a href="/zh/what-is-flink/community/#issue-%e8%bf%bd%e8%b8%aa">Flink&rsquo;s JIRA</a> 中搜索已经上报的 Bug 或者发布该 Bug。</p>
<p>如果你不确定意外行为的发生是否由 Bug 引起的,请发送问题到 <a href="/zh/what-is-flink/community/#user-mailing-list">用户邮件列表</a></p>
<h2 id="收到错误信息">
收到错误信息?
<a class="anchor" href="#%e6%94%b6%e5%88%b0%e9%94%99%e8%af%af%e4%bf%a1%e6%81%af">#</a>
</h2>
<p>找到导致错误的原因通常是比较困难的。在下文中,我们列出了最常见的错误消息并解释了如何处理它们。</p>
<h3 id="我有一个-notserializableexception-异常">
我有一个 NotSerializableException 异常。
<a class="anchor" href="#%e6%88%91%e6%9c%89%e4%b8%80%e4%b8%aa-notserializableexception-%e5%bc%82%e5%b8%b8">#</a>
</h3>
<p>Flink 使用 Java 序列化来分发应用程序逻辑(你实现的函数和操作,以及程序配置等)的副本到并行的工作进程。 因此,传递给 API 的所有函数都必须是可序列化的,见 <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html">java.io.Serializable</a> 定义。</p>
<p>如果你使用的函数是匿名内部类,请考虑以下事项:</p>
<ul>
<li>为函数构建独立的类或静态内部类。</li>
<li>使用 Java 8 lambda 函数。</li>
</ul>
<p>如果函数已经是静态类,则在创建该类的实例时会检查该类的字段。其中很可能包含不可序列化类型的字段。</p>
<ul>
<li>在 Java 中,使用 RichFunction 并且在 <code>open()</code> 方法中初始化有问题的字段。</li>
<li>在 Scala 中,你通常可以简单地使用 “lazy val” 声明来推迟初始化,直到分布式执行发生。这可能是一个较小的性能成本。你当然也可以在 Scala 中使用 <code>RichFunction</code></li>
</ul>
<h3 id="使用-scala-api我收到有关隐式值和证据参数的错误">
使用 Scala API,我收到有关隐式值和证据参数的错误。
<a class="anchor" href="#%e4%bd%bf%e7%94%a8-scala-api%e6%88%91%e6%94%b6%e5%88%b0%e6%9c%89%e5%85%b3%e9%9a%90%e5%bc%8f%e5%80%bc%e5%92%8c%e8%af%81%e6%8d%ae%e5%8f%82%e6%95%b0%e7%9a%84%e9%94%99%e8%af%af">#</a>
</h3>
<p>此错误意味着无法提供类型信息的隐式值。确保在你的代码中存在 <code>import org.apache.flink.streaming.api.scala._</code> (DataStream API) 或
<code>import org.apache.flink.api.scala._</code> (DataSet API) 语句。</p>
<p>如果在接受泛型参数的函数或类中使用 Flink 操作,则必须为参数提供 TypeInformation 类型参数。 这可以通过使用上下文绑定来实现:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-scala" data-lang="scala"><span class="line"><span class="cl"><span class="k">def</span> <span class="n">myFunction</span><span class="o">[</span><span class="kt">T:</span> <span class="kt">TypeInformation</span><span class="o">](</span><span class="n">input</span><span class="k">:</span> <span class="kt">DataSet</span><span class="o">[</span><span class="kt">T</span><span class="o">])</span><span class="k">:</span> <span class="kt">DataSet</span><span class="o">[</span><span class="kt">Seq</span><span class="o">[</span><span class="kt">T</span><span class="o">]]</span> <span class="k">=</span> <span class="o">{</span>
</span></span><span class="line"><span class="cl"> <span class="n">input</span><span class="o">.</span><span class="n">reduceGroup</span><span class="o">(</span> <span class="n">i</span> <span class="k">=&gt;</span> <span class="n">i</span><span class="o">.</span><span class="n">toSeq</span> <span class="o">)</span>
</span></span><span class="line"><span class="cl"><span class="o">}</span>
</span></span></code></pre></div><p>请参阅 <a href="//nightlies.apache.org/flink//dev/types_serialization.html">类型提取和序列化</a> 深入讨论 Flink 如何处理类型。</p>
<h3 id="我看到一个-classcastexception-x-cannot-be-cast-to-x">
我看到一个 ClassCastException: X cannot be cast to X.
<a class="anchor" href="#%e6%88%91%e7%9c%8b%e5%88%b0%e4%b8%80%e4%b8%aa-classcastexception-x-cannot-be-cast-to-x">#</a>
</h3>
<p>当你看到 <code>com.foo.X</code> cannot be cast to <code>com.foo.X</code> ( 或者 cannot be assigned to <code>com.foo.X</code>), 样式的异常时,这意味着
<code>com.foo.X</code> 类的多个版本已经由不同的类加载器加载,并且尝试相互赋值。</p>
<p>原因可能是:</p>
<ul>
<li>
<p>通过 <code>child-first</code> 的类加载方式实现类复制。这是一种预期的机制,该机制允许用户使用相同依赖的不同版本。然而,如果这些类的不同副本在
Flink 的核心代码和用户应用程序代码之间移动,则可能发生这种异常。为了验证这个原因,请尝试在配置中设置 <code>classloader.resolve-order: parent-first</code><br>
如果这可以使错误消失,请写信到邮件列表以检查是否可能是 Bug。</p>
</li>
<li>
<p>从不同的执行中尝试缓存类,例如使用像 Guava 的 Interners 或 Avro 的 Schema 等通用工具进行缓存操作。尝试不使用 Interners,或减少 interner/cache 的使用范围,以确保每当新任务开始执行时都会创建新的缓存。</p>
</li>
</ul>
<h3 id="我有一个-abstractmethoderror-或-nosuchfielderror-错误">
我有一个 AbstractMethodError 或 NoSuchFieldError 错误。
<a class="anchor" href="#%e6%88%91%e6%9c%89%e4%b8%80%e4%b8%aa-abstractmethoderror-%e6%88%96-nosuchfielderror-%e9%94%99%e8%af%af">#</a>
</h3>
<p>此类错误通常表示混淆了某些依赖的版本。这意味着在执行期间加载了不同版本的依赖项(库),而不是编译代码的版本。</p>
<p>从 Flink 1.4.0 开始,在默认激活 <code>child-first</code> 类加载方式的情况下,相比 Flink core 所使用的依赖或类路径中的其他依赖(例如来自 Hadoop )而言,应用程序 JAR 文件中的依赖更可能带有不同的版本。</p>
<p>如果你在 Flink 1.4 以上的版本中看到这些问题,则可能是属于以下某种情况:</p>
<ul>
<li>你的程序代码中存在依赖项版本冲突,确保所有依赖项版本都一致。</li>
<li>你与一个 Flink 不能支持 <code>child-first</code> 类加载的库发生了冲突。目前会产生这种情况的有 Scala 标准库类、Flink 自己的类、日志 API 和所有的 Hadoop 核心类。</li>
</ul>
<h3 id="尽管事件正在持续发送我的-datastream-程序还是没有输出">
尽管事件正在持续发送,我的 DataStream 程序还是没有输出。
<a class="anchor" href="#%e5%b0%bd%e7%ae%a1%e4%ba%8b%e4%bb%b6%e6%ad%a3%e5%9c%a8%e6%8c%81%e7%bb%ad%e5%8f%91%e9%80%81%e6%88%91%e7%9a%84-datastream-%e7%a8%8b%e5%ba%8f%e8%bf%98%e6%98%af%e6%b2%a1%e6%9c%89%e8%be%93%e5%87%ba">#</a>
</h3>
<p>如果你的 DataStream 程序使用了 事件时间,那么请检查你的 Watermark 是否已经更新。如果没有产生 Watermark, 事件时间窗口可能永远不会触发,程序将不会产生任何结果。</p>
<p>你可以在 Flink 的 Web UI(Watermark 部分)中查看 Watermark 是否正在更新。</p>
<h3 id="我看到了一个-insufficient-number-of-network-buffers-的异常报告">
我看到了一个 “Insufficient number of network buffers” 的异常报告。
<a class="anchor" href="#%e6%88%91%e7%9c%8b%e5%88%b0%e4%ba%86%e4%b8%80%e4%b8%aa-insufficient-number-of-network-buffers-%e7%9a%84%e5%bc%82%e5%b8%b8%e6%8a%a5%e5%91%8a">#</a>
</h3>
<p>如果你用非常高的并行度运行 Flink 程序,则可能需要增加网络缓冲区的大小。</p>
<p>默认情况下,Flink 占用 JVM 堆的 10% 作为网络缓冲区的大小,最小为64MB,最大为1GB。 你可以通过
<code>taskmanager.network.memory.fraction</code>, <code>taskmanager.network.memory.min</code>
<code>taskmanager.network.memory.max</code> 参数调整这些值。</p>
<p>详情请参考 <a href="https://nightlies.apache.org/flink/flink-docs-stable/docs/deployment/">配置参考</a></p>
<h3 id="我的-job-因为-hdfshadoop-代码的各种异常失败了我该怎么办">
我的 Job 因为 HDFS/Hadoop 代码的各种异常失败了,我该怎么办?
<a class="anchor" href="#%e6%88%91%e7%9a%84-job-%e5%9b%a0%e4%b8%ba-hdfshadoop-%e4%bb%a3%e7%a0%81%e7%9a%84%e5%90%84%e7%a7%8d%e5%bc%82%e5%b8%b8%e5%a4%b1%e8%b4%a5%e4%ba%86%e6%88%91%e8%af%a5%e6%80%8e%e4%b9%88%e5%8a%9e">#</a>
</h3>
<p>最常见的原因是 Flink 的类路径中的 Hadoop 版本与你要访问的 Hadoop 集群(HDFS / YARN)版本不同。</p>
<p>解决这个问题的最简单方法是选择一个不含 Hadoop 的 Flink 版本,并通过 export 的方式设置 Hadoop 路径和类路径即可。</p>
</article>
<div class="edit-this-page">
<p>
<a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Translation+Specifications">Want to contribute translation?</a>
</p>
<p>
<a href="//github.com/apache/flink-web/edit/asf-site/docs/content.zh/how-to-contribute/getting-help.md">
Edit This Page<i class="fa fa-edit fa-fw"></i>
</a>
</p>
</div>
</section>
<aside class="book-toc">
<nav id="TableOfContents"><h3>On This Page <a href="javascript:void(0)" class="toc" onclick="collapseToc()"><i class="fa fa-times" aria-hidden="true"></i></a></h3>
<ul>
<li><a href="#获取帮助">获取帮助</a>
<ul>
<li><a href="#有问题吗">有问题吗?</a>
<ul>
<li><a href="#用户邮件列表">用户邮件列表</a></li>
<li><a href="#slack">Slack</a></li>
<li><a href="#stack-overflow">Stack Overflow</a></li>
</ul>
</li>
<li><a href="#发现-bug">发现 Bug?</a></li>
<li><a href="#收到错误信息">收到错误信息?</a>
<ul>
<li><a href="#我有一个-notserializableexception-异常">我有一个 NotSerializableException 异常。</a></li>
<li><a href="#使用-scala-api我收到有关隐式值和证据参数的错误">使用 Scala API,我收到有关隐式值和证据参数的错误。</a></li>
<li><a href="#我看到一个-classcastexception-x-cannot-be-cast-to-x">我看到一个 ClassCastException: X cannot be cast to X.</a></li>
<li><a href="#我有一个-abstractmethoderror-或-nosuchfielderror-错误">我有一个 AbstractMethodError 或 NoSuchFieldError 错误。</a></li>
<li><a href="#尽管事件正在持续发送我的-datastream-程序还是没有输出">尽管事件正在持续发送,我的 DataStream 程序还是没有输出。</a></li>
<li><a href="#我看到了一个-insufficient-number-of-network-buffers-的异常报告">我看到了一个 “Insufficient number of network buffers” 的异常报告。</a></li>
<li><a href="#我的-job-因为-hdfshadoop-代码的各种异常失败了我该怎么办">我的 Job 因为 HDFS/Hadoop 代码的各种异常失败了,我该怎么办?</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</aside>
<aside class="expand-toc hidden">
<a class="toc" onclick="expandToc()" href="javascript:void(0)">
<i class="fa fa-bars" aria-hidden="true"></i>
</a>
</aside>
</main>
<footer>
<div class="separator"></div>
<div class="panels">
<div class="wrapper">
<div class="panel">
<ul>
<li>
<a href="https://flink-packages.org/">flink-packages.org</a>
</li>
<li>
<a href="https://www.apache.org/">Apache Software Foundation</a>
</li>
<li>
<a href="https://www.apache.org/licenses/">License</a>
</li>
<li>
<a href="/how-to-contribute/getting-help/">
<i class="fa fa-globe" aria-hidden="true"></i>&nbsp;English
</a>
</li>
</ul>
</div>
<div class="panel">
<ul>
<li>
<a href="https://www.apache.org/security/">Security</a>
</li>
<li>
<a href="https://www.apache.org/foundation/sponsorship.html">Donate</a>
</li>
<li>
<a href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
</ul>
</div>
<div class="panel icons">
<div>
<a href="/posts">
<div class="icon flink-blog-icon"></div>
<span>Flink blog</span>
</a>
</div>
<div>
<a href="https://github.com/apache/flink">
<div class="icon flink-github-icon"></div>
<span>Github</span>
</a>
</div>
<div>
<a href="https://twitter.com/apacheflink">
<div class="icon flink-twitter-icon"></div>
<span>Twitter</span>
</a>
</div>
</div>
</div>
</div>
<hr/>
<div class="container disclaimer">
<p>The contents of this website are © 2024 Apache Software Foundation under the terms of the Apache License v2. Apache Flink, Flink, and the Flink logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
</div>
</footer>
</body>
</html>