一. Yarn上运行MapReduce
大体步骤:
- 准备一台客户机
- 安装jdk
- 配置环境变量
- 安装hadoop
- 配置环境变量
- 配置集群yarn上运行
- 启动,测试集群
- 在yarn上运行wordcount案例
配置集群
- 配置yarn-env.sh 配置Java_HOME环境变量
- 配置yarn-site.xml
<property>
<name>yarn-nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn-resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
- 配置mapred-env.sh 配置Java_HOME环境变量
- 配置mapred-site.xml
// 指定MR运行在Yarn上
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
启动集群:
1)启动NameNode: sbin/hadoop-daemon.sh start namenode
2)启动DataNode:sbin/hadoop-daemon.sh start datanode
3)启动resourceManager: sbin/yarn-daemon.sh start resourcemanager
4)启动nodemanager:sbin/yarn-daemon.sh start/stop nodemanager
http://hadoop101:8088
二. 优化配置
1. 修改临时目录
- 停止进程
- 修改hadoop.tmp.dir (core-site.xml)
- 将logs文件夹删除
- 进入tmp目录删除对应的hadoop临时文件夹
- 格式化NameNode
- 启动所有进程
- 查看所修改的临时文件夹的目录
2. 配置历史服务器
mapred-site.xml
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost:19888</value>
</property>
sbin/mr-jobhistory-daemon.sh start historyserver
三. 完全分布式集群搭建
scp命令
scp -r 源路径 root@目标地址
ssh配置
配置ssh无密登陆
操作步骤:
- 进入.ssh文件输入ssh-keygen -t rsa
- ssh-copy-id 目标主机
注意,访问自己的无密登陆也需要配置。
搭建集群
1. 集群规划
Hadoop101: NameNode DataNode NodeManager
Hadoop102: DataNode ResourceManager NodeManager
Hadoop103: SecondaryNameNode DataNode NodeManager
2. 配置文件
core-site.xml:
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.0.3/data/tmp</value>
</property>
hdfs-site.xml hadoop-env.sh(配置JavaHome)
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoopXXX:50090</value>
</property>
slaves:
hadoop101
hadoop102
hadoop103
yarn-site.xml yarn-env.sh(配置JAVA_HOME)
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</value>
</property>
mapred-site.xml mapred-env.sh(配置JAVA_HOME)
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.0.3</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.0.3</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.0.3</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.0.3</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.0.3</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop101:19888</value>
</property>
3. 启动集群
第一步:在namenode节点上格式化集群 bin/hdfs namenode -format
第二步:启动集群 在Namenode中运行:sbin/start-dfs.sh;在ResourceManager中运行:sbin/start-yarn.sh
Hadoop启停方式:
-
分别启动HDFS组件:
hadoop-daemon.sh|yarn-daemon.sh start|stop namenode|datanode -
整体启动:
start-dfs.sh start-yarn.sh -
全部启动(官方不推荐):
start-all.sh stop-all.sh