7.kerberos认证部分:分两块,一部分是MR客户端提交任务给MR服务端,一部分是MR任务在container上运行时业务逻辑和各个组件交互;MR框架会将第一部分的认证结果传递到第二部分。所以只认证一次就可以了(即获取到第一部分认证所得到的token就可以了)。
一个实际调试过程:
1.采用原理是JAVA的远程调试机制;
2.在map任务/reduce任务(跑在一个container上的进程)启动时,添加jar远程调试的命令:-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
具体添加操作方式:找map任务/reduce任务启动时的输入参数,具体可见mapreduce-site.xml文件中的“mapreduce.map.java.opts”和“mapreduce.reduce.java.opts”。
3.当通过IDE提交MR任务后,YARN 启动各个container实例,container实例启动时读到上述远程调试命令,则监听本机8000端口;
4.在IDE上,选择MR任务的实现类,通过配置远程调试信息,执行debug。一个完整的操作如下:
(1)通过debug执行main方法,定义MR任务,提交MR任务;
(2)根据YARN WEB UI界面,查看map任务/reduce任务的container信息,确定其所在节点IP;
(3)选在map/reduce类(选择这个类可更方便些)上,以远程调试方式,选择(2)上所确定的IP信息;
然后选择和确定,再执行“Debug”即可。