首页 技术 正文
技术 2022年11月9日
0 收藏 543 点赞 3,788 浏览 3272 个字

HDFS的主要设计理念

1、存储超大文件 这里的“超大文件”是指几百MB、GB甚至TB级别的文件。 
2、最高效的访问模式是 一次写入、多次读取(流式数据访问)
3、运行在普通廉价的服务器上 HDFS设计理念之一就是让它能运行在普通的硬件之上,即便硬件出现故障,也可以通过容错策略来保证数据的高可用。

HDFS的缺点

1、将HDFS用于对数据访问要求低延迟的场景 由于HDFS是为高数据吞吐量应用而设计的,必然以高延迟为代价。
2、存储大量小文件 HDFS中元数据(文件的基本信息)存储在namenode的内存中,而namenode为单点,小文件 数量大到一定程度,namenode内存就吃不消了

HDFS分布式文件系统

hdfs:分布式文件系统
hdfs有着文件系统共同的特征:
1、有目录结构,顶层目录是: /
2、系统中存放的就是文件
3、系统可以提供对文件的:创建、删除、修改、查看、移动等功能hdfs跟普通的单机文件系统有区别:
1、单机文件系统中存放的文件,是在一台机器的操作系统中
2、hdfs的文件系统会横跨N多的机器
3、单机文件系统中存放的文件,是在一台机器的磁盘上
4、hdfs文件系统中存放的文件,是落在n多机器的本地单机文件系统中(hdfs是一个基于linux本地文件系统之上的文件系统)hdfs的工作机制:
1、客户把一个文件存入hdfs,其实hdfs会把这个文件切块后,分散存储在N台linux机器系统中(负责存储文件块的角色:data node)<准确来说:切块的行为是由客户端决定的>2、一旦文件被切块存储,那么,hdfs中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器(负责记录块信息的角色是:name node)3、为了保证数据的安全性,hdfs可以将每一个文件块在集群中存放多个副本(到底存几个副本,是由当时存入该文件的客户端指定的)综述:一个hdfs系统,由一台运行了namenode的服务器,和N台运行了datanode的服务器组成!

搭建hdfs分布式集群

一、首先需要准备N台linux服务器

学习阶段,用虚拟机即可!

先准备4台虚拟机:1个namenode节点  + 3 个datanode 节点

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

主机名: hdp-01       对应的ip地址: 192.168.11.25

主机名: hdp-02      对应的ip地址: 192.168.11.26

主机名: hdp-03         对应的ip地址: 192.168.11.27

主机名: hdp-04         对应的ip地址: 192.168.11.28

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

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

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

192.168.11.25    hdp-01

192.168.11.26    hdp-02

192.168.11.27    hdp-03

192.168.11.28    hdp-04

用crt连接上后,修改一下crt的显示配置(字号,编码集改为UTF-8):

四、配置linux服务器的基础软件环境

关闭防火墙

关闭防火墙:systemctl  stop  firewalld
关闭防火墙自启动: systemctl disable firewalld

安装JDK

1)利用alt+p 打开sftp窗口,然后将jdk压缩包拖入sftp窗口2)然后在linux中将jdk压缩包解压到/root/apps 下3)配置环境变量:JAVA_HOME   PATH
vi /etc/profile 在文件的最后,加入:
export JAVA_HOME=/root/apps/jdk1.8.0_60
export PATH=$PATH:$JAVA_HOME/bin4)修改完成后,记得 source /etc/profile使配置生效5)检验:在任意目录下输入命令: java -version 看是否成功执行6)将安装好的jdk目录用scp命令拷贝到其他机器7)将/etc/profile配置文件也用scp命令拷贝到其他机器并分别执行source命令

在hdp-01上,vi /etc/hosts

192.168.11.25   hdp-01
192.168.11.26 hdp-02
192.168.11.27 hdp-03
192.168.11.28 hdp-04

将hosts文件拷贝到集群中的所有其他机器上

scp /etc/hosts hdp-02:/etc/
scp /etc/hosts hdp-03:/etc/
scp /etc/hosts hdp-04:/etc/

五、 安装hdfs集群

1、上传hadoop安装包到hdp-01

1)利用alt+p 打开sftp窗口,然后将jdk压缩包拖入sftp窗口
2)然后在linux中将hadoop-2.8.0压缩包解压到/root/apps下

2、修改配置文件

核心配置参数:
1)指定hadoop的默认文件系统为:hdfs2)指定hdfs的namenode节点为哪台机器3)指定namenode软件存储元数据的本地目录4)指定datanode软件存放文件块的本地目录

hadoop的配置文件在:/root/apps/hadoop安装目录/etc/hadoop/

1)修改hadoop-env.sh
export JAVA_HOME=/root/apps/jdk1.8.0_60
2) 修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp01:9000</value>
</property>
</configuration>
3) 修改hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/dfs/name</value>
</property><property>
<name>dfs.datanode.data.dir</name>
<value>/root/dfs/data</value>
</property></configuration>
4) 拷贝整个hadoop安装目录到其他机器
scp -r /root/apps/hadoop-2.8.0 hdp02:/root/apps/
scp -r /root/apps/hadoop-2.8.0 hdp03:/root/apps/
scp -r /root/apps/hadoop-2.8.0 hdp04:/root/apps/
5) 启动HDFS
首先,初始化namenode的元数据目录
要在hdp-01上执行hadoop的一个命令来初始化namenode的元数据存储目录
hadoop namenode -format
创建一个全新的元数据存储目录
生成记录元数据的文件fsimage
生成集群的相关标识:如:集群id——clusterID然后,启动namenode进程(在hdp-01上)
hadoop-daemon.sh start namenode
启动完后,首先用jps查看一下namenode的进程是否存在然后,在windows中用浏览器访问namenode提供的web端口:50070
http://hdp-01:50070然后,启动众datanode们(在任意地方)
hadoop-daemon.sh start datanode
6) 用自动批量启动脚本来启动HDFS
a.先配置hdp01到集群中所有机器(包含自己)的免密登陆
b.配完免密后,可以执行一次 ssh 0.0.0.0
c.修改hadoop安装目录中/etc/hadoop/slaves(把需要启动datanode进程的节点列入)
hdp-01
hdp-02
hdp-03
hdp-04
d.在hdp01上用脚本:start-dfs.sh 来自动启动整个集群
e.如果要停止,则用脚本:stop-dfs.sh
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,496
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,909
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,743
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,496
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,134
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298