?? ??? ??? ??? ?// build header ?? ??? ??? ??? ?Set<String> keys = new HashSet<String>(); ?? ??? ??? ??? ?sb.append("timet"); ?? ??? ??? ??? ?for (QueryResponseEntity st : responses) { ?? ??? ??? ??? ??? ?sb.append(st.getTags().toString() + "t"); ?? ??? ??? ??? ??? ?keys.addAll(st.getDps().keySet()); ?? ??? ??? ??? ?} ?? ??? ??? ??? ?sb.replace(sb.lastIndexOf("t"),sb.lastIndexOf("t") + 1,"n");
?? ??? ??? ??? ?List<String> keys2 = new ArrayList<String>(keys); ?? ??? ??? ??? ?Collections.sort(keys2); ?? ??? ??? ??? ?// build lines ?? ??? ??? ??? ?Iterator<String> it = keys2.iterator(); ?? ??? ??? ??? ? ?? ??? ??? ??? ?long t; ?? ??? ??? ??? ?while (it.hasNext()) { ?? ??? ??? ??? ??? ?String key = it.next(); // 每一行的时间戳 ?? ??? ??? ??? ??? ? ?? ??? ??? ??? ??? ?t = Long.parseLong(key); ?? ??? ??? ??? ??? ?sb.append(sdf.format(new Date(t*1000)) + "t"); ?? ??? ??? ??? ??? ?for (QueryResponseEntity st : responses) { ?? ??? ??? ??? ??? ??? ?Map<String,String> dps = st.getDps(); ?? ??? ??? ??? ??? ??? ?String value = dps.get(key); ?? ??? ??? ??? ??? ??? ?if (value != null) { ?? ??? ??? ??? ??? ??? ??? ?sb.append(value + "t"); ?? ??? ??? ??? ??? ??? ?} else { ?? ??? ??? ??? ??? ??? ??? ?sb.append(" t"); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?sb.replace(sb.lastIndexOf("t"), ?? ??? ??? ??? ??? ??? ??? ?"n"); ?? ??? ??? ??? ?} ?? ??? ??? ??? ?// sb.toString()
?? ??? ??? ??? ?return new InterpreterResult(InterpreterResult.Code.SUCCESS, ?? ??? ??? ??? ??? ??? ?InterpreterResult.Type.TABLE,sb.toString());
????二 插件部署
????????? ? (1) ?实现类的配置 ?
????????????????? ? 在ZEPPELIN_HOME/conf/zeppelin-site.xml
? ? ? ? ? ? ? ? ?? 
????? ? ? (2) 拷贝OpenTSDB插件包
? ? ? ? ? ? ? ?在ZEPPELIN_HOME/interpreter
? ? ? ? ? ? ? ? 创建文件夹tsd,将所有依赖包拷贝到该文件夹下
? ? ? ? ? ? ? ? ? ?? 
? ? ? ? ? (3) 重启Zeppelin,在Zeppelin管理界面的 Interpreter中添加 TSD配置
???????????????????? 
?
?
三 ?实现效果
? ? 
(编辑:滨州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|