企业网站更新频率易语言做网站图片下载
企业网站更新频率,易语言做网站图片下载,大兴网站建设价格,网站seo化自己可以吗最近在研究如何为Hadoop开启基于Kerberos的安全配置#xff0c;经过千辛万苦配置好后本以为到了见证奇迹的时刻#xff0c;但是卡在NodeManger无法启动#xff0c;折磨的死去活来。经历了各种百度、google后依然无果#xff0c;最终还是乖乖的回来细读Hadoop官方配置文档经过千辛万苦配置好后本以为到了见证奇迹的时刻但是卡在NodeManger无法启动折磨的死去活来。经历了各种百度、google后依然无果最终还是乖乖的回来细读Hadoop官方配置文档竟然发现关于LinuxContainerExecutor配置的非常详细的讲解。为了不让学习的成果随记忆消散因此在这儿总结并分享出来。理解ContainerExectorHadoop集群启用安全后NodeManager无法启动的根本原因是LinuxContainerExecutor没有正确配置。ContainerExecutor 被Yarn框架使用它定义了容器如何装载和控制。在Hadoop YARN中包含两种ContainerExecutor:DefaultContainerExecutor: 这是默认的执行器由Yarn用来管理容器执行。在该模式下容器进程使用和NodeManager相同的Unix用户运行容器。LinuxContainerExecutor 这个执行器仅在GNU/Linux上支持。在安全状态启用时这个执行器以提交应用的YARN用户运行容器在非安全状态时以特定用户执行(默认是nobody)。在安全状态启用时这个执行器需要所有的用户账户在容器启动的集群节点被创建。它会用到包含在Hadoop部署包中的setuid可执行工具NodeManager使用这个工具来启动和kill掉容器。为了最大化安全executor安装限制本地文件和被容器使用目录(如共享对象jars中间文件日志文件等等)的权限和用户/组所属权。特别需要注意的一点正是因为此除了应用所有者和NodeManager外不该有其它用户能访问任何上述本地文件或目录编译可执行文件如果你的环境中安装了maven那可以参照官方帮助中的编译方法1mvn package -Dcontainer-executor.conf.dir/etc/参数-Dcontainer-executor.conf.dir传入的路径应该是集群节点上放置配置文件的路径保证setuid可执行文件能定位到。可执行文件应该安装在$HADOOP_YARN_HOME/bin目录下。为了方便大家使用我在这里提供编译好的container-executor配置文件路径指向/etc/container-executor.cfg container-executor拷贝到Hadoop bin 目录下。1[roothadoop01 bin]# cp container-executor /home/hadoop/hadoop-2.8/bin/分配可执行文件权限12[roothadoop01 bin]# chown root:hadoop /home/hadoop/hadoop-2.8/bin/container-executor[roothadoop01 bin]# chmod 6050 /home/hadoop/hadoop-2.8/bin/container-executor这里的组hadoop是NodeManager Unix用户(yarn)所属的组并且组内没有非hadoop相关的用户以防安全风险。这个组名需要在yarn-site.xml和container-executor.cfg中都配置配置yarn-site.xml123456789101112yarn.nodemanager.container-executor.classorg.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutoryarn.nodemanager.linux-container-executor.path/home/hadoop/hadoop-2.8/bin/container-executoryarn.nodemanager.linux-container-executor.grouphadoop分配本地目录权限LinuxTaskController还需要在container-executor.cfg中配置的yarn.nodemanager.local-dirs和yarn.nodemanager.log-dirs路径被赋予755权限。设置如下123456[roothadoop01 ~]# mkdir -p /hadoop/yarn/local[roothadoop01 ~]# mkdir -p /hadoop/yarn/log[roothadoop01 yarn]# chown yarn:hadoop /hadoop/yarn/local[roothadoop01 yarn]# chown yarn:hadoop /hadoop/yarn/log[roothadoop01 yarn]# chmod 755 /hadoop/yarn/local[roothadoop01 yarn]# chmod 755 /hadoop/yarn/log配置container-executor.cfg文件为配置文件添加配置项123456[roothadoop01 ~]# vim /home/hadoop/hadoop-2.8/etc/hadoop/container-executor.cfgyarn.nodemanager.local-dirs/hadoop/yarn/localyarn.nodemanager.log-dirs/hadoop/yarn/logyarn.nodemanager.linux-container-executor.grouphadoopbanned.usershdfs,yarn,mapred,binmin.user.id1000拷贝配置文件配置文件container-executor.cfg需要拷贝到之前编译可执行文件中指定的/etc/目录下以便能被可执行文件访问到。1[roothadoop01 ~]# cp /home/hadoop/hadoop-2.8/etc/hadoop/container-executor.cfg /etc/为配置文件设置权属并分配权限配置文件目录需要运行在root用户hadoop组并且赋予0400权限配置如下12[roothadoop01 ~]# chown root:hadoop /etc/container-executor.cfg[roothadoop01 ~]# chmod 400 /etc/container-executor.cfg必须如此配置因为可执行程序逻辑会检测这些权限否则NodeManager会启动失败。最后再总结下所有涉及目录的权限和权属分配表以保证你做对了任意一项都要严格遵守配置。FilesystemPathUser:GroupPermissionslocalcontainer-executorroot:hadoop--Sr-s--*localconf/container-executor.cfgroot:hadoopr-------*localyarn.nodemanager.local-dirsyarn:hadoopdrwxr-xr-xlocalyarn.nodemanager.log-dirsyarn:hadoopdrwxr-xr-x配置文件的坑经过了上述审慎配置后检查了无数遍依然无法运行nodeManager,始终报如下错误Caused by: org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationException: ExitCodeException exitCode24: Can’t get group information for hadoop - Success.问题的原因是hadoop编码不够严谨如果.cfg中group组配置中存在空格就会始终报检测不到组的错误。这个解决方案借鉴了secfree的博客文章写的非常赞完美解决这个问题。检测错误运行12[roothadoop01 bin]# ./container-executor --checksetupCant get group information for hadoop - Success修复错误12345678[roothadoop02 etc]# chmod 777 container-executor.cfg[roothadoop02 etc]# vim container-executor.cfgyarn.nodemanager.local-dirs/hadoop/yarn/localyarn.nodemanager.log-dirs/hadoop/yarn/logyarn.nodemanager.linux-container-executor.grouphadoopbanned.usershdfs,yarn,mapred,binmin.user.id1000[roothadoop02 etc]# chmod 0400 container-executor.cfg如果参照上述修改后发现又有新错误出现例如123[roothadoop03 etc]# /home/hadoop/hadoop-2.8/bin/container-executor --checksetupconfiguration tokenization failedCant get configured value for yarn.nodemanager.linux-container-executor.group.需要再回头检查.cfg文件的配置可以通过cat命令检查1234567[roothadoop03 etc]# cat container-executor.cfgyarn.nodemanager.local-dirs/hadoop/yarn/localyarn.nodemanager.log-dirs/hadoop/yarn/logyarn.nodemanager.linux-container-executor.grouphadoopbanned.usershdfs,yarn,mapred,binmin.user.id1000~可以看到在.cfg文件的末尾多了一个“~”号这是导致错误的原因重新修订.cfg文件确保最后看到的结果如下123456[roothadoop03 etc]# cat container-executor.cfgyarn.nodemanager.local-dirs/hadoop/yarn/localyarn.nodemanager.log-dirs/hadoop/yarn/logyarn.nodemanager.linux-container-executor.grouphadoopbanned.usershdfs,yarn,mapred,binmin.user.id1000参考资料
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89482.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!