Hadoop集群整体概述 :
Hadoop集群包括两个集群: HDFS集群、 YARN集群
两个集群逻辑上分离、通常物理上在一起
两个集群都是标准的主从架构集群
HDFS集群(分布式存储)
主角色: NameNode
从角色: DataNode
主角色辅助角色:SecondaryNameNode
YARN集群(资源管理、调度)
主角色:ResourceManager
从角色:NodeManager
如何理解两个集群逻辑上分离?
逻辑上分离
两个集群互相之间没有依赖、互不影响
物理上在一起
某些角色进程往往部署在同一台物理服务器上
MapReduce集群呢?
MapReduce是计算框架、代码层面的组件 没有集群之说
集群安装:
hadoop安装包准备,jdk环境准备
E:\文档\大数据\hadoop\02_Apache Hadoop、HDFS\2、课程资料 jdk环境和hadoop都在这
192.168.88.151 node1.itcast.cn node1
192.168.88.152 node2.itcast.cn node2
192.168.88.153 node3.itcast.cn node3
#修改主机名:
vim /etc/hosts
自己的主机命名:
172.31.10.23 node1
172.31.10.24 node2
172.31.10.25 node3
# 集群时间同步
ntpdate ntp5.aliyun.com
# 防火墙关闭
firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service #停止firewalld服务
systemctl disable firewalld.service #开机禁用firewalld服务
# ssh免密登录(只需要配置node1至node1、node2、node3即可)
#node1生成公钥私钥 (一路回车)
ssh-keygen
#node1配置免密登录到node1 node2 node3
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
# 创建统一工作目录:
mkdir -p /export/server
mkdir -p /export/data
mkdir -p /export/software
#上传hadoop然后解压,注意先在node1节点解压,配置
tar -zxvf /export/server/hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
#修改配置 hadoop.env #文件最后添加 /export/server/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/export/server/jdk1.8.0_241
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
#继续下面的配置
<!-- 设置默认使用的文件系统 Hadoop支持file、 HDFS、 GFS、 ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.3.0</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR程序历史服务地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- MR程序历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</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集群主角色运行机器位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 虚机改成false,真实机器不需要-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 历史日志保存的时间 7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
vim workers
node1
node2
node3
保存退出
第一台机器执行
cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
scp -r /etc/profile root@node2:/etc/profile
scp -r /etc/profile root@node3:/etc/profile
#别忘了scp给其他两台机器哦
输入 hadoop 验证三台机器安装情况
重点:
# 主节点执行,node1节点
# 首次启动HDFS时,必须对其进行格式化操作
# format本质上是初始化工作,进行HDFS清理和准备工作
hdfs namenode -format
查看是否初始化成功:
配置文件修改后需要同步到其他机器
修改的配置文件介绍:
官网文档: https://hadoop.apache.org/docs/r3.3.0/
第一类1个: hadoop-env.sh
第二类4个: xxxx-site.xml ,site表示的是用户定义的配置,会覆盖default中的默认配置。
core-site.xml 核心模块配置
hdfs-site.xml hdfs文件系统模块配置
mapred-site.xml MapReduce模块配置
yarn-site.xml yarn模块配置
第三类1个: workers
所有的配置文件目录: /export/server/hadoop-3.3.0/etc/hadoop
Hadoop-3.3.0-Centos7-64bit_编译安装详解.md
目录 | 说明 |
---|---|
bin | Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。 |
etc | Hadoop配置文件所在的目录 |
include | 对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。 |
lib | 该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。 |
libexec | 各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。 |
sbin | Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。 |
share | Hadoop各个模块编译后的jar包所在的目录, 官方自带示例。 |