当前位置:首页 > 实用技巧 >

hdfs 文件合并(hdfs小文件处理方法)

来源:原点资讯(www.yd166.com)时间:2023-11-28 11:18:45作者:YD166手机阅读>>

HDFS作为Hadoop大数据处理框架下的分布式文件系统,深受开发人员的喜爱,为此许多人想在自己的linux单机上搭建出HDFS集群,但是对于个人很难通过自身现有的条件搭建出具有多台主机并通过网络进行互联的HDFS集群。为此本文主要介绍如果通过Docker在单机上就能搭建出完全模式的HDFS集群,首先准备一台具有Ubuntu系统的主机,其具体的搭建过程如下:

1、安装Docker

Docker是一个开源的应用容器引擎,能够让用户快速方便在自己电脑上虚拟出各种需要的环境以及应用。其安装过程如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

如果系统中无curl命令,通过如下命令进行安装:

sudo apt-get install curl

2、配置Docker国内镜像

由于docker默认的镜像地址在国外,如果不配置国内镜像的话,下载的速度将会非常缓慢,为此需要需要为Docker配置上国内镜像。

首先,在docker的配置文件下创建daemon.json文件,创建命令如下:

sodu vim /etc/docker/daemon.json

然后,在daemon.json文件里配置国内镜像,配置内容如下:

{ "registry-mirrors" : [ "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com", "https://cr.console.aliyun.com/" ] }

最后,对docker进行重启,使配置文件进行生效,重启命令如下:

systemctl restart docker.service

同时,我们也可以利用docker info 来查阅当前注册的镜像源列表,验证我们配置的镜像源是否生效。如果出现如图下面的红框内容,则说明配置成功。

hdfs 文件合并,hdfs小文件处理方法(1)

验证docker国内镜像是否配置成功

3、利用docker创建Hadoop镜像

配置docker国内镜像,需要先在docker上搭建出linux环境,然后在这个环境中安装Hadoop,其操作如下所示:

sudo docker pull ubuntu // 从docker仓库中拉取下ubuntu镜像 // 启动ubuntu镜像创建一个容器并为这个容器配置交互模块,命名该容器为hadoop_base, // 同时为这个启动的虚拟主机命名为Hadoop // -it 配置交互模式 // --name 为容器命名 // -h 为虚拟主机命名 // bash 为交互模式启动终端 sudo docker run -it --name hadoop_base -h hadoop ubuntu:latest bash

4、容器配置

通过上面3个步骤,我们将进入到配置的容器内部,该内部跟一个ubuntu系统内的内容完全一致,为了后续Hadoop的安装做好准备,需要通过如下命名来对容易进行配置。

apt update // ubuntu进行更新 apt install vim // 安装vim编辑器 apt-get install openssh-server // 安装ssh apt-get install rsync // 安装rsync apt-get install iputils-ping // 安装ping apt-get install net-tools // 安装网络工具 mkdir /opt/modules // 创建Hadoop安装目录 mkdir /opt/softwares // 创建Hadoop软件存放路径 exit // 退出当前系统

5、拷贝Hadoop、jdk安装程序到docker中

在主机中下载jdk以及Hadoop安装程序,通过复制命名将这两个文件复制到docker容器中,其命令如下:

// 拷贝当前系统下的hadoop-2.7.2.tar.gz 到hadoop_base容器下的/opt/softwares下 sudo docker cp ./hadoop-2.7.2.tar.gz hadoop_base:/opt/softwares // 拷贝当前系统下jdk 到hadoop_base容器下的/opt/softwares下 sudo docker cp ./jdk-8u261-linux-x64.tar.gz hadoop_base:/opt/softwares // 进入到hadoop_base容器内部 sudo docker exec -it hadoop_base // 创建安装目录 mkdir /opt/modules // 进入/opt/softwares目录下 cd /opt/softwares // 进行Hadoop安装 并指定安装目录 tar -zxvf hadoop-2.7.2.tar.gz -C /opt/modules/ // 进行jdk安装 并指定安装目录 tar -C /opt/modules/

6、配置环境变量

为了使系统能够识别出jdk与Hadoop的运行地址,所以需要在系统的配置文件中添加上其运行地址。

// 在docker环境下需要更改/root/.bashrc配置,而不是/etc/profile文件 vim /root/.bashrc // 在文件中添加Java与Hadoop的安装路径 export JAVA_HOME=/opt/modules/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin export HADOOP_HOME=/opt/modules/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin // 使配置文件生效 source /root/.bashrc

7、制作Hadoop镜像

通过前6步的操作,基本上就搭建出Hadoop的基础环境了,为此我们可以将该容器制作成镜像,以方便在docker上进行容器复制,其具体操作如下:

// 将hadoop_base容器进行导出 sudo docker export hadoop_base > hadoop_base.tar // 导入hadoop_base.tar 成为新的镜像 sudo docker import hadoop_base.tar hadoop // 创建hadoop集群容器 // 规划一个NameNode节点并将端口50070进行绑定 sudo docker run -it -p 50070:50070 --name hadoop1 -h master hadoop bash // 规划一个DataNode节点并将端口8088进行绑定 sudo docker run -it -p 8088:8088 --name hadoop2 -h slave1 hadoop bash // 规划一个DataNode节点 sudo docker run -it --name hadoop3 -h slave2 hadoop bash

8、记录三个容器的IP地址,并为每个容器添加域名映射

// 进入master主机中 sudo docker exec -it hadoop1 bash // 通过ifcofig命令查看该主机的ip ifcofig //在/etc/hosts文件中配置域名映射 vim /etc/hosts // 将通过ifcofig查询出的三台主机的IP以及对应的域名填写到hosts文件中 172.17.0.2 master 172.17.0.3 slave1 172.17.0.4 slave2

9、配置免密

由于hadoop集群中的主机之间需要相互通信,如果不配置通信免密,将会导致集群内的主机不能很好的互通,其配置过程如下:

// 启动ssh /etc/init.d/ssh start // 生成密钥 ssh-keygen 三次回车 // 将公钥复制到文件中 cat ~/.ssh/id_rsa.pub > authorized_keys // 然后在三台主机中都进行上述的操作 // 退出容器,将公钥文件进行复制 sudo docker cp hadoop1:/root/.ssh/authorized_keys ./authorized_keys_1 sudo docker cp hadoop2:/root/.ssh/authorized_keys ./authorized_keys_2 sudo docker cp hadoop3:/root/.ssh/authorized_keys ./authorized_keys_3 // 再将三个文件进行合并 cat authorized_keys_1 authorized_keys_2 authorized_keys_3 > authorized_keys // 再将合并的后的秘钥分发到各个主机上 sudo dokcer cp ./authorized_keys hadoop1:/root/.ssh/authorized_keys sudo dokcer cp ./authorized_keys hadoop2:/root/.ssh/authorized_keys sudo dokcer cp ./authorized_keys hadoop3:/root/.ssh/authorized_keys

10、HDFS相关配置

配置好三台主机的ssh登录免密后,下面将对HDFS进行配置,其配置过程如下:

// 进入master主机 sudo docker exec -it hadoop1 // 进入配置文件目录 cd /opt/modules/hadoop-2.7.2/etc/hadoop // 对core-site.xml 文件进行编辑 vim core-site.xml // 配置NameNode节点地址以及存储地址 <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> </property>

11、进行HDFS启动

配置好后,进入到master主机上进行hdfs启动,其过程如下:

// 进入到master主机上 sudo docker exec -it hadoop1 // 先进行格式化 hdfs namenode -format // 进入bin文件夹 cd /opt/modules/hadoop2.7.2/bin/ //启动hdfs ./start-hfs.sh

至此hdfs在docker即可配置成功。

栏目热文

vfs文件(vfs文件怎么打开)

vfs文件(vfs文件怎么打开)

概述本文将介绍一下Linux的VFS虚拟机文件系统,主要介绍该文件系统在Linux中的作用及概要实现。我们知道在Linu...

2023-11-28 11:48:44查看全文 >>

hdfs如何在文件中添加内容(hdfs创建文件并写入内容)

hdfs如何在文件中添加内容(hdfs创建文件并写入内容)

HDFS是基于Java的文件系统,可在Hadoop生态系统中提供可扩展且可靠的数据存储。因此,我们需要了解基本的HDFS...

2023-11-28 11:27:18查看全文 >>

过大的vfs文件会导致无法使用吗(vfs文件删除影响软件使用吗)

过大的vfs文件会导致无法使用吗(vfs文件删除影响软件使用吗)

一.VFS(虚拟文件系统)和Ext2关系:VFS是Linux中的一个虚拟文件文件系统,它为应用程序员提供一层抽象,屏蔽底...

2023-11-28 11:22:37查看全文 >>

vfs文件不存在(vfs文件是什么 求答案)

vfs文件不存在(vfs文件是什么 求答案)

前言为什么 Linux 内核的文件系统类型那么多,都能挂载上呢?为什么系统里可以直接 mount 其他文件系统呢?甚至能...

2023-11-28 11:19:23查看全文 >>

hdfs小文件的处理(hdfs的文件写入步骤)

hdfs小文件的处理(hdfs的文件写入步骤)

一、背景每个文件均按块存储,每个块的元数据存储在NameNode的内存中,因此hdfs存储小文件会非常低效。因为大量的小...

2023-11-28 11:25:24查看全文 >>

格式化hdfs找不到命令(hdfs重新格式化要怎么做)

格式化hdfs找不到命令(hdfs重新格式化要怎么做)

经过了前几期的介绍hadoop网络交互这块就告一段落了。接下来我们要入坑聊聊hdfs文件系统了。内容应该是越来越精彩了。...

2023-11-28 11:31:30查看全文 >>

应用文具有直接的什么价值(应用文具备什么特点)

应用文具有直接的什么价值(应用文具备什么特点)

应用文是人们在日常工作、学习、生产、生活、交流信息、处理事情、解决问题时而经常使用的,并且有一定惯用格式的实用文体。它具...

2023-11-28 11:40:56查看全文 >>

哪些应用文具有法规性(应用文具有直接的功能性吗)

哪些应用文具有法规性(应用文具有直接的功能性吗)

应用文写作能力已经越来越成为人才素质的一个重要的衡量指标。试想,领导交办“写个东西”交给我,结果交上来的东西杂乱无章、拖...

2023-11-28 11:15:56查看全文 >>

公文具有哪些作用(公文具有哪些特点作用)

公文具有哪些作用(公文具有哪些特点作用)

(一)领导和指导作用 公文的内容反映机关或部门工作的意图,所以具有领导和指导工作的作用,在传达贯彻党和国家的方针政策、...

2023-11-28 11:50:16查看全文 >>

哪些应用文具有鲜明的法规性(应用文具备什么特点)

哪些应用文具有鲜明的法规性(应用文具备什么特点)

2020国家公务员考试申论科目迎来新变化,两套试卷均未考查曾被诸多考生视为必考题的“大作文”题,而是各考查了一道“加强版...

2023-11-28 11:19:21查看全文 >>

文档排行