完全分布式搭建HDFS分布式文件存储系统

2022-06-28 15:57:50 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

三分钟上手,完全分布式搭建HDFS

一,环境的准备

Linux (观看Linux安装及常用指令)

JDK(观看Linux安装jdk文档)

准备至少3台机器(通过克隆虚拟机;配置好网络JDK 时间 hosts,保证节点间能互ping通)

时间同步

ssh免密钥登陆(两两互通免密钥)

二,开始安装及相关配置文件

我这边三个节点分别为 : node01 node02 node03

node01 上面部署 namenode 和 datanode

node02 上面部署 secondaryNameNode 和 datanode

node03 上面部署 datanode

2.1 下载解压缩 hadoop
2.2 配置etc/hadoop/hadoop-env.sh

export JAVA_HOME= “你的Jdk安装目录” 如图

2.3 配置core-site.xml

配置解释:

代码语言:javascript复制
<configuration>
    <property>
        //配置namenode所在的服务器
        <name>fs.defaultFS</name>
        <value>hdfs://node01:9000</value>
    </property>
    <property>
        //hadoop.tmp.dir  是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这个路径中
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-2.6.5</value>
    </property>
</configuration>
2.4 hdfs-site.xml配置

配置解释:

代码语言:javascript复制
<configuration>
  	<property>
      //block保存的副本数量,不配置默认是3 我这边是没配置
      <name>dfs.replication</name>
      <value>1</value>
 	</property>
 	<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node02:50090</value>
    </property>
	<property>
        <name>dfs.namenode.secondary.https-address</name>
        <value>node02:50091</value>
    </property>
</configuration>
2.5 写上SNN节点名: node02

在/home/hadoop-2.6.5/etc/hadoop/新建masters文件

2.6 配置datanode存放服务器

在 slaves 中配置

注意:每行写一个 写成3行

2.7 分发节点

直接把压缩好的 hadoop 发送到node02 node03 节点上

2.8 配置 Hadoop的环境变量
代码语言:javascript复制
vi ~/.bash_profile
2.9 命令: source ~/.bash_profile

不然你的环境变量不会生效

2.10 格式化 NameNode –> 第一次需要
代码语言:javascript复制
hdfs  namenode -format
2.11 关闭防火墙
代码语言:javascript复制
service  iptables  stop
2.12 启动 HDFS
代码语言:javascript复制
start-dfs.sh
代码语言:javascript复制
[root@node01 home]# start-dfs.sh
    Starting namenodes on [node01]
    node01: starting namenode, logging to /home/hadoop-2.6.5/logs/hadoop-root-namenode-node01.out
    node03: starting datanode, logging to /home/hadoop-2.6.5/logs/hadoop-root-datanode-node03.out
    node02: starting datanode, logging to /home/hadoop-2.6.5/logs/hadoop-root-datanode-node02.out
    node01: starting datanode, logging to /home/hadoop-2.6.5/logs/hadoop-root-datanode-node01.out
    Starting secondary namenodes [node02]
    node02: starting secondarynamenode, logging to /home/hadoop-2.6.5/logs/hadoop-root-secondarynamenode-node02.out

先启动 namenode,再启动 datanode ,最后是 secondaryNameNode

浏览器输入 node01:50070(前提是你在windows配置了 hosts),出现下面界面说明成功

2.13 查看 jps进程

node01:

代码语言:javascript复制
[root@node01 home]# jps
3617 DataNode
3529 NameNode
3839 Jps
[root@node01 home]# 

node02:

代码语言:javascript复制
[root@node02 hadoop]# jps
2344 Jps
2296 SecondaryNameNode
2205 DataNode
[root@node02 hadoop]# 

node03:

代码语言:javascript复制
[root@node03 subdir0]# jps
1923 Jps
1854 DataNode
[root@node03 subdir0]# 

说明你的分布式HDFS搭建成功!!!

三,常用hdfs dfs 命令

3.1 查看hdfs指定目录下的文件
代码语言:javascript复制
hdfs  dfs  -ls  路径
3.2 创建文件夹
代码语言:javascript复制
hdfs  dfs -mkdir /data  ##创建一个名为data的文件夹
3.3 删除文件夹
代码语言:javascript复制
hdfs  dfs  -rm -r  /data  ##删除在根目录下 名为 data的文件夹
3.4 上传文件到hdfs

hdfs dfs -put 文件路径和名称 /data —>上传文件到hdfs /data文件下

3.5 下载文件到本地

hdfs dfs -get 要下载的文件路径和名称

3.6 复制文件夹到本地

hdfs dfs -copyToLocal 要下载的文件路径和名称

很多命令和Linux中都是大同小异,这里就不过多列举,感兴趣的小伙伴可以自行查看。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132835.html原文链接:https://javaforall.cn

0 人点赞