当前位置: 首页 > wzjs >正文

网站群 建设 方案ppt模板制作教程步骤

网站群 建设 方案,ppt模板制作教程步骤,网站域名年龄,电商网站为什么要提高网站友好度本文介绍hadoop中的MapReduce技术的应用,使用java API。操作系统:Ubuntu24.04。 MapReduce概述 MapReduce概念 MapReduce是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序…

本文介绍hadoop中的MapReduce技术的应用,使用java API。操作系统:Ubuntu24.04。

MapReduce概述

MapReduce概念

MapReduce是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。

MapReduce核心思想

分布式的运算程序往往需要分成至少2个阶段。

第一个阶段的MapTask并发实例,完全并行运行,互不相干。

第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。

MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。

MapReduce 进程

MrAppMaster:负责整个程序的过程调度及状态调度

MapTask:负责 Map 阶段的整个数据处理流程

ReduceTask:负责 Reduce 阶段的整个数据处理流程

创建软件包

新建一个MapReduce软件包

编写Mapper类

Mapper类将单词文本进行切割,切割成一个个的单词,写入到上下文中

(1)按行读取,通过split函数进行切割,将切割出来的一个个单词放到数组words中

(2)遍历数组words,将存在的单词数据存储到word中,然后将word写入到context上下文(使Redcue程序能访问到数据)

核心代码:

package MapReduce;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;public class WordCountMapper extends Mapper<LongWritable, Text, Text, IntWritable> {// 输出Text k = new Text();IntWritable v = new IntWritable(1);@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {// 1 获取一行String line = value.toString();// 2 切割String[] words = line.split(" ");// 3 输出for (String word : words) {k.set(word);context.write(k, v);}}
}

编写Reducer类

Reducer类

(1)将每个单词统计次数结果进行求和合并

(2)把统计结果依次写入到context上下文中

核心代码:

package MapReduce;import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;import java.io.IOException;public class WordCountReducer extends Reducer<Text, IntWritable, Text, LongWritable> {@Overrideprotected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {// 声明变量 用于存储聚合完的结果long count = 0;// 遍历相同的 key 获取对应的所有 valuefor (IntWritable value : values) {count += value.get();}// 将聚合完的结果写到 MapReduce 框架context.write(key, new LongWritable(count));}
}

编写Driver类

Driver类中,需要进行以下操作:

获取job 设置jar包路径

关联Mapper、Reducer

设置map输出的k,v类型

最终输出的k,v类型

设置输入路径和输出路径

提交job

核心代码:

package MapReduce;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import java.io.IOException;public class WordCountDriver {public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {// 0. 自定义配置对象Configuration conf = new Configuration();// 1. 创建 Job 对象,参数可取消Job job = Job.getInstance(conf);// 2. 给 Job 对象添加 Mapper 类的 Classjob.setMapperClass(WordCountMapper.class);// 3. 给 Job 对象添加 Reduce 类的 Classjob.setReducerClass(WordCountReducer.class);// 4. 给 Job 对象添加 Driver 类的 Classjob.setJarByClass(WordCountDriver.class);// 5. 设置 Mapper 输出的数据的 key 类型job.setMapOutputKeyClass(Text.class);// 6. 设置 Mapper 输出的数据的 value 类型job.setMapOutputValueClass(IntWritable.class);// 7. 设置 Reduce 输出的数据的 key 类型job.setOutputKeyClass(Text.class);// 8. 设置 Reduce 输出的数据的 value 类型job.setOutputValueClass(LongWritable.class);// 定义uri字符串// String uri = "hdfs://master:9000";// 9. 设置 MapReduce 任务的输入路径FileInputFormat.setInputPaths(job, new Path(args[0]));// 10.设置 MapReduce 任务的输出路径FileOutputFormat.setOutputPath(job, new Path(args[1]));// 11.提交任务boolean result = job.waitForCompletion(true);// 12.退出返回System.exit(result ? 0 : 1);}
}

打包

在IDEA中,选择最右边的“Maven”选项卡,展开旁边的” Lifecycle → package”,双击,在最左边的Project面板中,找到” src → target”,就能发现生成了一个jar文件,我这里是“Spark-1.0-SNAPSHOT.jar”。

找到这个文件,在文件资源管理器打开,上传这个文件。可以修改成一个简单的名字,如“mr.jar”,然后放到一个你容易找到的地方,例如桌面上。利用XShell把这个文件上传到hadoop集群中

在hadoop集群中执行MapReduce程序

先准备好需要统计词频的文件,用浏览器打开hadoop的Web UI,输入地址:

http://hadoop101:9870/

然后选择“Utilities”菜单下的“Browser the file system”,我创建了一个文件夹“wordcount”

进入“wordcount”文件夹,我继续创建了一个文件夹“input”。继续进入“input”文件夹,我上传了两个文件“”file01.txt 和“file02.txt”,内容分别为:

Hello MapReduce Bye MapReduce
Hello Hadoop Goodbye Hadoop

进入主机master,打开命令行窗口,输入下列命令来执行上传的MapReduce程序:

cd /home/youka

hadoop jar mr.jar mr.WordCountDriver /wordcount/input /wordcount/output

系统执行后,报错了

Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster:

这里给出的报错信息非常明确,就是mapreduce配置文件没有配好,先打开hadoop中mapreduce配置文件:

vim /usr/local/hadoop/etc/hadoop/mapred-site.xml

在configuration中增加一下配置:

<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

重新执行,成功

在“wordcount”中增加了一个”output”文件夹

打开后多了两个文件

“part-r-00000”文件显示了统计结果


文章转载自:

http://kNqN914t.rfkyb.cn
http://47zc4T8q.rfkyb.cn
http://nXo5W7PU.rfkyb.cn
http://Usf8QWkR.rfkyb.cn
http://KsvGTbI6.rfkyb.cn
http://uM9HRipR.rfkyb.cn
http://rTtTqco2.rfkyb.cn
http://UY4dkwdl.rfkyb.cn
http://1ym5UVfS.rfkyb.cn
http://VgB8pKb4.rfkyb.cn
http://8I4rnGz8.rfkyb.cn
http://twkOtkcr.rfkyb.cn
http://8ruK9D3O.rfkyb.cn
http://zIcWH3FX.rfkyb.cn
http://cFei9IJp.rfkyb.cn
http://ECX61xsF.rfkyb.cn
http://IflIcFEq.rfkyb.cn
http://v308O8so.rfkyb.cn
http://IdiAxT88.rfkyb.cn
http://eMB0IQzK.rfkyb.cn
http://1jm2z2db.rfkyb.cn
http://prIbVEv2.rfkyb.cn
http://pVMtU1Ym.rfkyb.cn
http://lVXbSkQw.rfkyb.cn
http://Ce2pbkFx.rfkyb.cn
http://OEPMiYNF.rfkyb.cn
http://p5OuZdrA.rfkyb.cn
http://H1MkWrbo.rfkyb.cn
http://jlGOQ27v.rfkyb.cn
http://xldwuWt8.rfkyb.cn
http://www.dtcms.com/wzjs/707456.html

相关文章:

  • 如何写网站开发需求自己做网站赚钱吗
  • 深南花园裙楼 网站建设洛阳做多屏合一网站
  • 猎聘网招聘官方网站长春手机建站模板
  • 山东省工程建设造价信息网站池州最好的网站建设
  • 学校开发网站公司响应式网站 手机站
  • 顺德精品网站建设自动生成手机网站
  • 临沂百度网站建设wordpress 调用分类目录描述
  • 佛山狮山网站建设宜春市城乡规划建设局网站
  • 提供常州微信网站建设专业网站制
  • 小学网站模板免费下载东莞饰品网站建设
  • 如何做提卡网站中国网站优化哪家好
  • 做字网站将网站保存怎么做
  • 中山网站制作服务网站建设步骤和流程
  • 目录网站做外链团队logo标志设计
  • 网站的毕业设计怎么做wordpress数据库清理sql
  • 网站建设设计风格如何与色彩搭配网站建设公司墨子网络
  • 网站建设管理教程视频教程wordpress加密原理
  • 品牌企业网站建设公司一流的聊城做网站公司
  • 怎么样开网站汉化WORDPRESS聊天软件
  • 广州网站建设找哪里网站设置为默认主页
  • 网站如何取消验证码南宁网站建设索王道下拉
  • 烟台提供网站设计制作无锡网站建设首选捷搜
  • 网站内网页标题对百度排名唐山做网站建设公司
  • 房屋产权地址备案在那个网站做crm系统官网
  • 微平台网站开发wordpress升级不了
  • 在中国建设银行的网站上可以转账吗网站怎样查是哪家做的
  • 什么是网站国内高速空间怎么建设淘客自己的网站
  • 网站开发与运营怎么样中国最近新闻消息
  • 北京当地网站 点阿里云网站模板 解析
  • 环保公司网站架构怎么做alexa全球网站排名