hadoop 超详细入门wordcount

hadoop实现wordcount的三种方法 很多小伙伴在搭建完hadoop集群后,还不太会在上面跑测试程序,作为大数据入门学习的Hello world程序,我总结了三种方法。 第一种:用hadoop上自带的jar包(hadoop-mapreduce-examples-2.7.0.jar)实现 第二种:不用自带的包,我们自己导出JAR包,在集群中运行(3个java源程序,我这里就不提供了) 第三种:在IDE中运行,eclipse怎么连接集群请参考这篇博文:http://blog.youkuaiyun.com/dopamy_busymonkey/article/de 阅读详情

概述

今天博客收到了第一条评论,感觉很赞哦,最近一直在学习hadoop,主要是结合《实战Hadop:开启通向云计算的捷径(刘鹏)》,然后apache官网的doc(还是要以官网为主,虽然是全英文的,但总比那些版本都不对的博客来开得多得多),自己尝试了一下hadoop的hello world之后,有继续尝试了使用docker来模拟多机的集群分布式环境,最后再返回来看hadoop的核心框架hdfs和mapreduce的设计原理时方才恍然大悟,这个东西很厉害!本人在下博客中学习到了很多,本章描述也会借用博客中的一些描述,注明来源如下。(如有不妥,请告知删除)。
http://blog.youkuaiyun.com/zhongwen7710/article/details/39376247

目标

这次博客时,感觉对hadoop的框架已经有了一个基本的认识,大体的知道了如何去操作以及一些基本原理,本文尝试记录下此过程,不仅作为自己的记录同时也与大家分享。
1.安装并完成单机上的hadoop hello world(wordCount被认为是其上的hello world程序)。
2.从数据处理流程和任务调度流程两个方面解析wordcount发生了啥。

hello world hadoop

个人使用hadoop-2.7.3,其他版本在官网上有404的情况,不太清楚什么原因,这个版本暂且可用。以下是基础教程链接:https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/SingleCluster.html

需要软件安ssh java(本人使用自带openjdk-8)
jdk
ssh

下载解压hadoop
wget http://www-us.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.43tar.gz
tar xzfv hadoop-2.7.3.tar.gz

在etc/hadoop/hadoop-env.sh中配置java_home
update-alternatives --config

图1图1

  # set to the root of your Java installation
  export JAVA_HOME=/usr/java/latest(这里设置你自己的Java位置)

设置完成后应该可以使用Hadoop了
bin/hadoop 

按照官网的指令,运行实例代码,可以看到输出结果
$ mkdir input
  $ cp etc/hadoop/*.xml input
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
  $ cat output/*

此处单节点的任务就完成了,这个时候仅仅没有啥调度就是一个节点完成的。下面接着看伪分布。这里我觉得应该是没有涉及到HDFS的,因为都还没有开启hdfs嘛,这里都是在本地文件系统上操作的,充分说明这个mapreduce可以跑一般文件系统上!(废话)

Pseudo-Distributed Operation

Hadoop can also be run on a single-node in a pseudo-distributed mode where each Hadoop daemon runs in a separate Java process

首先需要配置几个核心文件
etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

etc/hadoop/hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

然后检查一下ssh,一般的ubuntu自带了ssh,可以使用ps -e|grep ssh来检查是否开启,service ssh start是开启命令。

  $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  $ chmod 0600 ~/.ssh/authorized_keys

然后你就可以开始hdfs分布式文件系统之旅咯,官网上直接使用/tmp作为默认namenode目录,个人建议保存到自己的目录下,不然每次关机上次的东西都没了。操作如下

在etc/hadoop/core-sites.xml里加入
    <property>
        <name>hadoop.tmp.dir</name>
        <value>这里随意把/namenode/hadoop_${user.name}</value>
    </property>
格式化操作系统
bin/hdfs namenode -format

sbin/start-dfs.sh

你就可以在 http://localhost:50070/里面看到namenode的情况了

然后我们接着在分布式文件系统里面跑上述的例子,以下大家可以看到很多熟悉的操作,dfs 后面的操作都是hdfs下的文件相关操作选项,具体可以参看hdfs更多的教程,此处不多述。
 $ bin/hdfs dfs -mkdir /user
  $ bin/hdfs dfs -mkdir /user/<username>
  $ bin/hdfs dfs -put etc/hadoop input
    $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
     $ bin/hdfs dfs -get output output
  $ cat output/*
   $ bin/hdfs dfs -cat output/*
   $ sbin/stop-dfs.sh

好了,如果大家是第一次接触,那么到了这里应该差不多就可以有个大致的感觉了,其实我特别不喜欢写这个,没有什么思想,全是抄的官网文档,但是对于特别新手来说,可以参看一下,那么我们接着来讲一下真正的hello wolrd,到这个地方我们还没有写代码,也谈不上啥框架理解,就是先跑起来再说。接着讲wordcount之前,我说一下我的感受,为什么会有hadoop这种东西呢,因为数据量大嘛,数据大了之后很自然的一个想法就是把数据分布式处理。这样就有了hdfs,之后那我分布式了之后怎么计算呢,我数据存在不同的地方,我算的时候把数据移动肯定是会浪费很大的带宽的,mapreduce+hdfs实现了一个很妙的思路,就是说我不移动数据,我移动计算,这听起来很不错,计算本地化,那么我们就可以不错的解决大数据问题了。另外一个事情,mapreduce我现在的感觉并不是一个啥都能看的事情,海量数据的处理过程也可能是单一的,比方我们接下来要讲的计算文章单词的个数,或者一些常规的操作,我们利用map-reduce的编程思路试着去解决这些问题。好了,说多了大神也不看,小白也看不懂了,我们继续往下吧。

hello world maprecude

仍然是搬运官网,教程如下,如有错误对着教程做吧,看博客错了也不要怪我,谁叫你懒看官网呢^_^!
https://hadoop.apache.org/docs/r2.7.3/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

本来先写了一段介绍的,但是还是先上代码吧。大家把这段代码无脑跑通之后,我会给大家解释一些东西的,相信你能明白。

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class WordCount {

  public static class TokenizerMapper
       extends Mapper<Object, Text, Text, IntWritable>{

    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(Object key, Text value, Context context
                    ) throws IOException, InterruptedException {
      StringTokenizer itr = new StringTokenizer(value.toString());
      while (itr.hasMoreTokens()) {
        word.set(itr.nextToken());
        context.write(word, one);
      }
    }
  }

  public static class IntSumReducer
       extends Reducer<Text,IntWritable,Text,IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values,
                       Context context
                       ) throws IOException, InterruptedException {
      int sum = 0;
      for (IntWritable val : values) {
        sum += val.get();
      }
      result.set(sum);
      context.write(key, result);
    }
  }

  public static void main(String[] args) throws Exception {
    Configuration conf = new Configuration();
    Job job = Job.getInstance(conf, "word count");
    job.setJarByClass(WordCount.class);
    job.setMapperClass(TokenizerMapper.class);
    job.setCombinerClass(IntSumReducer.class);
    job.setReducerClass(IntSumReducer.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    FileInputFormat.addInputPath(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}
需要设置一些东西
export JAVA_HOME=/usr/java/default
export PATH=${JAVA_HOME}/bin:${PATH}
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar

$ bin/hadoop com.sun.tools.javac.Main WordCount.java
$ jar cf wc.jar WordCount*.class
然后打包jar

根据上面的文件操作保证你的文件格式如下
$ bin/hadoop fs -ls /user/joe/wordcount/input/ /user/joe/wordcount/input/file01 /user/joe/wordcount/input/file02
这里会有一些输出提示xxxxx

$ bin/hadoop fs -cat /user/joe/wordcount/input/file01
Hello World Bye World

$ bin/hadoop fs -cat /user/joe/wordcount/input/file02
Hello Hadoop Goodbye Hadoop

输入下代码前记得保证output为空,output不为空的话,应该会报错。
$ bin/hadoop jar wc.jar WordCount /user/joe/wordcount/input /user/joe/wordcount/output

查看结果
$ bin/hadoop fs -cat /user/joe/wordcount/output/part-r-00000`
Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2`

恭喜你已经跑出来一个hello world了,你自己抄了java代码,然后运用了伪分布式文件系统,修修补补之后你就可以完成新的功能了,在此之前,我具体介绍下上述java代码,这出强烈推荐《实战Hadop:开启通向云计算的捷径(刘鹏)》该书第3章对这里的代码做了充分的解读。

wordcount数据处理过程

这里我们主要介绍wordcount过程mapreduce处理里数据都是啥样子的。我这里大概解释一下,mapreduce的过程以键值对的方式传递,然后我们主要是对mapreduce函数进行重写,同样也是要满足键值对的格式。这里map就是以(word,1)的形式展示,然后reduce就是相加统计的过程,思路非常简单。

这里介绍了mapreduce的数据处理流程。
这里写图片描述图2

下图是mapreduce过程的整体概括,map从input到split输入,经过处理后(可能包括sort combine过程)输出中间结果,这些数据会被保存到磁盘而非hdfs中,之后被系统调度分配到各个reduce去继续处理。
这里写图片描述图3
下面是更详细的一个过程图,与上图思想一样。
这里写图片描述

下面我们看看我们wordcount中每个地方的数据都是什么样子的吧。
这里写图片描述图4

这里写图片描述图5
好了,这个地方留一点时间大家自己去看那个书里面的java代码详解,官网也有,不过没有那么详细,书中介绍了java几个大类的用处,介绍了job.setxxxx系列的初始默认条件,这些都是需要掌握的。

小结:上述图中mapreduce的过程,此处只有一个reduce(默认),并且没有涉及到调度过程,没有看到hdfs的参与,只知道有个地方input输入,然后会被切分成split,这里就表现出我写博客的必要了,介绍一些常识split从input来,split不会跨文件生成,比如input文件夹下面有file01,file02,那么就会有2个以上的split,然后hdfs中文件以block的形式存储,每个大文件(128M以上,可以设置大小)会被切分成block,,每个split包括大于等于1的整数个blocks。然后于此同时split决定了map的个数,有多少。
而reduce的个数是可以设置的。

wordcount整个调度过程

上面主要是讲数据处理的过程,这里讲讲调度过程。现在我假设你们知道什么是jobTracker TaskTracker(这是mapreduce的主要调度部分)。第一张图描述了mapreduce如何在hdfs的帮助下完成计算的转移而不是数据的转移。图6中,我们开启mapreduce程序的时候,mapreduce的主节点负责提交一个叫做job的东西,我们代码中设置了很多job的内容,包括用了什么map什么reduce以及其他配置,然后把这个jar包传到hdfs中,这里是非常厉害的,他把代码转移就避免了数据的移动,这样可以做到计算本地化,减小带宽浪费。wordcount input中有2个文件file01 file02就会划分成2个split,完成了图中第6步,系统根据这个划分来分配任务,如果此时有3台电脑,1个master两个slaves(通常datanode也不和master在一起,这里不太确定这个说法对不),那么如果file01 file02的block分别在slave1 slave2上(这里我们是无从得知的,因为hdfs是一个分布式操作系统,对外来说看起来是一个整体,我也不知道他放哪里,但是他内部是有均衡操作的我认为,大神可以指教),那么他可以把2个map任务分配到2个slave节点上。这里需要强调的是:map任务不是随随便便地分配给某个TaskTracker的,这里有个概念叫:数据本地化(Data-Local)。意思是:将map任务分配给含有该map处理的数据块的TaskTracker上,同时将程序JAR包复制到该TaskTracker上来运行,这叫“运算移动,数据不移动”。而分配reduce任务时并不考虑数据本地化。

这里写图片描述
图6

第二张图表示了计算任务的分布,一般集群中1个namenode n个datanode,上述描述针对数据存储,namenode只负责存储元数据,datanode存储实际数据且负责与client交互(我们运行bin/hadoop就是开启 了一个client)。jobTracker和namenode对应,taskTracker和datanode对应。
这里写图片描述图7

好了,今天就到这里,有机会继续给大家分享,如何使用docker去模拟真实的分布式系统。
参考资料
docker hadoop集群 http://www.tashan10.com/tag/hadoop/
Hadoop生态系统介绍及HDFS与MapReduce原理详细阐述 http://blog.youkuaiyun.com/zhongwen7710/article/details/39376247
《实战Hadop:开启通向云计算的捷径(刘鹏)》

【Hadoop入门二】编写并运行WordCount 本文基于IDEA编写WordCount示例,并在Hadoop上运行。 一、前提 安装并配置好Java、Maven和Hadoop。 二、创建Maven项目 1. 创建项目 File -> New -> Project -> Maven,不用勾选archetype,点击next,填写项目名称,点击Finish。 2. 修改pom.xml 1)引入Hadoop依赖包 主要包括hadoop-common、hadoop-hdfs、hadoop-mapreduce-client-c 阅读详情

相关推荐

入门Hadoop的WordCount程序

本篇文章主要说两部分:简单介绍MapReduce的工作原理;详细解释WordCount程序。

bigfacesafdasgfewgf 1748

一步一步跟我学习hadoop(4)----hadoop Map/Reduce教程(1)

Hadoop Map/Reduce说明     hadoop Map/Reduce是一个使用简易的软件框架,基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。     一个Map/Reduce作业经常讲数据集切分成独立的块,这些块通过map任务并行处理,框架对map的输出进行排序,排序结果会被reduce以输入参数进行接收。通常作

wuyinggui的专栏 2795

Hadoop自带WordCount.java程序

位置:{Hadoop_HOME}\hadoop-0.20.1\src\examples\org\apache\hadoop\examples\WordCount.java Hadoop自带WordCount程序: package org.apache.hadoop.examples; import java.io.IOException; import java.util.StringTok

GarfieldEr007的专栏 3712

数据挖掘实验:使用 Hadoop 实现 WordCount 应用

数据挖掘实验:使用 Hadoop 实现 WordCount 应用

ProgramNovice的博客 9155

Hadoop之WordCount源代码

一、旧版WordCount源代码 //package org.apache.hadoop.examples; import java.io.IOException; import java.util.Iterator; import java.util.StringTokenizer; import org.apache.hadoop.fs.Path; import org.apache.had

GarfieldEr007的专栏 2908

Hadoop运行示例WordCount

一、运行Hadoop自带的hadoop-examples.jar报错 Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x 解决办法: 1.进入hdfs su - hdfs 2.查看目录权限 hdfs dfs -ls / 3.修改权限 hadoop fs -chmod 777 /user 执行结果: 首先创建input文件夹 hdfs dfs -mkdir -p /user/hdf

Horsleyli的博客 2550

hadoop wordcount

wordcount

yandao的博客 2813

Hadoop WordCount实战:大数据处理入门

Hadoop是一个由Apache基金会开发的分布式系统基础架构。它使用Java编写,能够处理海量数据,支持应用程序在由普通硬件构成的大型集群上运行。Hadoop的核心是HDFS和MapReduce,HDFS用于存储大规模数据,MapReduce则负责计算。除了这两个组件之外,Hadoop还包括YARN用于资源管理,以及一个庞大的生态系统,其中包括HBase, Hive, Pig等。

weixin_42497762的博客 912

Hadoop之——WordCount案例与执行本地jar包

Hadoop之——WordCount案例与执行本地jar包

雷神乐乐的博客 9937

创建动态代理对象bean,并动态注入到spring容器中

使用过Mybatis的同学,应该都知道,我们只需要编写mybatis对应的接口和mapper XML文件即可,并不需要手动编写mapper接口的实现。这里mybatis就用到了JDK动态代理,并且将生成的接口代理对象动态注入到Spring容器中。 这里涉及到几个问题。也许有同学会有疑问,我们直接编写好类,加入@Component等注解不是可以注入了吗?或者在配置类(@Configuration)...

lichuangcsdn的博客 3万+

NC65增加自定义参照并且参照数据要根据选择的财务组织过滤

1、首先定义一个参照类 package nc.pub.jzcm.ref; import nc.ui.bd.ref.AbstractRefModel; import nc.ui.bd.ref.IRefDocEdit; import nc.ui.bd.ref.IRefMaintenanceHandler; public class PMPrPayDefaultRefModel extends AbstractRefModel { public PMPrPayDefaultRefModel(){ ...

xyl的博客 3494

Hadoop之实战WordCount

大致流程如下: 第一步:开发Map阶段代码 第二步:开发Reduce阶段代码 第三步:组装Job 在idea中创建WordCountJob类 添加注释,梳理一下需求: 需求:读取hdfs上的hello.txt文件,计算文件中每个单词出现的总次数 hello.txt文件内容如下: hello you hello me 最终需要的结果形式如下: hello 2 me 1 you 1 先创建map阶段的代码,在这里需要自定义一个mapper类,继承框架中的Mapper类 public static.

qq_52150032的博客 1962

Edge浏览器IE模式失效?最新142版本隐藏按钮的3种解决方案

本文针对Edge浏览器142版本中IE模式按钮消失的问题,提供了3种实用解决方案,包括注册表修改、手动添加网站到IE模式列表和企业策略部署方案,帮助用户解决兼容性问题,确保老旧系统正常访问。

weixin_28308325的博客 500

windows下运行hadoop的wordcount示例超详细过程

windows下运行hadoop的wordcount示例超详细过程 特别感谢参考博文中的两位博主的分享 一.下载2个文件 https://github.com/MuhammadBilalYar/HADOOP-INSTALLATION-ON-WINDOW-10/blob/master/MapReduceClient.jar https://github.com/MuhammadBilalYar/...

shdxhsq的博客 1826

AWS 小白书 [1] 全球架构

小白应该知道的 AWS 知识

boshansolo的博客 704

从零构建:如何用MATLAB和SDR硬件搭建你的第一个OFDM卫星通信原型系统

本文详细介绍了如何利用MATLAB和SDR硬件从零构建OFDM卫星通信原型系统。通过核心组件选型、开发环境配置、OFDM算法实现到系统集成与优化的完整流程,帮助通信工程学生和DIY爱好者快速掌握软件无线电技术在卫星通信中的应用。特别推荐使用HackRF One和MATLAB工具箱实现高性价比的OFDM系统验证。

pz890123456的博客 378

Hadoop实现WordCount详解

通过本文的介绍,我们了解了如何使用Hadoop实现WordCount程序。从环境搭建到程序编写,再到作业的提交和运行,每一步都是实现大数据处理的关键。WordCount程序虽然简单,但它是理解Hadoop分布式计算框架的一个很好的起点。版权声明:本博客内容为原创,转载请保留原文链接及作者信息。参考文章IDEA运行WordCount程序(详细步骤)Hadoop实现WordCount(从零开始)

ning的博客 2274

【行业解决方案篇十五】【DeepSeek物流优化:车辆路径规划算法】

写完这篇技术解析,突然想起那位多绕150公里的王师傅——现在他的车载平板会实时显示"路径健康度",当偏离最优路线超过5%就自动报警。从节约算法到深度强化学习,从三维装载到时序预测,这些技术最终化作每辆货车少烧的1升柴油,每个快递小哥早回家的1小时。最后说个浪漫的事:系统曾为某偏远山区规划出一条穿越枫叶林的配送路线,不仅节省23公里,还成了网红打卡路线。原来物流优化的尽头,不仅是冰冷的数学,还有人间烟火气的温度。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 292

2,Hadoop MapReduce 入门实践:WordCount 单词计数

单词计数(WordCount)是 Hadoop MapReduce 框架中最经典、最能体现其分布式计算思想的入门程序,常被称为 MapReduce 版的“Hello World”。该程序的功能是统计一系列文本文件中每个单词出现的次数。其完整源代码通常位于 Hadoop 安装包的目录下。通过本次 WordCount 实践,我们完整体验了 Hadoop MapReduce 作业的编写、提交与执行流程。从创建数据、上传到 HDFS、提交作业到查看结果,每一步都是理解分布式计算的基础。

ywl470812087的博客 12万+

解锁PyCharm+Deepseek:本地部署AI编程超能力

在本次探索中,我们成功地在 PyCharm 中实现了 DeepSeek 的本地化部署,这一过程虽然涉及多个步骤,但每一步都为我们开启 AI 编程大门奠定了基础。从安装最新版 PyCharm,确保我们拥有一个功能强大且兼容性良好的开发环境,到注册 DeepSeek 账号并获取 API Key,这是连接我们与强大 AI 能力的关键纽带。接着,在 PyCharm 中安装 Continue 插件并进行精细配置,让 DeepSeek 能够深度融入我们的编程流程。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 5548

【信息系统项目管理师】高分论文:论信息系统项目的整合管理(绩效考核系统)

我们将项目管理计划中的子计划包括项目范围、进度、成本、质量管理计划,过程改进计划,人力资源管理计划,风险、采购管理计划,干系人管理计划,项目范围、成本、进度基准作为依据,查看项目的各个方面,通过组织全体团体成员会议来解读由各监控过程提供的信息,之后我与项目管理团队一起制订所需措施,确保项目绩效达到预期要求。在一个项目中,变更是必然的,也是不可避免的,进度拖延,成本失控,客户有新的需求等都会引起项目的变更。在本项目中,我要求有处于工作状态的产品,开发人员才可以对其任意修改,修改完成后,重新入库即可。

数据知道的博客 6887

hadoop入门经典:wordcount代码详解

hadoop,mapreduce,wordcount, 单词计数, wordcount代码详解

freefish_yzx的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

hadoop wordcount 代码

写个wordcount,刚入门的同学可以参考一下。 直接贴程序了 package WordCount; import java.io.IOException; import java.util.Iterator; import java.util.StringTokenizer; import org.apache.hadoop.conf.Configuration; import org

架构师思考实践 1988

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Hadoop入门案例-实现WordCount

import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; imp...

wonderfulwork 3077

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hadoop入门——wordcount

源码 根据网上的实例,自己稍作修改,把文件读入输出地址,写在系统文件中,通过读文件控制。 确认没错后,打成jar包 运行: 启动WinSCP,连上集群。把jar包放在自己的文件夹内,如 /home/tseg/zq。 创建文件 /user/zq/text.txt,里面写明输入输出地址,如/user/zq/t.txt;/user/zq/out。 然后根据输入地址(/user/zq

ByebyeLazy的专栏 1034

三十二、基于Hadoop伪分布式运行Hadoop自带wordcount案例

环境背景: Hadoop伪分布式已经搭建完成 Hadoop2.6.0 Hadoop伪分布搭建见: Hadoop伪分布式的搭建详情https://blog.youkuaiyun.com/m0_54925305/article/details/118650350?spm=1001.2014.3001.5502 案例实施: 1.启动集群: 2.进入虚拟机浏览器地址栏localhost:50070和localhost:8088查看集群状态: 注:Wordcount是MapRe...

4311
上一篇: 数据挖掘岗位——工作准备
下一篇: 天天学算法——搜索热词关联(TopK)
continueOo
博客等级 码龄12年 90粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值