首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop运营化

Hadoop运营化
EN

Stack Overflow用户
提问于 2012-05-20 22:57:25
回答 2查看 157关注 0票数 0

我已经准备好hadoop实现的所有部分-我有一个正在运行的集群,以及一个将活动数据推送到HDFS的客户端编写器。我有一个关于接下来会发生什么的问题。我知道我们对已转储到HDFS中的数据运行作业,但我的问题是:

1)首先,我正在向流中写入并定期刷新-我通过HDFS java客户端中的一个线程写入文件,直到我杀死我的服务器时才会看到文件出现在HDFS中。如果我写入足够的数据来填充一个数据块,它会自动出现在文件系统中吗?如何才能使文件准备好由M/R作业处理?

2)我们什么时候运行M/R作业?正如我所说的,我是通过HDFS java客户端中的一个线程来写文件的,而这个线程在文件上有一个写锁。我应该在什么时候释放该文件?这种交互是如何工作的?在什么情况下,对这些数据运行作业是“安全的”,当作业完成后,HDFS中的数据会发生什么情况?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-21 13:58:17

我会尽量避免将数据插入hadoop和处理结果之间的“硬”同步。我的意思是,在许多情况下,必须异步处理是最实际的:

a)一个进程将文件放入HDFS。在许多情况下,按日期的-building目录结构非常有用。

b)对除最新数据以外的所有数据运行作业。

您可以对最新的数据运行作业,但应用程序不应转发到最新的结果。在任何情况下,工作通常需要几分钟以上的时间

另外一点- append不是100%主流的东西,而是为HBase构建的高级东西。如果你建立你的应用程序没有使用它-你将能够与其他的DFS,如亚马逊s3,这不支持追加。我们在本地文件系统中收集数据,然后当文件足够大时将其复制到HDFS。

票数 1
EN

Stack Overflow用户

发布于 2012-05-20 22:59:30

  1. 写入数据以填充数据块时,您将看到文件在system
  2. M/R中提交给计划程序,计划程序负责根据数据运行该文件,我们无需担心
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10674502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档