前言
看了题目会不会惊讶,怎么昆仑分布式数据库玩起了分布式文件系统?
因为昆仑分布式数据库0.9版本起,要减少HDFS分布式文件备份性能,所以开发小哥哥工作中,就顺便把学习的过程分享进去。
HDFS(HadoopDistributed File System)是Hadoop我的项目的外围子项目,是分布式计算中数据存储管理的根底。
是基于流数据模式拜访和解决超大文件的需要而开发的,能够运行于便宜的商用服务器上。
它所具备的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特色为海量数据提供了不怕故障的存储,为超大数据集(Large Data Set)的利用解决带来了很多便当。
HDFS是开源的,存储着Hadoop利用将要解决的数据,相似于一般的Unix和Linux文件系统,不同的是它是实现了google的GFS文件系统的思维,是实用于大规模分布式数据处理相干利用的、可扩大的分布式文件系统。
上面咱们具体介绍在两台CENTOS8的虚拟机上,搭建HDFS分布式文件存储系统:
一、配置根本环境
1.1 批改主机名,并重启失效
vim /etc/hosts192.168.207.164 centos8-0192.168.207.165 centos8-1
1.2 敞开防火墙并设置开机不启动
systemctl stop firewalld.servicesystemctl disable firewalld.service
1.3 敞开Selinux并设置开机不启动
setenforce 0vim /etc/selinux/configSELINUX=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.gzmv jdk1.8.0_131 /usr/local
2.3 配置环境变量
关上/etc/profile,在文件开端退出如下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_131export JRE_HOME=/usr/local/jdk1.8.0_131/jreexport PATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.:$JAVA_HOME/lib:/dt.jar:$JAVA_HOME/lib/tools.jarexportLD_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 -pmkdir /home/hadoop/dfs/data -pmkdir /home/hadoop/dfs/name -p
3.3 关上并批改/etc/profile,在文件开端退出如下内容:
exportHADOOP_HOME=/home/hadoop/hadoop-3.3.1exportPATH=$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/hadoopvim hadoop-env.sh
而后尾部退出:
export JAVA_HOME=/usr/local/jdk1.8.0_131export HDFS_NAMENODE_USER=rootexport HDFS_DATANODE_USER=rootexport HDFS_DATANODE_SECURE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport 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-1source /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\hosts192.168.207.164 centos8-0192.168.207.165 centos8-1
3.13 命令行测试
hadoop fs -ls /hadoop fs -mkdir /mytesthadoop fs -copyFromLocal test.txt/test.txthadoop fs -appendToFile test.txt/test.txthadoop fs -cat /test.txt
至此Hadoop HDFS 3.3.1 分布式存储搭建实现
*KunlunDB我的项目已开源
【GitHub:】
https://github.com/zettadb
【Gitee:】
https://gitee.com/zettadb
END