MapR设置
本文档提供了有关如何在MapR群集上为YARN执行准备Flink的说明。
使用MapR在YARN上运行Flink
以下说明假定MapR版本为5.2.0。它们将指导您能够开始在YARN作业上提交Flink或向MapR群集提交会话。
为MapR构建Flink
为了在MapR上运行Flink,需要使用MapR自己的Hadoop和Zookeeper分发构建Flink。只需使用Maven使用项目根目录中的以下命令构建Flink:
mvn clean install -DskipTests -Pvendor-repos,mapr \
-Dhadoop.version=2.7.0-mapr-1607 \
-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.version
和zookeeper.version
属性。对于不同的MapR版本,只需将这些属性覆盖为适当的值即可。每个MapR版本的相应Hadoop / Zookeeper发行版都可以在MapR文档中找到,例如此处。
作业提交客户端设置
向MapR提交Flink作业的客户还需要使用以下设置进行准备。
确保拾取MapR的JAAS配置文件以避免登录失败:
export JVM_ARGS=-Djava.security.auth.login.config=/opt/mapr/conf/mapr.login.conf
确保该yarn.nodemanager.resource.cpu-vcores
属性设置为yarn-site.xml
:
<!-- in /opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/yarn-site.xml -->
<configuration>
...
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>...</value>
</property>
...
</configuration>
还记得将YARN_CONF_DIR
或HADOOP_CONF_DIR
环境变量设置为所在的路径yarn-site.xml
:
export YARN_CONF_DIR=/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/
export HADOOP_CONF_DIR=/opt/mapr/hadoop/hadoop-2.7.0/etc/hadoop/
确保在类路径中拾取MapR本机库:
export FLINK_CLASSPATH=/opt/mapr/lib/*
如果您将在YARN会话中启动Flink yarn-session.sh
,则还需要以下内容:
export CC_CLASSPATH=/opt/mapr/lib/*
使用安全的MapR群集运行Flink
注意:在Flink 1.2.0中,Flink用于YARN执行的Kerberos身份验证存在一个错误,禁止它与MapR Security一起使用。请升级到更高版本的Flink版本,以便将Flink与安全的MapR群集一起使用。有关详细信息,请参阅FLINK-5949。
Flink的Kerberos身份验证独立于MapR的安全身份验证。通过上述构建过程和环境变量设置,Flink不需要任何其他配置即可使用MapR Security。
用户只需使用MapR的maprlogin
身份验证实用程序登录即可。未获取MapR登录凭据的用户将无法提交Flink作业,并出现以下错误:
java.lang.Exception: unable to establish the security context
Caused by: o.a.f.r.security.modules.SecurityModule$SecurityInstallException: Unable to set the Hadoop login user
Caused by: java.io.IOException: failure to login: Unable to obtain MapR credentials