码迷,mamicode.com
首页 > Windows程序 > 详细

用Nifi 从web api 取数据到HDFS

时间:2016-06-15 23:55:25      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:

1. 全景图

技术分享
 

2. 用ExecuteScript生成动态日期参数

 
为了只生成一个flowfile:
技术分享
 
Groovy 代码:

import org.apache.commons.io.IOUtils
import java.nio.charset.*
import java.text.SimpleDateFormat;
import java.lang.StringBuilder;
import java.util.Calendar;

def flowFile = session.create()

flowFile = session.write(flowFile, {inputStream, outputStream ->
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < 9500; i++) {
cal.add(Calendar.DATE, -1);
sb.append(sdf.format(cal.getTime()) + "\n" );
}

//println(sb);

outputStream.write(sb.toString().getBytes(StandardCharsets.UTF_8))
} as StreamCallback)

//flowFile = session.putAttribute(flowFile, ‘filename‘, ‘get_date‘)
session.transfer(flowFile, REL_SUCCESS)

 

3. 用SplitText生成每行一个的日期

Line Split Count    1

 

4. 用ExtractText 取到日期参数

技术分享

 

5. 用UpdateAttribute生成url及filename

技术分享

这里一定要设置filename,不然,所有的文件名都一样,最后只能成功插入一个记录到HDFS。

 

6.  用InvokeHttp获取数据

技术分享

技术分享

 

7. 用PutHDFS把数据插入到HDFS

技术分享

注意这里的Directory 要加上/, 不然就插入到user/root/nifi下了,而不是files下在的nifi了。

用Nifi 从web api 取数据到HDFS

标签:

原文地址:http://www.cnblogs.com/fengwenit/p/5589397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!