Hadoop之客户端获取NameNode集群信息
来源:互联网 发布:手机查价格软件 编辑:程序博客网 时间:2024/06/13 07:31
初学Hadoop,就以此篇作为开始吧,记录下自己学习过程的点点滴滴。
环境描述:master和slaves在同一局域网,并且只有master可以连接外网,在master上同时部署一个web应用。
问题需求:在web程序里可以输出Map和Reduce的日志信息。
具体解决思路附上代码:
@RequestMapping({"/task/log/"}) public String showTaskLog(Model model,String jobStr,HttpServletResponse response) throws Exception{ JobID jobId = JobID.forName(jobStr); JobClient tracker = HadoopUtils.getJobClient();
//这里以输出Reduce的日志为主,没有的情况下则输出Map的 TaskReport[] mtrs = tracker.getMapTaskReports(jobId); TaskReport[] rtrs = tracker.getReduceTaskReports(jobId); TaskReport[] trs = ArrayUtils.isEmpty(rtrs) ? mtrs : rtrs; String taskId = ""; try{ taskId = trs[trs.length - 1].getTaskID().toString(); }catch(Exception e){ return null; }
//task.log.url写在properties文件中:task.log.url=http://master:50030/taskdetails.jsp?tipid=%s
//下面用到一个Html工具,获取到所有日志的超链接href属性值,用于由master发出一个URL请求到具体的DataNode读取日志 Parser parser = new Parser(String.format(ConstantUtils.getConstant("task.log.url"), taskId)); NodeList nodeList = parser.extractAllNodesThatMatch(new NodeFilter() {private static final long serialVersionUID = -2388460449128537715L;@Overridepublic boolean accept(Node n) {if(n instanceof LinkTag)return true;return false;}}); String logUrl = ""; for(int i = 0;i < nodeList.size();i++){ LinkTag tag = (LinkTag) nodeList.elementAt(i); if("All".equalsIgnoreCase(tag.getStringText())){ logUrl = tag.extractLink(); break; } } //获取日志信息 URL url = new URL(logUrl); BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); while(reader.ready()){ out.println(reader.readLine()); } reader.close(); out.flush(); out.close(); return null; }
- Hadoop之客户端获取NameNode集群信息
- hadoop集群管理之 SecondaryNameNode和NameNode
- hadoop集群管理之SecondaryNameNode与NameNode
- Hadoop集群NameNode强制切换
- Hadoop集群监控:jmx信息获取
- hadoop源码之NameNode
- Hadoop之Secondary NameNode
- Hadoop之namenode-yellowcong
- 获取集群信息之Redis
- hadoop集群环境部署之chukwa客户端
- Hadoop获取namenode的命令
- 【转】Hadoop集群的NameNode的备份
- hadoop集群格式化namenode出现异常
- Hadoop获得集群NameNode和DataNode状态
- hadoop集群启动后没有启动namenode
- hadoop集群两个namenode无法正常启动
- hadoop集群namenode启动不了问题
- 第123讲:Hadoop集群管理之Namenode目录元数据结构详解学习笔记
- wp7资源调用
- StringBuffer
- Formatter
- css插入背景图片
- PHP的类自动加载机制
- Hadoop之客户端获取NameNode集群信息
- android双屏显示的一些修改与尝试
- 收集的关于C++中CString,int,string,char*,string之间的转换
- eclipse中tomcat的配置
- android简易双屏支持
- android监听文件和目录的创建删除移动等事件
- 云计算,社交网络,移动互联网
- java类的向上转型
- Attribute value request.getAttribute("keyWord") is quoted with " which must be escaped when used wi