Haoop实操3-筛选出社交网站特定日期的用户,以序列化格式输出

news/2024/5/20 22:12:45/文章来源:https://blog.csdn.net/qq_25948717/article/details/82498053

1.待处理的数据文件格式(部分截图):

生成上图文件的Python源码:https://blog.csdn.net/qq_25948717/article/details/82492962

2.启动hadoop,我是在node40节点上启动的伪分布式集群,在node100节点下开发的,

  node40下:start-all.sh

  node100下:打开Eclipse  配置好HDFS,据可以开发了:https://blog.csdn.net/qq_25948717/article/details/82347076

 jar包:HADOOP_HOME/share/hadoop下的common,hdfs,mapreduce2,yarn文件里面的jar(不用进入子文件里)

            都添加到项目中。

本例只需要Mapper类即可。

注意文件数据要上传到hdfs系统上,程序从hdfs上读取,再输出到hdfs。

3.源代码:以序列化格式输出,体现在org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;

                 job.setInputFormatClass(TextInputFormat.class);
                 job.setOutputFormatClass(SequenceFileOutputFormat.class);

              

                在这里设置 文件路径:

              

  

package hadoop.yexin.mapreduce;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.SequenceFileOutputFormat;


import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;

public class SelectDataBySpecialDate {
    
    public static String HDFS_PATH = "hdfs://node40:9000";
    //static FileSystem fileSystem = null;
    //static Configuration conf = null;
    
    public static class SelectDatamapper extends Mapper<LongWritable,Text,Text,Text>{
        @Override
        protected void map(LongWritable key,Text value,Mapper<LongWritable, Text, Text, Text>.Context context)
                throws IOException,InterruptedException{
            String[] val = value.toString().split(",");
            //filter the date
            if(val[1].contains("2018-02") || val[1].contains("2018-12")){
                context.write(new Text(val[0]), new Text(val[1]));
            }
        }
        
        public static void main(String[] args) throws IOException,InterruptedException, URISyntaxException {
            Configuration conf = new Configuration();
            //FileSystem.get(new URI(HDFS_PATH),conf);
            
            Job job = Job.getInstance(conf,"SelectData");
            job.setJarByClass(SelectDataBySpecialDate.class);
            job.setMapperClass(SelectDatamapper.class);
            job.setOutputKeyClass(Text.class);
            job.setOutputValueClass(Text.class);
            
            job.setInputFormatClass(TextInputFormat.class);
            job.setOutputFormatClass(SequenceFileOutputFormat.class);
            
            job.setNumReduceTasks(0);
            
            FileInputFormat.addInputPath(job,new Path(args[0]));
            FileSystem.get(conf).delete(new Path(args[0]),true);
            FileOutputFormat.setOutputPath(job,new Path(args[1]));
            
            try {
                System.err.println(job.waitForCompletion(true)?-1:1);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    }

}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_803764.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

码云最新出炉:亿万流量网站高性能框架设计方案,优化度达到100%

大型网站的设计主要来自庞大的用户&#xff0c;高并发的访问和海量数据&#xff0c;任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户&#xff0c;问题就会变得棘手&#xff0c;例如双十一大型秒杀活动、B2B商城项目实战都会产生一系列的问题&#xff0c;比如&…

码云最新出炉:亿万流量网站高性能框架设计方案,优化度达到100%

大型网站的设计主要来自庞大的用户&#xff0c;高并发的访问和海量数据&#xff0c;任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户&#xff0c;问题就会变得棘手&#xff0c;例如双十一大型秒杀活动、B2B商城项目实战都会产生一系列的问题&#xff0c;比如&…

京东高级工程师开发十年,编写出:“亿级流量网站架构核心技术”

前言&#xff1a; 相信大家都知道&#xff0c;说起亿万流量网站高性框架的设计方案&#xff0c;就能想到关键的两点&#xff0c;那就是高可用和高并发。而要谈对高并发和高可用有多熟悉&#xff0c;京东的大佬们还是有一定发言权&#xff0c;而作为京东高级工程师更是大佬级别…

查找各种jar包下载的网站

点击链接直接跳转到网页&#xff0c;或者手动输入网址&#xff1a;https://mvnrepository.com/ 进入如下页面&#xff1a; 点击上方搜索框输入需要下载的jar 例如需要下载mongodb-driver-3.8.0.jar 在搜索框中输入mongodb-driver即可 点击搜索 后出现如下界面 &#xff1a; …

Java网络编程从入门到精通(3):为什么不能直接通过IP访问网站

在《创建InetAdrress对象的四个静态方法》一文中通过getAllByName得到了www.csdn.net对应的四个IP地址。从理论上说&#xff0c;在IE&#xff08;或其他的Web浏览器&#xff0c;如Firefox)的地址栏中输入这四个IP地址中的任何一个&#xff0c;都可能访问www.csdn.net。如输入ht…

网站如何让用户主动为你增加流量

图说网站如何让上门用户主动为你增加流量&#xff08;一&#xff09; 第一视觉吸引点、动的元素 写本文是因为看了51CTO废总的文章&#xff0c;她写的关于Web1.0和Web2.0从运营角度出发的一系列探讨&#xff0c;写的很好也看好后面的系列&#xff0c;看完以后引起了我的共鸣、思…

推荐20佳国外的脚本下载网站

脚本使网站更加动态和更具交互性&#xff0c;但是写好一个脚本并不是一件容易的工作&#xff0c;因此一些开发者会到网站下载其他人分享的脚本来使用。今天&#xff0c;本文向大家推荐20佳国外的脚本下载网站。1- Hot Scripts 2- Code Canyon 3- User Scripts 4- Scripts 5- Ja…

LINUX下简易网站压力测试--Webbench小记

Webbench是一款小巧实用的网站压力测试工具&#xff0c;它是由 Lionbridge公司开发的。它的标准测试主要有两项内容&#xff1a;每秒钟相应请求数和每秒钟传输数据量。它最多可以模拟3万个并发连接去测试网站的负载能力&#xff0c;最主要的是使用起来很方便。 一、SUSE LINUX下…

最新30个优秀的网站设计作品欣赏

以前的文章中向大家分享了各种类型的网站设计作品&#xff0c;有按风格分类的&#xff0c;例如蓝色、红色、紫色等等&#xff0c;也有按功能分类的&#xff0c;例如旅游、餐饮、购物等等&#xff0c;而有很多精美的网站可能没有被列入合适的类别&#xff0c;为了让大家不错过这…

40款非常漂亮的 HTML5 CSS3 免费网站模板【下篇】

HTML5 作为下一代网页语言&#xff0c;加入中众多更具语义的标签&#xff0c;例如video、audio、section、article、header 和 footer 等。而 CSS3 作为 CSS 的下一代版本&#xff0c;同样引入了很多很酷的属性&#xff0c;以前很多需要 JavaScript 才能实现的复杂效果&#xf…

利用pushState()创建可爬行的,搜索引擎友好的AJAX网站

为什么80%的码农都做不了架构师&#xff1f;>>> 很多人喜欢用AJAX技术搭建网站&#xff0c;因为AJAX能带来更快的速度及更好的用户体验。但同时它给SEOer们带来了一个难题&#xff1a;搜索引擎蜘蛛看不懂AJAX,也就意味着你的网站不能被很好地收录。这个问题也是一直…

大型网站后台构建实践

为什么80%的码农都做不了架构师&#xff1f;>>> 公司接了个新项目&#xff0c;建一个查询网站&#xff0c;同一时间可能会面对1万甚至以上的查询量。 普通PC环境&#xff0c;大约同时支持2000到3000的并发量&#xff0c;当然&#xff0c;我不排除有高手进行后台服务…

web开发设计人员不可不用的在线web工具网站和应用

日期&#xff1a;2013-1-4 来源&#xff1a;GBin1.com 大家可能还记得在过去的文章我们我们曾经介绍我们收集的前端开发人员必备的工具&#xff0c;脚本和资源&#xff0c;在今天的这篇文章中&#xff0c;我们将继续推荐给大家一组我们精挑细选的web开发设计必备的在线工具应用…

ASP.NET网站集成Discuz!NT 3.1论坛详细教程(同步注册和登录)

一、下载Discuz!NT 3.1下载地址&#xff1a;http://nt.discuz.net/showtopic-80777.html二、安装安装图文教程&#xff1a;http://nt.discuz.net/showtopic-128292.html以下内容摘自压缩包里的catalog.htm第 1 步&#xff1a;上传或解压程序包 使用 FTP 软件登录您的服务器&…

cer pem 证书转换_阿里云个人网站免费绑定SSL证书(超详细图文教程)

前言一年前搭建了个人网站&#xff0c;由于个人小程序绑定必须需要绑定HTTPS&#xff0c;于是乎绑定了SSL证书&#xff0c;最近阿里云一直在提醒SSL证书一年到期&#xff0c;提示续费&#xff1b;SSL证书续费几千&#xff0c;于是乎查找方案&#xff0c;阿里云提供个人免费SSL证…

网站迁移时候,发现head内容都到body里了

遇到的问题截图如下&#xff1a; 这个是编码问题&#xff0c;需要把所有涉及的文件保存成UTF-8 without BOM&#xff0c;手动的话可以用notepad 如果网站支持php&#xff0c;这边提供了一个php的脚本(clearBom.php)&#xff0c;可以放在网站的根目录下 如果有权限问题&#xff…

php做网站步骤_SEO网站优化怎么做?超详细的SEO优化步骤和技巧分享

SEO 网站优化的步骤和技巧有哪些&#xff1f;这个问题困扰的都是一些刚入行SEO的新手朋友呢&#xff01;因为每一个对于SEO有自己的理解的老手使用的优化步骤和技巧都不一样&#xff0c;每一个SEOer对于如何优化一个网站的理解都是不同的。我就以一个刚入职的SEO专员为视角&…

XAMPP修改Apache默认网站目录htdocs的图文详解

2019独角兽企业重金招聘Python工程师标准>>> XAMPP&#xff08;ApacheMySQLPHPPERL&#xff09;是一个功能强大的建 XAMPP 软件站集成环境包&#xff0c;大量站长在使用。正确安装好XAMPP后&#xff0c;默认是必须将php程序放到xampp\htdocs文件夹下才能运行&#x…

linux查看服务用户,linux如何查看用户属于哪个组_网站服务器运行维护

linux如何重命名文件_网站服务器运行维护linux重命名文件的方法是&#xff1a;1、首先&#xff0c;执行cd命令&#xff0c;进入到文件所在文件夹&#xff1b;2、然后&#xff0c;继续执行命令【mv修改前文件名 修改后文件名】即可&#xff0c;如【mv old.txt new.txt】。linux查…

CSS关于SEO优化的细节

对于任何一个网站来说名字是SEO的首选&#xff0c;而H1标签是搜索引擎认为页面上最重要的文字部门&#xff0c;所以我们要把网站的名字放在H1中&#xff1b;问题是代表网站名字的通常是一个LOGO图片&#xff0c;而图片对于SEO来说是不友好的。请看下面jquery的首页的logo部分的…