大数据

大数据入门(三) - HDFS 伪分布式环境搭建

2019-04-01  本文已影响18人  JavaEdge

1 HDFS概述及设计目标

1.1 什么是HDFS:

1.2 HDFS的设计目标:

HDFS官方文档地址

2 HDFS架构

HDFS是主/从式的架构。一个HDFS集群会有一个NameNode(简称NN),也就是命名节点,该节点作为主服务器存在(master server).

HDFS公开了文件系统名称空间,允许用户将数据存储在文件中,就好比我们平时使用操作系统中的文件系统一样,用户无需关心底层是如何存储数据的
而在底层,一个文件会被分成一个或多个数据块,这些数据库块会被存储在一组数据节点中。在CDH中数据块的默认大小是128M,这个大小我们可以通过配置文件进行调节
在NameNode上我们可以执行文件系统的命名空间操作,如打开,关闭,重命名文件等。这也决定了数据块到数据节点的映射。

我们可以来看看HDFS的架构图


HDFS被设计为可以运行在普通的廉价机器上,而这些机器通常运行着一个Linux操作系统。HDFS是使用Java语言编写的,任何支持Java的机器都可以运行HDFS
使用高度可移植的Java语言编写的HDFS,意味着可以部署在广泛的机器上
一个典型的HDFS集群部署会有一个专门的机器只能运行NameNode,而其他集群中的机器各自运行一个DataNode实例。虽然一台机器上也可以运行多个节点,但是并不建议这么做,除非是学习环境。

总结

NN

DN

3 HDFS副本机制

在HDFS中,一个文件会被拆分为一个或多个数据块
默认情况下,每个数据块都会有三个副本
每个副本都会被存放在不同的机器上,而且每一个副本都有自己唯一的编号

4 HDFS 副本存放策略

NameNode节点选择一个DataNode节点去存储block副本得过程就叫做副本存放,这个过程的策略其实就是在可靠性和读写带宽间得权衡。

《Hadoop权威指南》中的默认方式:

可以看出这个方案比较合理

5 HDFS伪分布式环境搭建

5.1 官方安装文档地址

5.2 环境参数

5.3 安装配置

下载Hadoop 2.6.0-cdh5.7.0的tar.gz包并解压:

CentOS 环境安装步骤
MacOS安装环境
安装jdk
jdk安装路径
/usr/libexec/java_home -V:列出所有版本的JAVA_HOME
设置 JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
export CLASS_PATH=$JAVA_HOME/lib 
Mac OS X ssh设置

这时你再ssh localhost一下


5.3 下载 Hadoop

下载

tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz

以上就算是把hadoop给安装好了,接下来就是编辑配置文件,把JAVA_HOME配置一下

cd etc/
cd hadoop
vim hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8/  # 根据你的环境变量进行修改
image 官方指南
export JAVA_HOME=${/usr/libexec/java_home}
image
image

由于我们要进行的是单节点伪分布式环境的搭建,所以还需要配置两个配置文件,分别是core-site.xml以及hdfs-site.xml

Hadoop也可以在伪分布模式下的单节点上运行,其中每个Hadoop守护进程都在单独的Java进程中运行

5.4 启动 HDFS

5.4.1 在启动之前需要先格式化文件系统

$ bin/hdfs namenode -format

只有第一次启动才需要格式化

5.4.2 使用服务启动脚本启动服务

$ sbin/start-dfs.sh

5.4.3 访问http://localhost:50070/

表示HDFS已经安装成功



如上,可以看到节点的信息。到此,我们伪分布式的hadoop集群就搭建完成了.

6 HDFS Shell

以上已经介绍了如何搭建伪分布式的Hadoop,既然环境已经搭建起来了,那要怎么去操作呢?这就是本节将要介绍的内容:

HDFS自带有一些shell命令,通过这些命令我们可以去操作HDFS文件系统,这些命令与Linux的命令挺相似的,如果熟悉Linux的命令很容易就可以上手HDFS的命令



官网指南



先启动 HDFS 配置 hadoop 环境变量
成功
指令集
dfs fs 无差异
上传一个 txt 文件

创建文件夹



多层次文件夹



遍历所有文件夹




删除文件/文件夹




所上传的文件

Java 操作 HDFS 开发环境搭建






pom 文件

JavaAPI 操作 HDFS文件系统


测试通过
上一篇 下一篇

猜你喜欢

热点阅读