我的项目是短信转发系统(我们通过MSC, HLR和VLR向客户手机发送短信)。实际的工作流程是从mysql数据库中获取手机号码,并将短信转发到特定的手机。现在我们每天发送短信给20L个号码(客户)。使用c和c++技术开发,所以如果使用MapReduce的概念,是否可以将这20L分成两部分,并将短信转发到这些分裂的号码。请指导我这样做,如果我的问题错了,请不要紧张。
问候,Gunasekar
您必须将数据从mysql数据库移动到HDFS。因为mapreduce处理的是HDFS中的数据。所以你可以试试这些
1。使用sqoop将mysql数据库中的数据导入HDFS
2。关于并行化,当在HDFS中存储数据时,框架将根据指定的块大小(默认为64mb)拆分文件并保存它。所以你不需要拆分20L的数量。假设你要从mysql登陆到HDFS的文件是200 MB,你的文件将被分成4个部分(3*64+1*8)。每个分裂将运行一个映射器,因此您将有4个映射器在运行。一切都是可配置的,根据您的需要。
首先了解什么是MapReduce,这是一种技术,也可以说是一种算法,其中我们将某物与另一物进行map
。
e。g一些字到任何数字只是保持计数,然后reduce
是基于key
。同样的逻辑你可以应用在任何地方。
Hadoop MapReduce通过变换和排序使事情变得更简单。
在Hadoop本身有很多使用MapReduce的框架如。sqoop
用于HDFS和RDBMS之间的数据传输。
hive
,内部运行MapReduce(如果使用MapReduce引擎)查询