网站个人备案流程,怎么更改网站备案信息,黄j网,做网站怎样盈利1、部署说明
Hadoop HDFS分布式文件系统#xff0c;我们会启动#xff1a;
NameNode进程作为管理节点DataNode进程作为工作节点SecondaryNamenode作为辅助 同理#xff0c;Hadoop YARN分布式资源调度#xff0c;会启动#xff1a;ResourceManager进程作为管理节点NodeM…1、部署说明
Hadoop HDFS分布式文件系统我们会启动
NameNode进程作为管理节点DataNode进程作为工作节点SecondaryNamenode作为辅助 同理Hadoop YARN分布式资源调度会启动ResourceManager进程作为管理节点NodeManager进程作为工作节点ProxyServer、JobHistoryServer这两个辅助节点
MapReduce运行在YARN容器内无需启动独立进程。
所以关于MapReduce和YARN的部署其实就是2件事情
关于MapReduce 修改相关配置文件但是没有进程可以启动。关于YARN 修改相关配置文件 并启动ResourceManager、NodeManager进程以及辅助进程代理服务器、历史服务器。 2、部署
2.1、MapReduce配置文件
2.1.1、配置mapred-env.sh文件
在 $HADOOP_HOME/etc/hadoop 文件夹内修改mapred-env.sh文件
vim mapred-env.sh添加如下环境变量
## 设置jdk路径
export JAVA_HOME/export/server/jdk
## 设置JobHistoryServer进程内存为1G
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE1000
## 设置日志级别为INF
export HADOOP_MAPRED_ROOT_LOGGERINFO,RFA2.1.2、配置mapred-site.xml文件
mapred-site.xml文件添加如下配置信息
vim mapred-site.xmlconfigurationpropertynamemapreduce.framework.name/namevalueyarn/valuedescription/description/propertypropertynamemapreduce.jobhistory.address/namevaluebigdatanode1:10020/valuedescription/description/propertypropertynamemapreduce.jobhistory.webapp.address/namevaluebigdatanode1:19888/valuedescription/description/propertypropertynamemapreduce.jobhistory.intermediate-done-dir/namevalue/data/mr-history/tmp/valuedescription/description/propertypropertynamemapreduce.jobhistory.done-dir/namevalue/data/mr-history/done/valuedescription/description/propertypropertynameyarn.app.mapreduce.am.env/namevalueHADOOP_MAPRED_HOME$HADOOP_HOME/value/propertypropertynamemapreduce.map.env/namevalueHADOOP_MAPRED_HOME$HADOOP_HOME/value/propertypropertynamemapreduce.reduce.env/namevalueHADOOP_MAPRED_HOME$HADOOP_HOME/value/property
/configuration2.2、YARN配置文件
2.2.1、配置yarn-env.sh文件
在 $HADOOP_HOME/etc/hadoop 文件夹内修改 yarn-env.sh文件
vim yarn-env.shyarn-env.sh文件添加如下4行环境变量内容
export JAVA_HOME/export/server/jdk
export HADOOP_HOME/export/server/hadoop
export HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR$HADOOP_HOME/logs2.2.2、配置yarn-site.xml文件
yarn-site.xml文件配置如下
propertynameyarn.log.server.url/namevaluehttp://bigdatanode1:19888/jobhistory/logs/valuedescription/description
/propertypropertynameyarn.web-proxy.address/namevaluebigdatanode1:8089/valuedescriptionproxy server hostname and port/description/propertypropertynameyarn.log-aggregation-enable/namevaluetrue/valuedescriptionConfiguration to enable or disable log aggregation/description/propertypropertynameyarn.nodemanager.remote-app-log-dir/namevalue/tmp/logs/valuedescriptionConfiguration to enable or disable log aggregation/description/propertypropertynameyarn.resourcemanager.hostname/namevaluebigdatanode1/valuedescription/description/propertypropertynameyarn.resourcemanager.scheduler.class/namevalueorg.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler/valuedescription/description/propertypropertynameyarn.nodemanager.local-dirs/namevalue/data/nm-local/valuedescriptionComma-separated list of paths on the local filesystem where intermediate data is written./description/propertypropertynameyarn.nodemanager.log-dirs/namevalue/data/nm-log/valuedescriptionComma-separated list of paths on the local filesystem where logs are written./description/propertypropertynameyarn.nodemanager.log.retain-seconds/namevalue10800/valuedescriptionDefault time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled./description/propertypropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/valuedescriptionShuffle service that needs to be set for Map Reduce applications./description/property2.3、分发到node2node3节点
MapReduce和YARN的配置文件修改好后需要分发到其它的服务器节点中。
scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml bigdatanode2:pwd/scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml bigdatanode3:pwd/查看其他节点是否分发成功
2.4、集群启动命令介绍
2.4.1、介绍
常用的进程启动命令如下 一键启动YARN集群 $HADOOP_HOME/sbin/start-yarn.sh 会基于yarn-site.xml中配置的yarn.resourcemanager.hostname来决定在哪台机器上启动resourcemanager会基于workers文件配置的主机启动NodeManager 一键停止YARN集群 $HADOOP_HOME/sbin/stop-yarn.sh 在当前机器单独启动或停止进程 $HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserverstart和stop决定启动和停止可控制resourcemanager、nodemanager、proxyserver三种进程 历史服务器启动和停止 $HADOOP_HOME/bin/mapred --daemon start|stop historyserver
2.4.2、启动
在node1服务器以hadoop用户执行
首先执行
start-yarn.sh其次执行
mapred --daemon start historyserver一键停止
stop-yarn.sh2.4.3、查看YARN的WEB UI页面
打开 http://bigdatanode1:8088 即可看到YARN集群的监控页面ResourceManager的WEB UI
3、提交MapReduce任务到YARN执行
3.1、提交MapReduce程序至YARN运行
在部署并成功启动YARN集群后我们就可以在YARN上运行各类应用程序了。
YARN作为资源调度管控框架其本身提供资源供许多程序运行常见的有
MapReduce程序Spark程序Flink程序
Hadoop官方内置了一些预置的MapReduce程序代码我们无需编程只需要通过命令即可使用。
常用的有2个MapReduce内置程序
wordcount单词计数程序。 统计指定文件内各个单词出现的次数。pi求圆周率 通过蒙特卡罗算法统计模拟法求圆周率。
这些内置的示例MapReduce程序代码都在 $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar 这个文件内。
可以通过 hadoop jar 命令来运行它提交MapReduce程序到YARN中。
语法 hadoop jar 程序文件 java类名 [程序参数] … [程序参数]
3.2、提交wordcount示例程序
3.2.1、单词计数示例程序
单词计数示例程序的功能很简单
给定数据输入的路径HDFS、给定结果输出的路径HDFS将输入路径内的数据中的单词进行计数将结果写到输出路径
我们可以准备一份数据文件并上传到HDFS中。
创建两个文件夹 hdfs dfs -mkdir -p /input/wordcounthdfs dfs -mkdir -p /output创建一个文件输入一些内容
vim words.txt上传到/input/wordcount/
hdfs dfs -put words.txt /input/wordcount/执行如下命令提交示例MapReduce程序WordCount到YARN中执行
hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount hdfs://bigdatanode1:8020/input/wordcount/ hdfs://bigdatanode1:8020/output/wc执行完成后可以查看HDFS上的输出结果
hdfs dfs -cat /output/wc/part-r-00000_SUCCESS文件是标记文件表示运行成功本身是空文件part-r-00000是结果文件结果存储在以part开头的文件中
3.2.2、查看运行日志
此功能基于
配置文件中配置了日志聚合功能并设置了历史服务器 启动了代理服务器和历史服务器历史服务器进程会将日志收集整理形成可以查看的网页内容供我们查看。 3.2.3、提交求圆周率示例程序
可以执行如下命令使用蒙特卡罗算法模拟计算求PI圆周率
hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar pi 3 1000参数pi表示要运行的Java类这里表示运行jar包中的求pi程序参数3表示设置几个map任务参数1000表示模拟求PI的样本数越大求的PI越准确但是速度越慢 3.3、蒙特卡罗算法求PI的基础原理
Monte Carlo蒙特卡罗算法统计模拟法
Monte Carlo算法的基本思想是 以模拟的”实验”形式、以大量随机样本的统计形式来得到问题的求解。 比如求圆周率以数学的方式是非常复杂的但是我们可以以简单的形式去求解
示例代码
import java.util.Random; public class MonteCarloPi { public static void main(String[] args) { int totalPoints 1000000; // 总共投点次数 int insidePoints 0; // 落在圆内的点数 Random rand new Random(); for (int i 0; i totalPoints; i) { // 在-1到1之间随机生成x, y值 double x 2.0 * rand.nextDouble() - 1.0; double y 2.0 * rand.nextDouble() - 1.0; // 判断该点是否在单位圆内圆心在(0, 0)半径为1 if (x * x y * y 1.0) { insidePoints; } } // 使用蒙特卡罗方法估算π的值公式来源于圆的面积公式πr^2这里r1所以π4*(圆内点数/总点数) double piEstimate 4.0 * insidePoints / totalPoints; System.out.println(π的估计值为: piEstimate); }
}结束 hy:37 人最大的痛苦就是无法跨越“知道”和“做到”的鸿沟。