大数据-三

来源:互联网 发布:淘宝客采集群怎么盈利 编辑:程序博客网 时间:2024/05/16 07:28

  传统的文本分析使用的linux中的awk文本分析,但是只是单线程的,要使速度变快,就要考虑多线程,如果考虑到每年的数据量大小不一样,并导致线程长短将会不一致,所以将其数据分成若干相同大小的块,然后进行分布式计算,最后合并处理,统计结果;从这里变引入了mapreduce;

maper函数过程将数据进行清洗,除去无关的数据,提取有关的有价值数据,生成基本的map类型的数据,然后再进行统计和整理归类等,形成完整有价值数据组,再通过reducer函数过程进行具体的分析处理,得到最终结果集;

map函数,reduce函数,和job相关代码来运行作业map函数由maper类来实现表示,后者声明一个map()虚方法;mapper类是一个泛型类,有四个形参,分别指map函数的输入键,输入值,输出键,输出值的类型;也就是输入一个map(key,value),然后输出一个处理过的map(key,value)比如输入一个(序号,长文本)输出一个(名称,数值);hadoop本身提供了一套可优化的网络序列化传输的基本类型;而不是直接使用java的内嵌类型;这些类型都在org.apache.hadoop.io中;

reduce也有四个形参,map的输出类型要和reduce的输入类型匹配;

job对象制定作业规范,我们可以用它来控制整个作业的运行;要在hadoop集群上运行作业时,要将代码打成jar包,不必明确指明jar文件类型;在job对象中的setJarByClass()方法中传递一个类即可,hadoop利用这个类来查找包含他的jar包进而找到相关的jar包;还要再job对象中指定输入输出路径;

 

原创粉丝点击