赞
踩
目录
- 解压到指定目录:
- tar -xzvf hadoop-2.7.2.tar.gz -C /opt/module
- tar -xzvf jdk-8u241-linux-x64.tar.gz -C /opt/module
-
- 配置环境变量 vi /etc/profile.d/env.sh更好一点 远程登录时会加载所有profile.d下的.sh文件
- vi /etc/profile
- -------------------------------------------
- ## JAVA_HOME
- export JAVA_HOME=/opt/module/jdk1.8.0_241
- export PATH=$JAVA_HOME/bin:$PATH
-
- ## HADOOP_HOME
- export HADOOP_HOME=/opt/module/hadoop-2.7.2
- export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
-
- source生效
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
启动HDFS并运行MapReduce程序(本地运行)
- core-cite.xml # 设置后本地模式不可用,因为namenode地址修改为Hdfs了,默认是file:///
-
- <!-- 指定HDFS 中NameNode 的地址-->
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://localhost101:9000</value>
- </property>
-
- <!-- 指定Hadoop 运行时产生文件的存储目录-->
- <property>
- <name>hadoop.tmp.dir</name>
- <value>/opt/module/hadoop-2.7.2/data/tmp</value>
- </property>
-
-
- hdfs-site.xml
-
- <!-- 指定HDFS 副本的数量-->
- <property>
- <name>dfs.replication</name>
- <value>1</value>
- </property>
-
- <!-- 指定Hadoop 辅助名称节点主机配置-->
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>localhost104:50090</value>
- </property>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
注意:hadoop.tmp.dir需要谨慎设置,否则数据迁移比较麻烦
注意:为什么不能一直格式化namenode?
格式化NameNode,会产生新的集群id,导致NameNode 和DataNode 的集群id 不一致,集群找不到已往数据。所以,格式NameNode 时,一定要先删除data数据和log 日志,然后再格式化NameNode。(必须先关掉namenode和datanode的进程,否则删掉后又会产生data数据和log日志)
启动Yarn并运行MapReduce程序(在Yarn上运行)
- yarn-site.xml
-
- <!-- Reducer 获取数据的方式-->
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
-
- <!-- 指定YARN 的ResourceManager 的地址-->
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>localhost101</value>
- </property>
-
-
- mapred-site.xml
-
- <!-- 指定MR 运行在YARN 上-->
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
配置历史服务器
- <!-- 历史服务器端地址-->
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>localhost101:10020</value>
- </property>
- <!-- 历史服务器web 端地址-->
- <property>
- <name>mapreduce.jobhistory.webapp.address</name>
- <value>localhost101:19888</value>
- </property>
配置日志聚集
日志聚集概念:应用运行完成以后,将程序运行日志信息上传到HDFS 系统上。
日志聚集功能好处:可以方便的查看到程序运行详情,方便开发调试。
- <!-- 日志聚集功能使能-->
- <property>
- <name>yarn.log-aggregation-enable</name>
- <value>true</value>
- </property>
-
- <!-- 日志保留时间设置7 天-->
- <property>
- <name>yarn.log-aggregation.retain-seconds</name>
- <value>604800</value>
- </property>
虚拟机准备
编写集群分发脚本xsync
-
- #!/bin/bash
- #1 获取输入参数个数,如果没有参数,直接退出
- pcount=$#
- if((pcount==0)); then
- echo no args;
- exit;
- fi
-
- #2 获取文件名称
- p1=$1
- fname=`basename $p1`
- echo fname=$fname
-
- #3 获取上级目录到绝对路径
- pdir=`cd -P $(dirname $p1); pwd`
- echo pdir=$pdir
-
- #4 获取当前用户名称
- user=`whoami`
-
- #5 循环
- for((host=103; host<105; host++)); do
- echo ------------------- localhost$host --------------
- rsync -rvl $pdir/$fname $user@localhost$host:$pdir
- done
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
集群配置
JAVA_HOME | localhost102 | localhost103 | localhost104 | ||
hadoop-env.sh | core-site.xml hdfs-site.xml | HDFS | NameNode DataNode |
DataNode | SecondaryNameNode DataNode |
yarn-env.sh | yarn-site.xml | Yarn |
NodeManager | ResourceManager NodeManager |
NodeManager |
mapred-env.sh | mapred-site.xml | MapReduce | HistoryServer |
单节点启动
配置SSH免密登录(为了群起集群,使用系统自带的脚本)
- 生成公钥和私钥:cd,cd .ssh/,ssh-keygen -t rsa,三次回车生成私钥id_rsa和公钥id_rsa.pub
- 拷贝公钥到目标主机上:ssh-copy-id localhost102,103,104,自己主机也要拷贝,NameNode要和每一个主机通信
群起集群
集群启动、停止方式总结
集群时间同步
1. 授权网段上的所有机器可以从这台机器同步时间:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
2. 集群在局域网上,不使用互联网上的时间:注释掉所有server 0.xxx
3. 当该节点丢失,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步,添加两行
server 127.127.1.0
fudge 127.127.1.0 stratum 10
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。