Hadoop简述及HDFS集群搭建详解

简介: Hadoop简述及HDFS集群搭建详解

什么是Hadoop?

海量数据处理的一个技术(软件工具)

Hadoop中有3个核心组件

1.分布式文件系统(HDFS)——实现将文件分布式存储在很多服务器上,功能是管理文件,实际上是一个软件


2.分布式运算编程框架(MapReduce)——实现在很多机器上分布式并行运算


3.分布式资源调度平台(yarn)——帮用户调度大量的MapReduce程序,并合理分配运算资源

HDFS的整体的运行机制

hdfs集群组成结构

1ecd1b2606ed46e9956a89f231c9802c.png

hdfs有着文件系统共同的特征:

有目录结构,顶层目录是:  /

系统中存放的就是文件

系统可以提供对文件的:创建、删除、修改、查看、移动等功能

hdfs跟普通单机文件系统的区别:

单机文件系统中存放的文件,是在一台机器的操作系统中

hdfs的文件系统会横跨N多的机器

单机文件系统中存放的文件,是在一台机器的磁盘上

hdfs文件系统中存放的文件,是落在n多机器的本地单机文件系统中(hdfs是一个基于linux本地文件系统之上的文件系统)

hdfs的工作机制:

1.客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:datanode),准确来说:切块的行为是由客户端决定的


2.一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:namenode)


3、为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)


综上:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!

搭建hdfs分布式集群

安装hdfs集群的具体步骤

一、首先需要准备N台linux服务器/虚拟机(4台虚拟机:1个namenode节点  + 3 个datanode 节点)


二、修改各台机器的主机名和ip地址


三、从windows中用CRT软件进行远程连接


在windows中将各台linux机器的主机名配置到的windows的本地域名映射文件中:


c:/windows/system32/drivers/etc/hosts


设置linux服务器的基础软件环境

1.防火墙


关闭防火墙:service iptables stop  


关闭防火墙自启: chkconfig iptables off


2.安装jdk:(hadoop体系中的各软件都是java开发的)


3.集群内主机的域名映射配置

安装hdfs集群

一、上传hadoop安装包到hdp-01集群任一节点(master)

tar -zxvf 软件包 -C 指定安装文件夹

二、修改配置文件

1.指定Hadoop的默认文件系统为hdfs

2.指定hdfs的namenode节点为哪台机器

3.指定namenode软件存储元数据的本地目录

4.指定datanode软件存放文件块的本地目录

三、进入安装目录

cd etc/hadoop/

1.vi hadoop-env.sh

修改:

export JAVA_HOME=/root/apps/jdk  # jdk 安装位置

1ecd1b2606ed46e9956a89f231c9802c.png

2.vi core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000/</value>  #namenode设置成master
</property>
</configuration>

3.vi hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>  
<value>/root/data/name</value>  #存储元数据的本地目录
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/data/data</value>  #存放文件块的本地目录
</property>
#防止单点故障的配置
<property>
<name>dfs.namenode.secondary.http-address</name> 
<value>hdp1:50090</value>
</property>
</configuration>

4.配置Hadoop的环境变量 要运行hadoop的命令,需要在linux环境中配置HADOOP_HOME和PATH环境变量

vi  /etc/profile

export HADOOP_HOME=/root/apps/hadoop-2.8.4  #hadoop 安装位置
export PATH=.:$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

1ecd1b2606ed46e9956a89f231c9802c.png

保存之后,别忘了 source /etc/profile使配置生效

5.把这台机器安装的Hadoop拷贝到其他机器

scp -r hadoop-2.4.8 hdp1:$PWD

四、初始化namenode的元数据目录

要在master上执行hadoop的一个命令来初始化namenode的元数据存储目录

hadoop namenode -format

1.创建一个全新的元数据存储目录

2.生成记录元数据的文件fsimage

3.生成集群的相关标识:如:集群id——clusterID

五、启动Hadoop

单独启动

hadoop-daemon.sh start namenode

启动完后,首先用jps查看一下namenode的进程是否存在  

然后,在windows中用浏览器访问namenode提供的web端口:50070

http://master:50070

1ecd1b2606ed46e9956a89f231c9802c.png

然后,启动众datanode们(在任意地方)


hadoop-daemon.sh start datanode


补充:


Namenode监听两个端口——9000(客户端和namenode交互);50070(namenode内置的服务器)


用自动批量启动脚本来启动HDFS


先配置master到集群中所有机器(包含自己)的免密登陆

配完免密后,可以执行一次  ssh 0.0.0.0

修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)

vi slaves 加入节点名称

1ecd1b2606ed46e9956a89f231c9802c.png

启动/停止

1.master上用脚本:start-dfs.sh 来自动启动整个集群

2.如果要停止,则用脚本:stop-dfs.sh

相关文章
|
4月前
|
存储 分布式计算 Hadoop
Hadoop系列HDFS详解
Hadoop系列HDFS详解
40 0
|
5天前
|
分布式计算 Hadoop 测试技术
Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
【4月更文挑战第5天】Hadoop【基础知识 05】【HDFS的JavaAPI】(集成及测试)
28 8
|
5天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03+04】【Hadoop集群资源管理器yarn】(图片来源于网络)(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第5天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
31 9
|
6天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
18 5
|
6天前
|
分布式计算 资源调度 Hadoop
Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
【4月更文挑战第4天】Hadoop【基础知识 03】【Hadoop集群资源管理器yarn】(图片来源于网络)
19 4
|
8天前
|
存储 分布式计算 Hadoop
【Hadoop】Hadoop的三种集群模式
【4月更文挑战第9天】【Hadoop】Hadoop的三种集群模式
|
9天前
|
存储 分布式计算 Hadoop
【Hadoop】HDFS 读写流程
【4月更文挑战第9天】【Hadoop】HDFS 读写流程
|
28天前
|
分布式计算 资源调度 Hadoop
Hadoop集群基本测试
Hadoop集群基本测试
22 0
|
3月前
|
存储 分布式计算 Hadoop
Hadoop的Secondary NameNode在HDFS中的作用是什么?
Hadoop的Secondary NameNode在HDFS中的作用是什么?
36 0
|
3月前
|
分布式计算 Hadoop Java
linux上面hadoop配置集群
linux上面hadoop配置集群
46 0

热门文章

最新文章