黑马大数据学习笔记2-HDFS环境部署

目录

https://www.bilibili.com/video/BV1WY4y197g7?p=22

环境部署

hadoop-3.3.4.tar.gz

Hadoop HDFS的角色包含:

NameNode,主节点管理者

DataNode,从节点工作者

SecondaryNameNode,主节点辅助

节点 CPU 内存 服务
node1 1核心 4GB NameNode、DataNode、SecondaryNameNode
node2 1核心 2GB DataNode
node3 1核心 2GB DataNode

node1节点执行,root身份登录

上传Hadoop安装包

复制代码
通过finalshell软件直接拖拽上去

解压安装包到/export/server/

复制代码
tar -zxvf hadoop-3.3.4.tar.gz -C /export/server

构建软链接

复制代码
cd /export/server

ln -s /export/server/hadoop-3.3.4 hadoop

进入hadoop安装包内

复制代码
cd hadoop

文件夹含义:

  • bin,存放Hadoop的各类程序(命令)
  • etc,存放Hadoop的配置文件
  • include,C语言的一些头文件
  • lib,存放Linux系统的动态链接库(.so文件)
  • libexec,存放配置Hadoop系统的脚本文件(.sh和.cmd)
  • license-binary,存放许可证文件
  • sbin,管理员程序(super bin)
  • share,存放二进制源码(Java jar包)

配置workers文件夹

workers文件是为了记录整个集群中哪几个服务器是我们的从节点。

进入配置文件目录

复制代码
cd etc/hadoop

编辑workers文件

复制代码
vim workers

删除localhost,添加以下内容

复制代码
node1
node2
node3

配置hadoop-env.sh文件

复制代码
vim hadoop-env.sh

添加以下内容

复制代码
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

JAVA_HOME,JDK环境的位置

HADOOP_HOME,Hadoop安装位置

HADOOP_CONF_DIR,Hadoop配置文件目录位置

HADOOP_LOG_DIR,Hadoop运行日志目录位置

配置core-site.xml文件

复制代码
vim core-site.xml

添加configuration里面的内容

复制代码
<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://node1:8020</value>
	</property>
	
	<property>
		<name>io.file.buffer.size</name>
		<value>131072</value>
	</property>
</configuration>
  • key:fs.defaultFS
  • 含义:HDFS文件系统的网络通讯路径
  • 值:hdfs://node1:8020
    • 协议为hdfs://
    • namenode为node1
    • namenode通讯端口为8020

  • key:io.file.buffer.size
  • 含义:io操作文件缓冲区大小
  • 值:131072bit

  • hdfs://node1:8020为整个HDFS内部的通讯地址,应用协议为hdfs://(Hadoop内置协议)
  • 表明DataNode将和node1的8020端口通讯,node1是NameNode所在机器
  • 此配置固定了node1必须启动NameNode进程

配置hdfs-site.xml文件

复制代码
vim hdfs-site.xml

添加内容

复制代码
<configuration>
	<property>
		<name>dfs.datanode.data.dir.perm</name>
		<value>700</value>
	</property>
	
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/data/nn</value>
	</property>
	
	<property>
		<name>dfs.namenode.hosts</name>
		<value>node1,node2,node3</value>
	</property>
		
	<property>
		<name>dfs.blocksize</name>
		<value>268435456</value>
	</property>
		
	<property>
		<name>dfs.namenode.handler.count</name>
		<value>100</value>
	</property>
		
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/data/dn</value>
	</property>	
</configuration>
  • key:dfs.datanode.data.dir.perm
  • 含义:hdfs文件系统,默认创建的文件权限设置
  • 值:700,即:rwx------

  • key:dfs.namenode.name.dir
  • 含义:NameNode元数据的存储位置
  • 值:/data/nn,在node1节点的/data/nn目录下

  • key:dfs.namenode.hosts
  • 含义:NameNode允许哪几个节点的DataNode连接(即允许加入集群)
  • 值:node1,node2,node3

  • key:dfs.blocksize
  • 含义:hdfs默认块大小
  • 值:268435456(256MB)

  • key:dfs.namenode.handler.count
  • 含义:namenode处理的并发线程数
  • 值:100,以100个并发度处理文件系统的管理任务

  • key:dfs.datanode.data.dir
  • 含义:从节点DataNode的数据存储目录
  • 值:/data/dn,即数据存放在node1、node2、node3,三台机器的/data/dn内

准备数据目录

在node1节点:

复制代码
mkdir -p /data/nn

mkdir -p /data/dn

在node2和node3节点:

复制代码
mkdir -p /data/dn

分发Hadoop文件夹

从node1将hadoop安装文件夹远程复制到node2、node3

在node1执行

复制代码
cd /export/server

scp -r hadoop-3.3.4 node2:`pwd`/

scp -r hadoop-3.3.4 node3:`pwd`/

在node2和node3执行

构建软链接

复制代码
cd /export/server

ln -s /export/server/hadoop-3.3.4 hadoop

ll

将Hadoop的一些脚本、程序配置到PATH中

在node1、node2、node3中操作

复制代码
vim /etc/profile

底部添加以下内容

复制代码
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

生效

复制代码
source /etc/profile

授权为hadoop用户

为了确保安全,hadoop系统不以root用户启动,我们以普通用户hadoop来启动整个Hadoop服务。

。。。前置章节已经创建了hadoop用户,并配置了hadoop用户之间的免密登录。。。

以root身份在三台服务器执行以下命令

复制代码
chown -R hadoop:hadoop /data

chown -R hadoop:hadoop /export

格式化整个文件系统

在node1执行

切换到hadoop用户

复制代码
su - hadoop

格式化namenode

复制代码
hadoop namenode -format

验证

复制代码
cd /data/

ll -h

cd nn

ll

cd current/

ll

上图说明格式化成功

启动

一键启动hdfs集群

复制代码
start-dfs.sh

查看当前系统正在运行的java进程

复制代码
jps

查看HDFS WEBUI

启动完成之后,可以在浏览器打开:

http://node1:9870,即可查看hdfs文件系统的管理页面。

整个Hadoop HDFS在运行的时候,会给我们提供一个管理平台页面,这个网站是namenode所在服务器的9870端口。

保存快照

一键关闭

复制代码
stop-dfs.sh

退出hadoop用户

复制代码
exit

三个服务器执行关机

复制代码
init 0
相关推荐
点赋科技24 分钟前
沙市区举办资本市场赋能培训会 点赋科技分享智能消费新实践
大数据·人工智能
Camellia031131 分钟前
嵌入式学习--江协stm32day5
stm32·嵌入式硬件·学习
a_1571532498635 分钟前
SpringCloud学习笔记-4
笔记·学习·spring cloud
YSGZJJ1 小时前
股指期货技术分析与短线操作方法介绍
大数据·人工智能
Doker 多克1 小时前
Flink CDC —部署模式
大数据·flink
Guheyunyi1 小时前
监测预警系统重塑隧道安全新范式
大数据·运维·人工智能·科技·安全
FserSuN1 小时前
Prompt工程学习之思维树(TOT)
人工智能·学习·prompt
哆啦A梦的口袋呀1 小时前
基于Python学习《Head First设计模式》第九章 迭代器和组合模式
python·学习·设计模式
虾球xz1 小时前
CppCon 2015 学习:3D Face Tracking and Reconstruction using Modern C++
开发语言·c++·学习·3d
sponge'2 小时前
opencv学习笔记2:卷积、均值滤波、中值滤波
笔记·python·opencv·学习