Hadoop系列——Hadoop集群安装day2-1

181 篇文章 3 订阅
16 篇文章 0 订阅

Hadoop系列——Hadoop集群安装day2-1

集群角色规划

集群规划准则:根据软件工作特性和服务器硬件资源情况合理分配
角色规划注意事项:

  • 资源上有抢夺冲突的,尽量不要部署在一起
  • 工作上需要相互配合的,尽量部署到一起
服务器角色
node1.syf.cnNameNode,DataNode,resourcemanager,nodeManager
node2.syf.cnSecondaryNameNode,DataNode,NodeManager
node3.syf.cnDataNode,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/
目录说明
binHadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。
etcHadoop配置文件所在的目录
include对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
lib该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。
libexec各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
sbinHadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
shareHadoop各个模块编译后的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台机器在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值