乐趣区

关于数据库:Hadoop-HDFS-331分布式存储搭建

前言

看了题目会不会惊讶,怎么昆仑分布式数据库玩起了分布式文件系统?

因为昆仑分布式数据库 0.9 版本起,要减少 HDFS 分布式文件备份性能,所以开发小哥哥工作中,就顺便把学习的过程分享进去。

HDFS(HadoopDistributed File System)是 Hadoop 我的项目的外围子项目,是分布式计算中数据存储管理的根底。

是基于流数据模式拜访和解决超大文件的需要而开发的,能够运行于便宜的商用服务器上。

它所具备的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特色为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的利用解决带来了很多便当。

HDFS 是开源的,存储着 Hadoop 利用将要解决的数据,相似于一般的 Unix 和 Linux 文件系统,不同的是它是实现了 google 的 GFS 文件系统的思维,是实用于大规模分布式数据处理相干利用的、可扩大的分布式文件系统。

上面咱们具体介绍在两台 CENTOS8 的虚拟机上,搭建 HDFS 分布式文件存储系统:

一、配置根本环境

1.1 批改主机名,并重启失效

vim /etc/hosts
192.168.207.164         centos8-0
192.168.207.165         centos8-1

1.2 敞开防火墙并设置开机不启动

systemctl stop firewalld.service
systemctl disable firewalld.service

1.3 敞开 Selinux 并设置开机不启动

setenforce 0
vim /etc/selinux/config
SELINUX=disabled

另一台机器,反复 1.1-1.3 步骤

1.4 配置免密登陆

1.4.1 应用 root 用户登陆系统生成密钥:

ssh-keygen
始终回车确定 (生成的密钥文件在 /root/.ssh 下 id_rsa、id_rsa.pub)

1.4.2 配置本人对本人的免密登陆:

ssh-copy-id centos8-0
(另一台机器 ssh-copy-id centos8-1)依据提醒输出 yes,输出明码(centos8- 0 就是你以后第一台的主机名)。

1.4.3 将密钥文件拷贝到第二台主机上:

ssh-copy-id centos8-1
(另一台机器 ssh-copy-id centos8-0),依据提醒输出 yes,依据提醒输出对方主机的 root 明码。

1.4.4 配置完免密登陆后,互相测试一下,能不能免密登录:

ssh centos8-0(ssh centos8-1)

二、装置 java 环境

2.1 下载 java 二进制包:https://www.oracle.com/

2.2 解压缩,移到 /usr/ocal

tar zxf jdk-8u131-linux-x64.tar.gz
mv jdk1.8.0_131 /usr/local

2.3 配置环境变量

关上 /etc/profile,在文件开端退出如下内容:

export JAVA_HOME=/usr/local/jdk1.8.0_131
export JRE_HOME=/usr/local/jdk1.8.0_131/jre
export PATH=$PATH:$JAVA_HOME/bin
exportCLASSPATH=.:$JAVA_HOME/lib:/dt.jar:$JAVA_HOME/lib/tools.jar
exportLD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server

2.4 使环境变量失效
source /etc/profile

2.5 测试装置是否胜利
`java -version
`
2.6 复制到第二台机器

scp -r /usr/local/jdk1.8.0_131/root@centos8-1:/usr/local/
scp /etc/profile root@centos8-1:/etc/

`2.7 第二台虚拟机 centos8-1
source /etc/profile`

三、Hadoop 装置

3.1 Hadoop 各个版本下载地址:

https://archive.apache.org/dist/hadoop/common/

3.2 倡议把 hadoop 放在 /home 目录,CENTOS8 根目录空间太小

mkdir /home/hadoop/
tar zxf hadoop-3.3.1.tar.gz 
mkdir /home/hadoop/tmp -p
mkdir /home/hadoop/dfs/data -p
mkdir /home/hadoop/dfs/name -p

3.3 关上并批改 /etc/profile,在文件开端退出如下内容:

exportHADOOP_HOME=/home/hadoop/hadoop-3.3.1
exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

3.4 使环境变量失效
source /etc/profile

3.5 配置 hadoop-env.sh

cd /home/hadoop/hadoop-3.3.1/etc/hadoop
vim hadoop-env.sh

而后尾部退出:

export JAVA_HOME=/usr/local/jdk1.8.0_131
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HADOOP_SHELL_EXECNAME=root

3.6 配置 core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://centos8-0:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>

3.7 配置 hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>centos8-1:9000</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

3.8 配置 wroks,增加如下:
centos8-0
centos8-1

3.9 复制到其余机器

scp -r /home/hadoop root@centos8-1:/home/
scp /etc/profile root@centos8-1:/etc/

第二台虚拟机 centos8-1
source /etc/profile

3.10 初始化 namenode 节点, 第二台机器也要初始化
hdfs namenode -format

3.11 在第一台机器启动服务:
start-dfs.sh

3.12 拜访测试:

默认浏览地址:http://192.168.207.164:9870/

通过 Utilities->Browse thefile system 查看文件,从 WINDOWS 网页端上传文件会失败,须要减少如下:

C:\Windows\System32\drivers\etc\hosts
192.168.207.164         centos8-0
192.168.207.165         centos8-1

3.13 命令行测试

hadoop fs -ls /
hadoop fs -mkdir /mytest
hadoop fs -copyFromLocal test.txt/test.txt
hadoop fs -appendToFile test.txt/test.txt
hadoop fs -cat /test.txt

至此 Hadoop HDFS 3.3.1 分布式存储搭建实现

*KunlunDB 我的项目已开源

【GitHub:】
https://github.com/zettadb

【Gitee:】
https://gitee.com/zettadb

END

退出移动版