Hadoop实战第一篇

前言:
   都说现在是草根为尊的时代,近年来hadoop及spark技术在国内越来越流行。而且渐渐现成为企业的新宠。在DT时代全面来临之前,能提早接触大数据的技术必然能先人一步。本文作为Hadoop系列的第一篇,将HDFS和MapRed两个技术核心用2个实例简单实现一些,希望能供hadoop入门的朋友些许参考。

--HDFS

 1 import java.io.IOException;
 2
 3 import org.apache.hadoop.conf.Configuration;
 4 import org.apache.hadoop.fs.FileSystem;
 5 import org.apache.hadoop.fs.Path;
 6
 7 public class  HDFStest {
 8     final static String P_IN="hdfs://hadoop0:9000/data";
 9     final static String P_F1="hdfs://hadoop0:9000/a.txt";
10
11
12     public static void main(String[] args) throws IOException {
13
14         FileSystem fileSystem = FileSystem.get(new Configuration());
15         System.out.println("make diretory:");
16         fileSystem.mkdirs(new Path(P_IN));
17         System.out.println("judgy if exist ‘File‘:");
18         System.out.println(fileSystem.exists(new Path(P_F1)));
19
20     }
21
22 }

--MapReduce

实现文本单词出现次数的统计:

 1 import org.apache.hadoop.conf.Configuration;
 2 import org.apache.hadoop.fs.Path;
 3 import org.apache.hadoop.io.LongWritable;
 4 import org.apache.hadoop.io.Text;
 5 import org.apache.hadoop.mapreduce.Job;
 6 import org.apache.hadoop.mapreduce.Mapper;
 7 import org.apache.hadoop.mapreduce.Reducer;
 8 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
 9 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
10
11
12
13 public class WC {
14
15     static String INPUT="hdfs://hadoop0:9000/hello";
16     static String OUTPUT="hdfs://hadoop0:9000/output";
17
18     public static void main(String[] args) throws Exception{
19
20
21         Job job = new Job(new Configuration(),WC.class.getSimpleName());
22         job.setMapperClass(MyMapper.class);
23         job.setReducerClass(MyReducer.class);
24         job.setJarByClass(WC.class);
25         //输出结果格式
26         job.setMapOutputKeyClass(Text.class);;
27         job.setMapOutputValueClass(LongWritable.class);
28         job.setOutputKeyClass(Text.class);
29         job.setOutputValueClass(LongWritable.class);
30         //路径设置
31         FileInputFormat.setInputPaths(job, INPUT);
32         FileOutputFormat.setOutputPath(job, new Path(OUTPUT));
33         //waitfor
34         job.waitForCompletion(true);
35
36     }
37
38     static class MyMapper extends Mapper<LongWritable, Text,Text,LongWritable >{
39
40         @Override
41         protected void map(LongWritable key, Text value,
42                 Mapper<LongWritable, Text, Text, LongWritable>.Context context)
43                 throws IOException, InterruptedException {
44
45             String[] words = value.toString().split(" ");
46             for(String word:words){
47                 context.write(new Text(word), new LongWritable(1));
48             }
49         }
50     }
51     static class MyReducer extends Reducer<Text, LongWritable, Text, LongWritable>{
52
53         @Override
54         protected void reduce(Text arg0, Iterable<LongWritable> arg1,Context context)
55                 throws IOException, InterruptedException {
56
57             Long sum=0L;
58             for(LongWritable c:arg1){
59                 sum += c.get();
60             }
61             context.write(arg0,new LongWritable(sum));
62         }
63     }
64 }

以上代码相对简单,map读取到一行“Text”之后通过字符串切分函数split()得到各个单词,每个单词出现一次计数为1:

Reduce操作,实际就是一个集合元素累计的操作:

时间: 2024-08-09 06:35:15

Hadoop实战第一篇的相关文章

elasticsearch技术实战——第一篇(使用篇)

为了提高搜索命中率和准确率,改善现有羸弱的搜索功能,公司决定搭建全文搜索服务.由于之前缺乏全文搜索使用经验,经过一番折腾,终于不负期望按期上线.总结了一些使用心得体会,希望对大家有所帮助.计划分三篇: 第一篇(使用篇),主要讲解基本概念.分词.数据同步.搜索API. 第二篇(配置及参数调优篇),主要围绕JVM参数调优.异常排查.安全性等方面讲解. 第三篇(倒排索引原理篇),知其然知其所以然. 一.技术选型 说到全文搜索大家肯定会想到solr和elasticsearch(以下简称es),两者都是基

Android实战第一篇——时钟+闹钟+计时器+秒表

学习了快一学期的Android了,之前的知识点都是零散的学习的,只有当我们真正的去把他们用起来的时候才会发现难点,自己才会独立尝试去解决某个问题.接下来是我的一个简单的多功能时钟的小实战(视频资源http://pan.baidu.com/s/1i5AT4nN 密码:jq7g) 具体的效果可以参考手机上的时钟. 首先我们来看一看布局文件layout_main.xml 我们总的来看一下整个布局 <FrameLayout xmlns:android="http://schemas.android

基于SSM的POI导入导出Excel实战第一篇-SSM框架的整合

业务背景:在JavaWeb应用开发中,经常需要将应用系统中某些业务数据导出到Excel中,又或者需要将这些业务数据先收集到Excel然后一键导入到系统 业务需求:如何用Java实现导入导出Excel 需求分析:目前流行的Java导入导出Excel的框架有POI跟JXL,这两者的优缺点在这里我就不作比较了,感兴趣的童鞋可以自行搜索了解一下; 技术选型:从本文开始,我将分享一下如何基于SSM框架+POI实现Java应用导入导出Excel,数据库采用mysql5.6,应用服务器采用tomcat7 工具

Linux实战第一篇:Centos6.9/RHEL6.9详细安装攻略(LVM)

个人笔记分享(在线阅读): http://note.youdao.com/noteshare?id=bb2ad6216bff8cddaa3e360c76392c9b PDF版本下载 http://down.51cto.com/data/2321269

Shell实战第一篇:自动批量创建用户并配置保存自定义密码

个人笔记分享(在线阅读):http://note.youdao.com/noteshare?id=c4ee31bdcef0d28ec525bed113c93763&sub=CFE5180F8455421E9D5252FEC98AB1ED 原文地址:http://blog.51cto.com/6575793/2072687

OSPF协议项目实战讲解(可跟做)-第一篇

OSPF协议项目实战讲解-第一篇 1.要求按照下列标准配置一个OSPF网络2.配置一个IP网络,实验逻辑图如图,IP地址见拓扑图3.路由协议采用OSPF,进程ID为1 ,RID为loopback0地址4.R1/R2/R3相连的三个站点链路OSPF网络类型配置成广播型,其中R1路由器做为永久性DR 5.按照图示配置OSPF区域,其中R2/R3/R4之间的区域要配置成完全末梢区域6.R6为新并入的站点,由于来不及布线施工而暂时并到R5这个站点上,所在区域为AREA 56,配置使得所有网络可达(采用p

Hadoop实战视频教程完整版 完整的Hadoop大数据视频教程

分享一套迪伦老师的完整的Hadoop实战视频教程,教程从学习Hadoop需要的数据库.Java和Linux基础讲起,非常适合零基础的学员,课程最后结合了实战项目演练,理论结合实战,深入浅出,绝对是当前最为完整.实战的Hadoop教程. <Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点.十大目标)> 课程讲师:迪伦 课程分类:大数据 适合人群:初级 课时数量:230课时 用到技术:部署Hadoop集群 涉及项目:京东商城.百度.阿里巴巴 咨询QQ:1337192913(小公子)

升级版:深入浅出Hadoop实战开发(云存储、MapReduce、HBase实战微博、Hive应用、Storm应用)

      Hadoop是一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上.而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序

剖析Elasticsearch集群系列第一篇 Elasticsearch的存储模型和读写操作

剖析Elasticsearch集群系列涵盖了当今最流行的分布式搜索引擎Elasticsearch的底层架构和原型实例. 本文是这个系列的第一篇,在本文中,我们将讨论的Elasticsearch的底层存储模型及CRUD(创建.读取.更新和删除)操作的工作原理. Elasticsearch是当今最流行的分布式搜索引擎,GitHub. SalesforceIQ.Netflix等公司将其用于全文检索和分析应用.在Insight,我们用到了Elasticsearch的诸多不同功能,比如: 全文检索 比如找