Hadoop系列——Hadoop集群安装day2-1
- Hadoop系列——Hadoop集群安装day2-1
- 集群角色规划
- 准备工作
- 1.克隆centos准备三台机器
- 2.更改三台主机名
- 3.更改主机映射
- 3.1获取ip地址
- 3.2添加映射
- 4.关闭防火墙
- 5.同步机器时间
- 6.安装Java
- 7.免密登录
- 8.上传并解压压缩包
- 9.配置文件
- 9.1配置JDK路径
- 9.2设置用户以执行对应角色的shell命令
- 完整配置
- 10.编辑hadoop角色配置文件
- core-site.xml
- hdfs-site.xml
- mapred-site.xml
- yarn-site.xml
- 11.配置工作者
- 12.配置Hadoop环境变量
- 13.拷贝到node2,node3
- 14.格式化操作(初始化)
- Hadoop集群的启动关闭
- 手动逐个进程启动/关闭
- HDFS集群
- YARN集群
- 脚本启动
- HDFS
- YARN
- 所有(包括HDFS和YARN)
- 手写脚本
- 访问Hadoop Web UI页面
Hadoop系列——Hadoop集群安装day2-1
集群角色规划
集群规划准则:根据软件工作特性和服务器硬件资源情况合理分配
角色规划注意事项:
- 资源上有抢夺冲突的,尽量不要部署在一起
- 工作上需要相互配合的,尽量部署到一起
服务器 | 角色 |
node1.syf.cn | NameNode,DataNode,resourcemanager,nodeManager |
node2.syf.cn | SecondaryNameNode,DataNode,NodeManager |
node3.syf.cn | DataNode,NodeManager |
准备工作
1.克隆centos准备三台机器
这里也可以在第13步再做,无需急着克隆
选择创建完整克隆
最后克隆出3台机器
2.更改三台主机名
vim /etc/hostname
reboot
分别改为:node1,node2,node3
3.更改主机映射
3.1获取ip地址
ifconfig
3.2添加映射
vim /etc/hosts
例如下方:(你自己的起名和IP肯定与我不同不要直接拷贝)
192.168.1.104 node1 node1.syf.cn
192.168.1.105 node2 node2.syf.cn
192.168.1.106 node3 node3.syf.cn
4.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
5.同步机器时间
yum -y install ntpdate
ntpdate ntp4.aliyun.com
6.安装Java
https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html
解压
cp /home/syf/下载/jdk-8u333-linux-x64.tar.gz /root/jdk1.8/
tar -zxvf jdk-8u333-linux-x64.tar.gz
配置环境
vim /etc/profile
export JAVA_HOME=/root/jdk1.8/jdk1.8.0_333
export PATH=$JAVA_HOME/bin:$PATH
刷新环境变量
source /etc/profile
查询版本
java -version
7.免密登录
这个配不配之无所谓,如果你要配置的话搜一下ssh免密登录
8.上传并解压压缩包
mkdir -p /export/server/ #(软件安装路径)
mkdir -p /export/data/ #(数据存储路径)
mkdir -p /export/software/ #(安装包存放路径)
tar -zxvf hadoop-3.3.4.tar.gz -C /export/server/
目录 | 说明 |
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包所在的目录,官方自带示例。 |
9.配置文件
找到hadoop-env.sh文件进行配置
vim /export/server/hadoop-3.3.4/etc/hadoop/hadoop-env.sh
9.1配置JDK路径
export JAVA_HOME=/root/jdk1.8/jdk1.8.0_333
9.2设置用户以执行对应角色的shell命令
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
完整配置
export JAVA_HOME=/root/jdk1.8/jdk1.8.0_333
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
10.编辑hadoop角色配置文件
cd /export/server/hadoop-3.3.4/etc/hadoop
core-site.xml
vim core-site.xml
<configuration>
<!--默认文件系统的名称。通过URI中schema区分不同文件系统。->
<!-- file://本地文件系统 hdfs:// hadoop分布式文件系统gfs://。-->
<!-- hdfs文件系统访问地址: http://host: 8020-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1.syf.cn:8020</value>
</property>
<!--hadoop本地数据存储目录format时自动生成-->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop3</value>
</property>
<!--在web UI访问HDFS使用的用户名。
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
</configuration>
hdfs-site.xml
vim hdfs-site.xml
<!--设定SNN运行主机和端口。-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2.syf.cn:9868</value>
</property>
mapred-site.xml
vim mapred-site.xml
<!--mr程序默认运行方式。yarn集群模式 local本地模式-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR App Master环境变量。-->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!--MR MapTask环境变量。-->
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask环境变量。-->
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
yarn-site.xml
vim yarn-site.xml
<!-- yarn集群主角色RM运行机器。-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1.syf.cn</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,可运行MR程序。-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--每个容器请求的最小内存资源(以MB为单位)。-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<!--每个容器请求的最大内存资源(以MB为单位)。-->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<!--容器虚拟内存与物理内存之间的比率。-->
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
</property>
11.配置工作者
配合一键启动作用,自动遍历进行相应角色启动
vim workers
node1.syf.cn
node2.syf.cn
node3.syf.cn
12.配置Hadoop环境变量
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
13.拷贝到node2,node3
这里如果你是一开始在一台机子上做你可以选择直接克隆2台,再改改就行,如果不是,就直接拷贝文件夹发到其他两台机子上
14.格式化操作(初始化)
首次启动HDFS时,必须对其进行格式化操作。
format本质上是初始化工作,进行HDFS清理和准备工作
如果多次format除了造成数据丢失外,还会导致hdfs集群主从角色之间互不识别,通过删除所有机器hadoop.tmp.dir目录重新forma解决
hdfs namenode -format
成功:
记得所有的机子都要format一下!
Hadoop集群的启动关闭
手动逐个进程启动/关闭
每台机子上每次我们手动进行开关一个角色进程
HDFS集群
hdfs --daemon start namenode|datanode|secondarynamenode
hdfs --daemon stop namenode|datanode|secondarynamenode
注意:
node1开启的是: namenode和datanode
node2开启的是:datanode和secondarynamenode
node3开启的是:datanode
如下使用jps可以查看,因为hadoop是用Java写的
YARN集群
yarn --daemon start resourcemanager|nodemanager
yarn --daemon stop resourcemanager|nodemanager
注意:
node1开启的是:resourcemanager和nodemanager
node2开启的是:nodemanager
node3开启的是:rnodemanager
脚本启动
打开sbin目录
cd /export/server/hadoop-3.3.4/sbin
我们可以看到这里有很多的脚本可以使用
但是我们配置好机器之间的ssh免密登录!和workers文件
HDFS
- start-dfs.sh
- stop-dfs.sh
YARN
- start-yarn.sh
- stop-yarn.sh
所有(包括HDFS和YARN)
- start-all.sh
- stop-all.sh
手写脚本
除了官方提供的脚本以外,我们也可以用手写自己定义脚本的方式对启动和关闭做精准控制!这里就不展开了,如果不会可以去看一下sh脚本编辑的文章
访问Hadoop Web UI页面
在浏览器中(centos)进行访问,如果要进行window访问,你就需要配置window的网络映射
你们自己访问自己的,照抄肯定错哦
http://node1:9870
或者
http://node1.syf.cn:9870
这里就显示了我有3台机器