MapR设置

本文档提供了有关如何在MapR群集上为YARN执行准备Flink的说明

以下说明假定MapR版本为5.2.0。它们将指导您能够开始在YARN作业提交Flink或向MapR群集提交会话。

为了在MapR上运行Flink,需要使用MapR自己的Hadoop和Zookeeper分发构建Flink。只需使用Maven使用项目根目录中的以下命令构建Flink:

  1. mvn clean install -DskipTests -Pvendor-repos,mapr \
  2. -Dhadoop.version=2.7.0-mapr-1607 \
  3. -Dzookeeper.version=3.4.5-mapr-1604

vendor-repos构建配置文件添加MAPR的存储库来构建,使MAPR的Hadoop /zookeeper的依赖可以获取。mapr建造轮廓另外解析MAPR和Flink之间的一些相关性的冲突,以及确保用于在群集节点上本地MAPR库。必须激活两个配置文件。

默认情况下,mapr配置文件使用MapR版本5.2.0的Hadoop / Zookeeper依赖关系构建,因此您无需显式覆盖hadoop.versionzookeeper.version属性。对于不同的MapR版本,只需将这些属性覆盖为适当的值即可。每个MapR版本的相应Hadoop / Zookeeper发行版都可以在MapR文档中找到,例如此处

作业提交客户端设置

向MapR提交Flink作业的客户还需要使用以下设置进行准备。

确保拾取MapR的JAAS配置文件以避免登录失败:

  1. export JVM_ARGS=-Djava.security.auth.login.config=/opt/mapr/conf/mapr.login.conf

确保该yarn.nodemanager.resource.cpu-vcores属性设置为yarn-site.xml

  1. <!-- in /opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/yarn-site.xml -->
  2. <configuration>
  3. ...
  4. <property>
  5. <name>yarn.nodemanager.resource.cpu-vcores</name>
  6. <value>...</value>
  7. </property>
  8. ...
  9. </configuration>

还记得将YARN_CONF_DIRHADOOP_CONF_DIR环境变量设置为所在的路径yarn-site.xml

  1. export YARN_CONF_DIR=/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/
  2. export HADOOP_CONF_DIR=/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/

确保在类路径中拾取MapR本机库:

  1. export FLINK_CLASSPATH=/opt/mapr/lib/*

如果您将在YARN会话中启动Flink yarn-session.sh,则还需要以下内容:

  1. export CC_CLASSPATH=/opt/mapr/lib/*

注意:在Flink 1.2.0中,Flink用于YARN执行的Kerberos身份验证存在一个错误,禁止它与MapR Security一起使用。请升级到更高版本的Flink版本,以便将Flink与安全的MapR群集一起使用。有关详细信息,请参阅FLINK-5949

Flink的Kerberos身份验证独立于MapR的安全身份验证通过上述构建过程和环境变量设置,Flink不需要任何其他配置即可使用MapR Security。

用户只需使用MapR的maprlogin身份验证实用程序登录即可未获取MapR登录凭据的用户将无法提交Flink作业,并出现以下错误:

  1. java.lang.Exception: unable to establish the security context
  2. Caused by: o.a.f.r.security.modules.SecurityModule$SecurityInstallException: Unable to set the Hadoop login user
  3. Caused by: java.io.IOException: failure to login: Unable to obtain MapR credentials