flume 获取文件路径

如何获取文件路径?

 

修改job 文件 新增header名称

然后编写自定义拦截器代码如下

/**
     * 拦截source发送到通道channel中的消息
     *
     * @param event 接收过滤的event
     * @return event    根据业务处理后的event
     */
    @Override
    public Event intercept(Event event) {
        Map<String, String> map = event.getHeaders();
        String filename = map.get("fileName");
        System.out.println(filename);
        // 获取事件对象中的字节数据
        byte[] arr = event.getBody();
        byte[] bytes = new byte[0];
        String s=null;
        try {
             s= guessEncoding(arr);
            if (!"UTF-8".equals(s)){
                bytes = getUTF8BytesFromGBKString(new String(arr,"GBK")+"&"+filename);
                event.setBody(bytes);
            }else{
                event.setBody((new String(arr,"UTF-8")+"&"+filename).getBytes());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return event;
    }

 

posted @ 2021-01-08 16:08  JXiao1994  阅读(327)  评论(0编辑  收藏  举报