Mac*_*las 5 hadoop mapreduce cassandra
我需要在我的Cassandra集群上执行MapReduce,包括数据局部性,即.每个作业仅查询属于运行作业的本地Casandra节点的行.
关于如何在较旧的Cassandra版本(0.7)上设置Hadoop for MR的教程已经存在.我找不到当前版本的内容.
在这方面,自0.7以来发生了什么变化?
最小化设置需要哪些软件模块(Hadoop + HDFS + ...)?
我需要Cassandra Enterprise吗?
Mac*_*las 14
Cassandra包含一些足以与Hadoop集成的类:
ColumnFamilyInputFormat - 这是Map函数的输入,当使用Cassandra的随机分区器时,它可以读取单个CF中的所有行,或者当与Cassandra的有序分区器一起使用时,它可以读取行范围.Cassandra集群具有环形形式,其中每个环部分负责具体的关键范围.输入格式的主要任务是将Map输入划分为可以并行处理的数据部分 - 这些部分被称为InputSplits.在Cassandra的情况下,这很简单 - 每个环范围都有一个主节点,这意味着输入格式将为InputSplit每个环元素创建一个,并且它将导致一个Map任务.现在我们想在存储数据的同一主机上执行Map任务.每个都InputSplit记住其环部分的IP地址 - 这是负责此特定密钥范围的Cassandra节点的IP地址.JobTracker将创建Map任务表单InputSplits并将其分配给TaskTracker执行.JobTracker将尝试找到TaskTracker哪个具有相同的IP地址InputSplit- 基本上我们必须从TaskTrackerCassandra主机开始,这将保证数据的本地性.ColumnFamilyOutputFormat - 这为Reduce功能配置上下文.这样结果就可以存储在Cassandra中基本上使用提供的Hadoop集成可以在数据所在的主机上执行Map作业,而Reduce函数可以将结果存储回Cassandra - 这就是我所需要的.
执行Map-Reduce有两种可能性:
org.apache.hadoop.mapreduce.Job - 这个类在一个进程中模拟Hadoop.它执行Map-Resuce任务并且不需要任何其他服务/依赖项,它只需要访问临时目录来存储来自shuffle的map job的结果.基本上我们不得不呼吁招聘类几制定者,其中包含的东西像Map任务类名,Reduce任务,输入格式,卡桑德拉连接,当安装结束后job.waitForCompletion(true)已被称为-它开始的map-reduce任务和结果等待.该解决方案可用于快速进入Hadoop世界,并进行测试.它不会扩展(单个进程),它将通过网络获取数据,但仍然 - 它可以开始.| 归档时间: | 
 | 
| 查看次数: | 6183 次 | 
| 最近记录: |