1.薪资数据集 我们要写一个薪资统计程序,统计数据来自于互联网招聘hadoop岗位的招聘网站,这些数据是按照记录方式存储的,因此非常适合使用 MapReduce 程序来统计. 2.数据格式 我们使用的数据来自互联网招聘网站,其中每一行是一条记录. 下面我们展示一行数据,其中重要的字段被突出显示.该行数据被分割成很多行以突出每个字段,但在实际文件中,这些字段被整合成一行 美团 3-5年经验 # 工作年限 15-30k # 薪资 北京 [够牛就来]hadoop高级工程 3.分析 在这里,map阶段的…
作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3319 1.用自己的话阐明Hadoop平台上HDFS和MapReduce的功能.工作原理和工作过程. HDFS常用功能 1.元数据 2.检查点 3.DataNode功能 HDFS工作原理 1 分布式文件系统,它所管理的文件是被切块存储在若干台datanode服务器上.2 hdfs提供了一个统一的目录树来定位hdfs中的文件,客户端访问文件时只要指定目录树的路径即可,不用…
MapReduce 单词统计案例编程 一.在Linux环境安装Eclipse软件 1.   解压tar包 下载安装包eclipse-jee-kepler-SR1-linux-gtk-x86_64.tar.gz到/opt/software目录下. 解压到/opt/tools目录下: [hadoop@bigdata-senior01 tools]$ tar -zxf /opt/sofeware/eclipse-jee-kepler-SR1-linux-gtk-x86_64.tar.gz -C /op…
[Cloud Computing]Hadoop环境安装.基本命令及MapReduce字数统计程序 1.虚拟机准备 1.1 模板机器配置 1.1.1 主机配置 IP地址:在学校校园网Wifi下连接下 VMWare自己DHCP分配的是 192.168.190.xxx 内存:4G(根据自己机器确定 我需要三台机器 我的内存是16G) 硬盘:50G OS:CentOS7 x64 1.1.2 环境工具安装 ping www.baidu.com先查看能否正常上网 yum install -y epel-re…
气象数据集 我们要写一个气象数据挖掘的程序.气象数据是通过分布在美国各地区的很多气象传感器每隔一小时进行收集,这些数据是半结构化数据且是按照记录方式存储的,因此非常适合使用 MapReduce 程序来统计分析. 数据格式 我们使用的数据来自美国国家气候数据中心.美国国家海洋和大气管理局(简称 NCDC NOAA),这些数据按行并以 ASCII 格式存储,其中每一行是一条记录. 下面我们展示一行采样数据,其中重要的字段被突出显示.该行数据被分割成很多行以突出每个字段,但在实际文件中,这些字段被整合…
紧接着上一篇博文我们学习了MapReduce得到输出格式之后,在这篇博文里,我们将通过一个实战小项目来熟悉一下MultipleOutputs(多输出)格式的用法. 项目需求: 假如这里有一份邮箱数据文件,我们期望统计邮箱出现次数并按照邮箱的类别,将这些邮箱分别输出到不同文件路径下(MultipleOutputs).数据集示例如下所示. wolys@21cn.com zss1984@126.com 294522652@qq.com simulateboy@163.com zhoushigang_1…
需求: 在实战(一)的基础 上,实现自定义分组机制.例如根据手机号的不同,分成不同的省份,然后在不同的reduce上面跑,最后生成的结果分别存在不同的文件中. 对流量原始日志进行流量统计,将不同省份的用户统计结果输出到不同文件. 思考: 需要自定义改造两个机制:1.改造分区的逻辑,自定义一个partitioner,主要是实现如何进行分组. Partitioner的作用是对Mapper产生的中间结果进行分片,以便将同一个分区的数据交给同一个Reducer处理,它直接影响Reducer阶段的负载均衡…
本文地址:http://www.cnblogs.com/archimedes/p/mapreduce-inverted-index.html,转载请注明源地址. 1.倒排索引简介 倒排索引(Inverted index),也常被称为反向索引.置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射.它是文档检索系统中最常用的数据结构. 有两种不同的反向索引形式: 一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表. 一个单词的…
实战项目:查找相同字母组成的字谜 项目需求:一本英文书籍中包含有成千上万个单词或者短语,现在我们要从中找出相同字母组成的所有单词. 数据集和期望结果举例: 思路分析: 1)在Map阶段,对每个word按字母进行升序(或降序)排序生成sortWord,然后输出key/value键值对(sortWord, word). 2)在Reduce阶段,统计出每组根据相同字母组成的所有anahrams(字谜).  项目代码: /** * */ package com.hadoop.train; import…
一.github使用手册 1. 我也用github(2)——关联本地工程到github 2. Git错误non-fast-forward后的冲突解决 3. Git中从远程的分支获取最新的版本到本地 4. Git教程 二.案例:倒排索引 1. 完成功能: 统计一系列文本文件中的每个单词构成的倒排索引. 1)分析:(1)倒排索引主要是用来存储某个单词在一个文档中或者一组文档中出现的位置映射关系,即提供一个根据内容查找文档的方式. (2)加权倒排索引,在确定指定单词到文档位置的映射关系的时候,加入权重…
Hadoop技术内幕中指出Top K算法有两步,一是统计词频,二是找出词频最高的前K个词.在网上找了很多MapReduce的Top K案例,这些案例都只有排序功能,所以自己写了个案例. 这个案例分两个步骤,第一个是就是wordCount案例,二就是排序功能. 一,统计词频 package TopK; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configu…
要统计的文件的文件名为hello hello中的内容如下 hello you hello me 通过MapReduce程序统计出文件中的各个单词出现了几次.(两个单词之间通过tab键进行的分割) import java.io.IOException; import mapreduce.WordCountApp.WordCountMapper.WordCountReducer; import org.apache.hadoop.conf.Configuration; import org.apac…
准备数据access.log 要用到的只有第二个手机号,倒数第三上行流量,倒数第二下行流量. 1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 24681 200 1363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 120.197.40.4 4 0 264 0 200 1363157991076 13926435656…
自定义Mapper实现 import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; import java.io.IOException; /** * KEYIN: Map任务读取数据的key类型,offset,是每行数据起始位置的偏移量,…
MapReduce编程规范: (1)用户编写的程序分成三个部分:Mapper,Reducer,Driver(提交运行mr程序的客户端) (2)Mapper的输入数据是KV对的形式(KV的类型可自定义) (3)Mapper的输出数据是KV对的形式(KV的类型可自定义) (4)Mapper中的业务逻辑写在map()方法中 (5)map()方法(maptask进程)对每一个<K,V>调用一次 (6)Reducer的输入数据类型对应Mapper的输出数据类型,也是KV (7)Reducer的业务逻辑写…
需求: 利用MapReduce程序,实现SQL语句中的join关联查询. 订单数据表order: id date pid amount 1001 20150710 P0001 2 1002 20150710 P0001 3 1002 20150710 P0002 3 1003 20150710 P0003 4 商品信息表product: pid pname category_id price P0001 小米6 1000 2499 P0002 锤子T3 1001 2500 P0003 三星S8…
需求: 处理以下流量数据,第1列是手机号,第7列是上行流量,第8列是下行流量.将手机号一样的用户进行合并,上行流量汇总,下行流量也汇总,并相加求得总流量. 1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 24681 2001363157995052 13826544101 5C-0E-8B-C7-F1-E0:CMCC 120.197.40.4 4 0 264 0…
需求: 以上三个文件,用MapReduce进行处理,最终输出以下格式: hello c.txt-->2 b.txt-->2 a.txt-->3jerry c.txt-->1 b.txt-->3 a.txt-->1tom c.txt-->1 b.txt-->1 a.txt-->2 思考: 我们需要进行两个步骤: 1.就是之前的统计单词个数的练习,只不过现在需要加上文件名而已.得到如下效果 hello-->a.txt 3hello-->b.tx…
1. 项目需求 我们取有一份学生五门课程的期末考试成绩数据,现在我们希望统计每个学生的总成绩和平均成绩. 样本数据如下所示,每行数据的数据格式为:学号.姓名.语文成绩.数学成绩.英语成绩.物理成绩.化学成绩. 19020090040 秦心芯 123 131 100 95 100 19020090006 李磊 99 92 100 90 100 19020090017 唐一建 90 99 100 89 95 19020090031 曾丽丽 100 99 97 79 96 19020090013 罗开…
1.安装jieba库 舍友帮装的,我也不会( ╯□╰ ) 2.上网寻找政府工作报告 3.参照课本三国演义词频统计代码编写 import jieba txt = open("D:\政府工作报告.txt","r",encoding='utf-8').read() words = jieba.lcut(txt) counts = {} for word in words: if len(word) == 1: continue else: counts[word] = c…
接上篇https://www.cnblogs.com/sengzhao666/p/11850849.html 2.数据处理: ·统计最受欢迎的视频/文章的Top10访问次数 (id) ·按照地市统计最受欢迎的Top10课程 (ip) ·按照流量统计最受欢迎的Top10课程 (traffic) 分两步: 统计:排序 初始文件部分样例: 1.192.25.84 2016-11-10-00:01:14 10 54 video 5551 1.194.144.222 2016-11-10-00:01:20…
摘要:hadoop安装完成后,像学习其他语言一样,要开始写一个“hello world!” ,看了一些学习资料,模仿写了个程序.对于一个C#程序员来说,写个java程序,并调用hadoop的包,并跑在linux系统下,是一次新的尝试. hadoop ncdc气象数据: http://down.51cto.com/data/1127100 数据说明: 第15-19个字符是year 第45-50位是温度表示,+表示零上 -表示零下,且温度的值不能是9999,9999表示异常数据 第50位值只能是0.…
1.项目需求 一本英文书籍包含成千上万个单词,现在我们需要在大量的单词中,找出相同字母组成的所有单词 2.数据集 下面是一本英文书籍截取的一部分单词内容(书籍内容是随意写的,主要目的是实现这种需求) 3.分析 1.先看如下图 在上图中,cat.act是相同字母组成的单词,tar.rat也是相同字母组成的单词,bar只有一个,它不显示,因为没有和它是相同字母组成单词 2.基于以上分析,我们通过以下几步完成 1.在Map阶段,对每个word(单词)按字母进行排序生成sortedWord,然后输出ke…
1.准备文件并设置编码格式为UTF-8并上传Linux 2.新建一个Java Project 3.导入jar 4.编写Map()和Reduce() 5.将代码输出成jar 6.在linux中启动hdfs 7.修改两个配置文件 8.在linux中启动yarn 9.运行mapReduce 10.查看运行结果 1. 准备文件并设置编码格式为UTF-8并上传Linux 1)设置编码:首先打开文件点击左上角 文件(F) 点击另存为并将编码(E)设置为UTF-8 然后保存(S)替换的原来的文件 2)用工具将…
应用场景: 用户每天会在网站上产生各种各样的行为,比如浏览网页,下单等,这种行为会被网站记录下来,形成用户行为日志,并存储在hdfs上.格式如下: 17:03:35.012ᄑpageviewᄑ{"device_id":"4405c39e85274857bbef58e013a08859","user_id":"0921528165741295","ip":"61.53.69.195",&q…
需求: Order_0000001,Pdt_01,222.8Order_0000001,Pdt_05,25.8Order_0000002,Pdt_05,325.8Order_0000002,Pdt_03,522.8Order_0000002,Pdt_04,122.4Order_0000003,Pdt_01,222.8 按照订单的编号分组,计算出每组的商品价格最大值. 分析: 我们可以把订单编号当做key,然后按照在reduce端去找出每组的最大值.在这里,我想介绍另外一种方法,顺便介绍Group…
需求: 利用mapReduce实现类似微博中查找共同粉丝的功能.如下: A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O,MG:A,C,D,E,FH:A,C,D,E,OI:A,OJ:B,OK:A,C,DL:D,E,FM:E,F,GO:A,H,I,J 求出哪些人两两之间有共同粉丝,及他俩的共同粉丝都是谁.比如:A,B [C,E] 分析: 在利用MapReduce程序解答之前,我们不妨用单机程序练习一下,思路很简单,可以…
需求: 基于上一道题,我想将结果按照总流量的大小由大到小输出. 思考: 默认mapreduce是对key字符串按照字母进行排序的,而我们想任意排序,只需要把key设成一个类,再对该类写一个compareTo(大于要比较对象返回1,等于返回0,小于返回-1)方法就可以了. 注:这里如果是实现java.lang.Comparable接口,最终报错,还是直接实现WritableComparable吧. FlowBean.java更改如下: package cn.darrenchan.hadoop.mr…
代码管理.版本管理是件老大难的事情,尤其多人开发中的代码冲突.突击功能时面临的 hotfix 等.本文只是简单说说如何将一套代码提交到两个 Git 平台(GitHub.GitEE)上.其他的 Git 操作:如本地 commit.远程 push.pull.开启新分支.分支合并等操作,再后面的文章中都会有操作 —— 每一个功能点我都会开启一个新分支. 1 初始化本地 Git 仓库 1.1 初始化仓库 将本地一个目录初始化为本地 git 仓库的命令是: git init   由于咱的工程是通过 vue…
#coding=utf-8 ''' Created on 2016年8月22日 @author:Tom Gao ''' importre importos importtime """ 目的写一个批量复制svn上的代码到新分支的脚本 思路把想要copy目标文件人工写到a.txt文件里面,用python的文件操作读出文件内容,然后用正则re.sub替换将路径中test的单词替换位trunk单词,最后执行命令svn 的copy命令将所有文件拷贝到新目标路径下,再把替换之后的新生成…