Hadoop完全分布式安装
一.集群搭建前期准备
1.三台机器防火墙都是关闭的
2.确保三台机器网络配置畅通
3.三台机器确保/etc/hosts⽂件配置了ip和hostname的映射关系
4.确保三台机器配置了ssh免密登录认证
二.前期环境搭建 免密登录
1.修改主机名为server1,配置hosts文件
vi /etc/hosts
192.168.61.2 server1
192.168.61.3 server2
192.168.61.4 server3
2.下载相关软件
net-tool:工具包集合,包含ifconfig等命令
yum install -y net-tools
实时同步文件:
yum install -y rsync
3.克隆三台机器后设置免密登录(三台机器都需要设置)
生成公钥与私钥(三次回车)
ssh-keygen
向目标主机发送公钥(输入密码)
ssh-copy-id server1
ssh-copy-id server2
也需要对自己设置免密
ssh-copy-id master
三.安装jdk和Hadoop
1.上传安装包至/opt下的新文件夹中,module(存放数据)sofeware(存放安装包)
2.解压文件至/opt/module中
tar -zxvf hadoop-2.7.7.tar.gz -C /opt/module/
tar -zxvf jdk-8u333-linux-x64.tar.gz -C /opt/module/
四.配置环境变量和文件(Hadoop配置文件位于/opt/module/hadoop-2.7.7/etc/hadoop下)
1.配置环境变量
vi /etc/profile
在文件末尾添加,将路径更改为你的安装路径
export JAVA_HOME=/opt/module/jdk1.8.0_333
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/module/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
保存退出
source /etc/profile 使环境变量立即生效
输入命令 java -version 验证 JDK 是否安装成功:
2.配置hadoop-env.sh 文件
vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_333
3.配置核心文件core-site.xml
vi core-site.xml
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定 Hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.7/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为master-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>master</value>
</property>
</configuration>
4.HDFS 配置文件hdfs-site.xml
vi hdfs-site.xml
<configuration>
<!-- nn(NameNode) web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
<!-- 2nn(SecondaryNameNode) web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>server2:9868</value>
</property>
</configuration>
5.YARN 配置文件yarn-site.xml
vi yarn-site.xml
<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>server1</value>
</property>
<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
6.MapReduce 配置文件mapred-site.xml(将mapred-site.xml.template改名成mapred-site.xml即可 mv命令)
vi mapred-site.xml
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->ha
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
6.配置workers/slaves文件
vi workers/slaves
添加主机
master
server2
server3
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行
7.文件分发
我们上面的操作都只是在主节点 server1
中进行,现在我们需要把所有文件分发给从机 server2
和 server3
分发环境变量
rsync -r /etc/profile server1:/etc/profile
rsync -r /etc/profile server2:/etc/profile
分发 JDK 和 Hadoop
scp -r /opt/module server1:/opt
scp -r /opt/module server2:/opt
source /etc/profile 使环境变量立即生效
五.启动集群
如果集群是第一次启动,则需要先格式化 NameNode 节点
hdfs namenode -format
格式化完成后,启动集群
在主节点中运行
start-dfs.sh
在 ResourceManager 节点中运行
start-yarn.sh
或者
在主节点中运行
start-all.sh
在 ResourceManager 节点中运行
start-yarn.sh
在主节点中启动历史服务器
mr-jobhistory-daemon.sh start historyserver
启动完成后,输入 jps
命令检查各节点是否正常:
在本地浏览器中查看 Hadoop web 界面:http://192.168.61.2:9870
六.集群规划
server1 | server2 | server3 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
节点分析
名称 | 作用 |
---|---|
NameNode | 也称为 nn,管理文件系统的命名空间,维护文件系统树以及整个树上所有文件和目录,负责协调集群中的数据存储 |
SecondaryNameNode | 帮助 NameNode 缓解压力,合并编辑日志,减少 NameNode 启动时间 |
ResourceManager | 一个仲裁整个集群可用资源的主节点,帮助 YARN 系统管理其上的分布式应用 |
NodeManager | YARN 中单节点的代理,它管理 Hadoop 集群中单个计算节点 |
DataNode | 负责真正存储数据的节点,提供来自文件系统客户端的读写请求 |
7.番外配置
在HDFS配置文件中修改安全模式阀值,达到关闭安全模式的目的
在hdfs-site.xml中设置安全阀值属性,属性值默认为0.999f,如果设为1则不进行安全检查
永久退出安全模式:
<property>
<name>dfs.safemode.threshold.pct</name>
<value>0.999f</value>
<description>
Specifies the percentage of blocks that should satisfy
the minimal replication requirement defined by dfs.replication.min.
Values less than or equal to 0 mean not to wait for any particular
percentage of blocks before exiting safemode.
Values greater than 1 will make safe mode permanent.
</description>
</property>
关闭网页hdfs对权限的操作验证
# 直接关闭 HDFS 权限验证,在 hdfs-site.xml 文件中添加如下配置:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
标签:opt,xml,Hadoop,module,site,export,yarn,安装,分布式
From: https://blog.csdn.net/2202_75833209/article/details/139450348