Hadoop HDFS 3.3.1分布式存储搭建

2022-01-12 00:00:00 数据 数据库 分布式 配置 机器
前言

看了标题会不会诧异,怎么昆仑分布式数据库玩起了分布式文件系统?
 
因为昆仑分布式数据库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 vim /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- (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-0centos8-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\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 分布式存储搭建完成

点击阅读原文

推荐阅读

KunlunBase架构介绍
KunlunBase技术优势介绍
KunlunBase技术特点介绍
KunlunBase集群基本概念介绍

END

昆仑数据库是一个HTAP NewSQL分布式数据库管理系统,可以满足用户对海量关系数据的存储管理和利用的全方位需求。
应用开发者和DBA的使用昆仑数据库的体验与单机MySQL和单机PostgreSQL几乎完全相同,因为首先昆仑数据库支持PostgreSQL和MySQL双协议,支持标准SQL:2011的 DML 语法和功能以及PostgreSQL和MySQL对标准 SQL的扩展。同时,昆仑数据库集群支持水平弹性扩容,数据自动拆分,分布式事务处理和分布式查询处理,健壮的容错容灾能力,完善直观的监测分析告警能力,集群数据备份和恢复等 常用的DBA 数据管理和操作。所有这些功能无需任何应用系统侧的编码工作,也无需DBA人工介入,不停服不影响业务正常运行。
昆仑数据库具备全面的OLAP 数据分析能力,通过了TPC-H和TPC-DS标准测试集,可以实时分析新的业务数据,帮助用户发掘出数据的价值。昆仑数据库支持公有云和私有云环境的部署,可以与docker,k8s等云基础设施无缝协作,可以轻松搭建云数据库服务。
请访问 http://www.kunlunbase.com/ 获取更多信息并且下载昆仑数据库软件、文档和资料。
KunlunBase项目已开源
【GitHub:】
https://github.com/zettadb
【Gitee:】
https://gitee.com/zettadb

相关文章