Hadoop HDFS-部署和基本操作

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ

Hadoop HDFS(本章节)

我们前面介绍Hadoop的相关软件以及我们要讲解的HDFS,本小节就来讲讲基本部署操作。

1.JDK环境准备

复制代码
yum -y install java-1.8.0-openjdk

2.下载HDFS软件包

bash 复制代码
wget https://dlcdn.apache.org/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz
tar xvf hadoop-2.10.2.tar.gz
cd hadoop-2.10.2

3.配置文件一

hdfs全局核心配置文件,这里定义了集群临时数据目录和RPC端口。

xml 复制代码
  vi ./etc/hadoop/core-site.xml
 
 <configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>  <!-- NN 地址 -->
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/tmp/hadoop-data</value>  <!-- 临时数据目录 -->
  </property>
</configuration>

4.配置文件二

hdfs主配置文件,hdfs 特性配置 (副本、元数据/数据目录),临时测试我这里并没有考虑数据安全。

xml 复制代码
vi ./etc/hadoop/hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>  <!-- 单机副本数必须设为1 -->
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file://${hadoop.tmp.dir}/namenode</value> <!-- NN元数据存储路径 -->
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file://${hadoop.tmp.dir}/datanode</value> <!-- DN数据存储路径 -->
  </property>
</configuration>

5.配置文件三

hdfs的JAVA进程环境变量,由于是yum安装的JDK,所以需要手工配置。

bash 复制代码
vi etc/hadoop/hadoop-env.sh 
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre

6.初始化

这里主要是初始化储存结构和生成一些默认文件。

markdown 复制代码
[root@localhost hadoop-2.10.2]# ./bin/hdfs namenode -format
25/07/05 00:26:50 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = localhost/127.0.0.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.10.2
xxxx
25/07/05 00:26:52 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1

7.配置免密登录本机

更详细的介绍,可以翻看我的临时文章:Linux进阶-sshd

python 复制代码
ssh-keygen  #一直回车
ssh-copy-id localhost  #把本机配置免密登录

8.启动hdfs

bash 复制代码
#一键启动,如果是集群可以一次启动多个节点。 
[root@localhost hadoop-2.10.2]# ./sbin/start-dfs.sh
Starting namenodes on [localhost]
localhost: starting namenode, logging to /root/hadoop-2.10.2/logs/hadoop-root-namenode-localhost.localdomain.out
localhost: starting datanode, logging to /root/hadoop-2.10.2/logs/hadoop-root-datanode-localhost.localdomain.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /root/hadoop-2.10.2/logs/hadoop-root-secondarynamenode-localhost.localdomain.out
[root@localhost hadoop-2.10.2]# 

也可以使用手工启动,注意启动顺序。

bash 复制代码
# 1. NameNode
./sbin/hadoop-daemon.sh start namenode
# 2. 等待 10 秒(确保 NN 完全启动)
sleep 10
# 3. DataNode
./sbin/hadoop-daemon.sh start datanode
# 4. SecondaryNameNode
./sbin/hadoop-daemon.sh start secondarynamenode

9.基本操作

创建目录,默认只有一个空的根目录:"/",这个他和ZooKeeper和Linux基本目录结构比较类似。

csharp 复制代码
#先创建一个目录,默认止呕y
[root@localhost hadoop-2.10.2]# ./bin/hadoop fs -mkdir /test
[root@localhost hadoop-2.10.2]# ./bin/hadoop fs -ls /
Found 1 items
drwxr-xr-x   - root supergroup   0 2025-07-07 21:33 /test

上传下载文件

csharp 复制代码
#上传
[root@localhost hadoop-2.10.2]# ./bin/hadoop fs -put NOTICE.txt /test/
[root@localhost hadoop-2.10.2]# ./bin/hadoop fs -ls /test
Found 1 items
-rw-r--r--   1 root supergroup      15830 2025-07-07 21:34 /test/NOTICE.txt

#下载
[root@localhost hadoop-2.10.2]# ./bin/hadoop fs -get /test/NOTICE.txt notice.txt
[root@localhost hadoop-2.10.2]# ll notice.txt 
-rw-r--r-- 1 root root 15830 Jul  7 21:35 notice.txt

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
Once_day4 分钟前
Linux之rsyslog(4)属性配置
linux·服务器
waving-black8 分钟前
Linux中自定义服务开机自启nginx
linux·服务器·nginx
Lenyiin8 分钟前
《 Linux 修炼全景指南: 六 》软件包管理器
linux·运维·服务器
NiKo_W11 分钟前
Linux 重定向与Cookie
linux·运维·服务器·前端·网络·线程·协议
ytttr87316 分钟前
Rocky Linux 8.9配置Kubernetes集群详解,适用于CentOS环境
linux·kubernetes·centos
HLJ洛神千羽16 分钟前
Linux下程序设计综合实验报告——图书管理系统(黑龙江大学)
linux·运维·服务器
Arvin6271 小时前
Ubuntu 22.04 Docker 安装指南
linux·ubuntu·docker
Arvin6271 小时前
Jenkins Jobs 备份与恢复
linux·运维·服务器
小旺不正经2 小时前
Linux介绍及常用命令
linux·运维·数据库