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

网页设计毕业论文8000字重庆百度快照优化

网页设计毕业论文8000字,重庆百度快照优化,ASP动态网站开发案例教程,邢台企业做网站费用HDFS 集群 HDFS 集群是建立在 Hadoop 集群之上的,由于 HDFS 是 Hadoop 最主要的守护进程,所以 HDFS 集群的配置过程是 Hadoop 集群配置过程的代表。 使用 Docker 可以更加方便地、高效地构建出一个集群环境。 每台计算机中的配置 Hadoop 如何配置集群…

HDFS 集群

HDFS 集群是建立在 Hadoop 集群之上的,由于 HDFS 是 Hadoop 最主要的守护进程,所以 HDFS 集群的配置过程是 Hadoop 集群配置过程的代表。

使用 Docker 可以更加方便地、高效地构建出一个集群环境。

每台计算机中的配置

Hadoop 如何配置集群、不同的计算机里又应该有怎样的配置?

HDFS 命名节点数据节点的远程控制是通过 SSH 来实现的,因此关键的配置项应该在命名节点被配置,非关键的节点配置要在各个数据节点配置。也就是说,数据节点与命名节点的配置可以不同,不同数据节点之间的配置也可以有所不同。

为了方便建立集群,我使用相同的配置文件通过 Docker 镜像的形式同步到所有的集群节点

具体步骤

总体思路是:先用一个包含 Hadoop 的镜像进行配置,配置成集群中所有节点都可以共用的样子,然后再以它为原型生成若干个容器,构成一个集群。

配置原型

首先,使用之前准备的 hadoop_proto 镜像启动为容器:

docker run -d --name=hadoop_temp --privileged hadoop_proto /usr/sbin/init

进入 Hadoop 的配置文件目录:

cd $HADOOP_HOME/etc/hadoop
文件作用
workers记录所有的数据节点的主机名或 IP 地址
core-site.xmlHadoop 核心配置
hdfs-site.xmlHDFS 配置项
mapred-site.xmlMapReduce 配置项
yarn-site.xmlYARN 配置项

集群的原型配置完毕后,退出容器并上传容器到新镜像 cluster_proto :

docker stop hadoop_temp
docker commit hadoop_temp cluster_proto

部署集群

首先,要为 Hadoop 集群建立专用网络 hnet :

docker network create --subnet=172.20.0.0/16 hnet

接下来创建集群容器:

docker run -d --name=nn --hostname=nn --network=hnet --ip=172.20.1.0 --add-host=dn1:172.20.1.1 --add-host=dn2:172.20.1.2 --privileged cluster_proto /usr/sbin/init
docker run -d --name=dn1 --hostname=dn1 --network=hnet --ip=172.20.1.1 --add-host=nn:172.20.1.0 --add-host=dn2:172.20.1.2 --privileged cluster_proto /usr/sbin/init
docker run -d --name=dn2 --hostname=dn2 --network=hnet --ip=172.20.1.2 --add-host=nn:172.20.1.0 --add-host=dn1:172.20.1.1 --privileged cluster_proto /usr/sbin/init

进入命名节点:

docker exec -it nn su hadoop

格式化 HDFS:

hdfs namenode -format

如果没有出错,那么下一步就可以启动 HDFS:

start-dfs.sh

成功启动之后,jps 命令应该能查到 NameNode 和 SecondaryNameNode 的存在。命名节点不存在 DataNode 进程,因为这个进程在 dn1 和 dn2 中运行。

MapReduce 使用

Word Count 就是"词语统计",这是 MapReduce 工作程序中最经典的一种。它的主要任务是对一个文本文件中的词语作归纳统计,统计出每个出现过的词语一共出现的次数。

Hadoop 中包含了许多经典的 MapReduce 示例程序,其中就包含 Word Count。

注意:这个案例在 HDFS 不运行的状态下依然可以运行,所以我们先在单机模式下测试

首先,启动一个之前制作的 hadoop_proto 镜像的新容器:

docker run -d --name=word_count hadoop_proto

进入容器:

docker exec -it word_count bash

进入 HOME 目录:

cd ~

现在我们准备一份文本文件 input.txt:

I love China
I like China
I love hadoop
I like hadoop

将以上内容用文本编辑器保存。

执行 MapReduce:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount input.txt output

解释一下含义:

hadoop jar从 jar 文件执行 MapReduce 任务,之后跟着的是示例程序包的路径。

wordcount表示执行示例程序包中的 Word Count 程序,之后跟这两个参数,第一个是输入文件,第二个是输出结果的目录名(因为输出结果是多个文件)。

执行之后,应该会输出一个文件夹 output,在这个文件夹里有两个文件:_SUCCESS 和 part-r-00000。

集群模式

现在我们在集群模式下运行 MapReduce。

启动在上一章配置好的集群容器:

docker start nn dn1 dn2

进入 NameNode 容器:

docker exec -it nn su hadoop

进入 HOME:

cd ~

编辑 input.txt:

I love China
I like China
I love hadoop
I like hadoop

启动 HDFS:

start-dfs.sh

创建目录:

hadoop fs -mkdir /wordcount
hadoop fs -mkdir /wordcount/input

上传 input.txt

hadoop fs -put input.txt /wordcount/input/

执行 Word Count:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar wordcount /wordcount/input /wordcount/output

查看执行结果:

hadoop fs -cat /wordcount/output/part-r-00000

如果一切正常,将会显示以下结果:

I       4
hadoop  2
like    2
love    2
China   2

MapReduce 编程

在学习了 MapReduce 的使用之后,已经可以处理 Word Count 这类统计和检索任务,但是客观上 MapReduce 可以做的事情还有很多。

MapReduce 主要是依靠开发者通过编程来实现功能的,开发者可以通过实现 Map 和 Reduce 相关的方法来进行数据处理。

为了简单的展示这一过程,我们手工编写一个 Word Count 程序。

注意:MapReduce 依赖 Hadoop 的库,但我使用的 Hadoop 运行环境是 Docker 容器,难以部署开发环境,所以真实的开发工作(包含调试)将需要一个运行 Hadoop 的计算机。

MyWordCount.java 文件代码

/*** 引用声明* 本程序引用自 http://hadoop.apache.org/docs/r1.0.4/cn/mapred_tutorial.html*/
package com.runoob.hadoop;
import java.io.IOException;
import java.util.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
/*** 与 `Map` 相关的方法*/
class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(LongWritable key,Text value,OutputCollector<Text, IntWritable> output,Reporter reporter)throws IOException {String line = value.toString();StringTokenizer tokenizer = new StringTokenizer(line);while (tokenizer.hasMoreTokens()) {word.set(tokenizer.nextToken());output.collect(word, one);}}
}
/*** 与 `Reduce` 相关的方法*/
class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {public void reduce(Text key,Iterator<IntWritable> values,OutputCollector<Text, IntWritable> output,Reporter reporter)throws IOException {int sum = 0;while (values.hasNext()) {sum += values.next().get();}output.collect(key, new IntWritable(sum));}
}
public class MyWordCount {public static void main(String[] args) throws Exception {JobConf conf = new JobConf(MyWordCount.class);conf.setJobName("my_word_count");conf.setOutputKeyClass(Text.class);conf.setOutputValueClass(IntWritable.class);conf.setMapperClass(Map.class);conf.setCombinerClass(Reduce.class);conf.setReducerClass(Reduce.class);conf.setInputFormat(TextInputFormat.class);conf.setOutputFormat(TextOutputFormat.class);// 第一个参数表示输入FileInputFormat.setInputPaths(conf, new Path(args[0]));// 第二个输入参数表示输出FileOutputFormat.setOutputPath(conf, new Path(args[1]));JobClient.runJob(conf);}
}

将此 Java 文件的内容保存到 NameNode 容器中去,建议位置:

/home/hadoop/MyWordCount/com/runoob/hadoop/MyWordCount.java

注意:根据当前情况,有的 Docker 环境中安装的 JDK 不支持中文,所以保险起见,请去掉以上代码中的中文注释。

进入目录:

cd /home/hadoop/MyWordCount

编译:

javac -classpath ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.1.4.jar -classpath ${HADOOP_HOME}/share/hadoop/client/hadoop-client-api-3.1.4.jar com/runoob/hadoop/MyWordCount.java

打包:

jar -cf my-word-count.jar com

执行:

hadoop jar my-word-count.jar com.runoob.hadoop.MyWordCount /wordcount/input /wordcount/output2

查看结果:

hadoop fs -cat /wordcount/output2/part-00000

输出:

I       4
hadoop  2
like    2
love    2
China   2
http://www.shuangfujiaoyu.com/news/8831.html

相关文章:

  • 福州网站建设服务价格最实惠企业网站建设报价
  • 做网站外包最牛的公司免费seo排名网站
  • 做视频好用的素材网站爱站数据官网
  • 做暧暧小视频有声音的网站推广策划方案怎么做
  • 建立网站的流程是什么怎么从网上找客户
  • 网站site的收录数量要多远索引量网络工程师培训机构排名
  • 南通公司网站制作软件培训机构排行榜
  • 可以做c oj的网站关键词搜索广告
  • 电子商务网站建设与管理考卷微信公众号推广网站
  • 网络专业的网站建设价格手机百度搜索app
  • 怎么用asp做网站运营主要做什么工作
  • 之江汇学校网站建设在百度上怎么发布广告
  • 网站开发应看什么书籍宁波seo推广
  • 做网站书网络推广赚钱项目
  • 新手学做网站 cs6百度号码认证平台个人号码申诉
  • 怎样做好服务营销网站优化排名网站
  • 广东网页空间租赁seo优化神器
  • 安徽建设厅证书查询网网站广州信息流推广公司排名
  • 太原今天刚刚发生的新闻seo教程 百度网盘
  • 网站设计哪家公司好西安网站关键词优化费用
  • 网站开发整体流程图足球积分排行榜最新
  • 做a 免费网站网络公司网络推广服务
  • 游戏道具网站开发网络营销策略都有哪些
  • 电子商务网站数据库怎么做百度网盟
  • 文件包上传的网站怎么做成品网站1688入口网页版
  • 正规的网站建设网站优化方案案例
  • 优仔电话手表网站百度关键字优化
  • 宝塔面板WordPress优化seo搜索引擎优化是做什么的
  • 没有网站也可以做推广吗平台推广是什么工作
  • 做的网站如何改标题优化网站排名公司