我的项目是消息转发系统(我们通过MSC,HLR和VLR向客户手机发送短信)。实际工作流程是从mysql数据库获取移动号码并将短信转发到特定的移动设备。现在我们发送短信到20L号码(客户)/天。使用c和c ++技术开发。因此,如果通过使用MapReduce概念,我是否可以将这些20L分成两部分并将sms转发到那些分裂的数字是否可行。请指导我这样做,如果我的问题出错,请不要紧张。
问候, Gunasekar
答案 0 :(得分:0)
您必须将数据从mysql数据库移动到HDFS。由于mapreduce适用于HDFS中的数据。所以你可以尝试这些东西。
1.使用sqoop并将数据从mysql数据库带到HDFS。
2.关于并行化,在将数据存储在HDFS中时,框架将拆分文件并根据指定的块大小(默认为64 MB)进行保存。所以你不需要分割20L数字。假设您的文件从mysql登陆到HDFS是200 MB,您的文件将被拆分为4个拆分(3 * 64 + 1 * 8)。将为每个拆分运行一个映射器,因此您将运行4个映射器。一切都可以根据您的需要进行配置。阅读Hadoop权威指南以获取更多详细信息。
答案 1 :(得分:0)
首先了解什么是MapReduce,
这是一种技术,或者可以说我们map
某事物的算法。
例如,对于任何数字,只需保留计数,然后reduce
基于key
。
您可以在任何地方应用相同的逻辑。
Hadoop MapReduce通过改组和排序使事情更简单。
在Hadoop中,有许多使用MapReduce的Frameworks
例如。 sqoop
用于HDFS和RDBMS之间的数据传输。
hive
(如果它使用MapReduce Engine)进行查询