暑假第七周总结
这周我继续学习大数据相关知识,学习和了解了mapreduce和yarn的相关知识
一、MapReduce——分布式计算框架
在学习MapReduce时,我考虑了几个问题
什么是MapReduce
MapReduce是Hadoop中的分布式计算组件 MapReduce可以以分散->汇总(聚合)模式执行分布式计算任务
2. MapReduce的主要编程接口
map接口,主要提供“分散”功能,由服务器分布式处理数据
reduce接口,主要提供“汇总”功能,进行数据汇总统计得到结果
MapReduce可供Java、Python等语言开发计算程序
yarn——分布式资源调度
1. YARN的架构有哪2个角色?
主(Master):ResourceManager
从(Slave):NodeManager
2. 两个角色各自的功能是什么?
ResourceManager: 管理、统筹并分配整个集群的资源
NodeManager:管理、分配单个服务器的资源,即创建管理容器,由容器提供资源供程序使用
3. 什么是YARN的容器?
容器(Container)是YARN的NodeManager在所属服务器上分配资源的手段
创建一个资源容器,即由NodeManager占用这部分资源 然后应用程序运行在NodeManager创建的这个容器内
应用程序无法突破容器的资源限制
三、MapReduce配置
在 $HADOOP_HOME/etc/hadoop 文件夹内,
修改: mapred-env.sh文件,
vim mapred-env.sh
添加如下环境变量
export JAVA_HOME=/export/server/jdk export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000 export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA
修改mapred-site.xml文件
vim mapred-site.xml
添加如下配置信息
<property> <name>mapreduce.framework.name</name> <value>yarn</value> <description></description> </property> <property> <name>mapreduce.jobhistory.address</name> <value>node1:10020</value> <description></description> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>node1:19888</value> <description></description> </property> <property> <name>mapreduce.jobhistory.intermediate-done-dir</name> <value>/data/mr-history/tmp</value> <description></description> </property> <property> <name>mapreduce.jobhistory.done-dir</name> <value>/data/mr-history/done</value> <description></description> </property> <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>
四、YARN部署
在 $HADOOP_HOME/etc/hadoop 文件夹内,
修改: yarn-env.sh文件
vim yarn-env.xml
添加如下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/logs
修改:yarn-site.xml文件
vim yarn-site.xml
配置如下
<!-- Site specific YARN configuration properties --> <property> <name>yarn.log.server.url</name> <value>http://node1:19888/jobhistory/logs</value> <description></description> </property> <property> <name>yarn.web-proxy.address</name> <value>node1:8089</value> <description>proxy server hostname and port</description> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> <description>Configuration to enable or disable log aggregation</description> </property> <property> <name>yarn.nodemanager.remote-app-log-dir</name> <value>/tmp/logs</value> <description>Configuration to enable or disable log aggregation</description> </property> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> <description></description> </property> <property> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value> <description></description> </property> <property> <name>yarn.nodemanager.local-dirs</name> <value>/data/nm-local</value> <description>Comma-separated list of paths on the local filesystem where intermediate data is written.</description> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>/data/nm-log</value> <description>Comma-separated list of paths on the local filesystem where logs are written.</description> </property> <property> <name>yarn.nodemanager.log.retain-seconds</name> <value>10800</value> <description>Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.</description> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> <description>Shuffle service that needs to be set for Map Reduce applications.</description> </property>
分发配置文件
集群启动命令介绍
常用的进程启动命令如下: 一键启动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|proxyserver start和stop决定启动和停止 可控制resourcemanager、nodemanager、proxyserver三种进程 历史服务器启动和停止 $HADOOP_HOME/bin/mapred --daemon start|stop historyserver
开始启动YARN集群
在node1服务器,以hadoop用户执行 首先执行:$HADOOP_HOME/sbin/start-yarn.sh,
一键启动所需的: ResourceManager NodeManager ProxyServer(代理服务器)
其次执行:$HADOOP_HOME/bin/mapred --daemon start historyserver
启动: HistoryServer(历史服务器)
部署完成