为了账号安全,请及时绑定邮箱和手机立即绑定

请教一下hadoop的优点有哪些 a处理超大文件 b低延迟访问数据?

/ 猿问

请教一下hadoop的优点有哪些 a处理超大文件 b低延迟访问数据?

慕少森 2019-09-09 14:14:04

hadoop的优点有哪些 a处理超大文件 b低延迟访问数据


查看完整描述

3 回答

?
烧仙草VB

一、 Hadoop 特点
1、支持超大文件
一般来说,HDFS存储的文件可以支持TB和PB级别的数据。
2、检测和快速应对硬件故障
在集群环境中,硬件故障是常见性问题。因为有上千台服务器连在一起,故障率高,因此故障检测和自动恢复hdfs文件系统的一个设计目标。假设某一个datanode节点挂掉之后,因为数据备份,还可以从其他节点里找到。namenode通过心跳机制来检测datanode是否还存在
3、流式数据访问
HDFS的数据处理规模比较大,应用一次需要大量的数据,同时这些应用一般都是批量处理,而不是用户交互式处理,应用程序能以流的形式访问数据库。主要的是数据的吞吐量,而不是访问速度。访问速度最终是要受制于网络和磁盘的速度,机器节点再多,也不能突破物理的局限,HDFS不适合于低延迟的数据访问,HDFS的是高吞吐量。
4、简化的一致性模型
对于外部使用用户,不需要了解hadoop底层细节,比如文件的切块,文件的存储,节点的管理。
一个文件存储在HDFS上后,适合一次写入,多次写出的场景once-write-read-many。因为存储在HDFS上的文件都是超大文件,当上传完这个文件到hadoop集群后,会进行文件切块,分发,复制等操作。如果文件被修改,会导致重新出发这个过程,而这个过程耗时是最长的。所以在hadoop里,不允许对上传到HDFS上文件做修改(随机写),在2.0版本时可以在后面追加数据。但不建议。
5、高容错性
数据自动保存多个副本,副本丢失后自动恢复。可构建在廉价机上,实现线性(横向)扩展,当集群增加新节点之后,namenode也可以感知,将数据分发和备份到相应的节点上。
6、商用硬件
Hadoop并不需要运行在昂贵且高可靠的硬件上,它是设计运行在商用硬件的集群上的,因此至少对于庞大的集群来说,节点故障的几率还是非常高的。HDFS遇到上述故障时,被设计成能够继续运行且不让用户察觉到明显的中断。
二、HDFS缺点
1、不能做到低延迟
由于hadoop针对高数据吞吐量做了优化,牺牲了获取数据的延迟,所以对于低延迟数据访问,不适合hadoop,对于低延迟的访问需求,HBase是更好的选择,
2、不适合大量的小文件存储
由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量,根据经验,每个文件、目录和数据块的存储信息大约占150字节。因此,如果大量的小文件存储,每个小文件会占一个数据块,会使用大量的内存,有可能超过当前硬件的能力。
3、不适合多用户写入文件,修改文件
Hadoop2.0虽然支持文件的追加功能,但是还是不建议对HDFS上的 文件进行修改,因为效率低。
对于上传到HDFS上的文件,不支持修改文件,HDFS适合一次写入,多次读取的场景。
HDFS不支持多用户同时执行写操作,即同一时间,只能有一个用户执行写操作。



查看完整回答
反对 回复 2019-09-14
?
慕姐8265434

单机也好,集群也好,读文件速度只跟读取的文件所在地有关,有两种情况:1)读取的文件在本机2)读取的文件不在本机;如果文件在本机,读取速度主要跟磁盘读写速度有关,但是都文件不在本机时,读取文件就涉及到网络IO了。
总之,如果是读取本机文件,集群和单机没有区别,如果不是集群会涉及网络IO,而单机不会

查看完整回答
反对 回复 2019-09-14
?
拉莫斯之舞

Hadoop: 一个开源的分布式存储、分布式计算平台.(基于Apache)

Hadoop的组成:
HDFS:分布式文件系统,存储海量的数据。
MapReduce:并行处理框架,实现任务分解和调度。
Hadoop的用处:
搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。
比如搜索引擎、网页的数据处理,各种商业智能、风险评估、预警,还有一些日志的分析、数据挖掘的任务。
Hadoop优势:高扩展、低成本、成熟的生态圈(Hadoop Ecosystem Map)

Hadoop开源工具:
Hive:将SQL语句转换成一个hadoop任务去执行,降低了使用Hadoop的门槛。
HBase:存储结构化数据的分布式数据库,habase提供数据的随机读写和实时访问,实现 对表数据的读写功能。
zookeeper:就像动物管理员一样,监控hadoop集群里面每个节点的状态,管理整个集群 的配置,维护节点针之间数据的一次性等等。
hadoop的版本尽量选稳定版本,即较老版本。
===============================================
Hadoop的安装与配置:
1)在Linux中安装JDK,并设置环境变量
安装jdk: >> sudo apt-get install openjdk-7-jdk
设置环境变量:
>> vim /etc/profile

>> :wq
2)下载Hadoop,并设置Hadoop环境变量
下载hadoop解压缩:
>> cd /opt/hadoop-1.2.1/
>> ls
>> vim /etc/profile

>>:wq

3)修改4个配置文件
(a)修改hadoop-env.sh,设置JAVA_HOME
(b)修改core-site.xml,设置hadoop.tmp.dir, dfs.name.dir, fs.default.name
(c)修改mapred-site.xml, 设置mapred.job.tracker
(d)修改hdfs-site.xml,设置dfs.data.dir
>> cd conf
>> ls

>> vim mapred-site.xml

>> :wq
>> vim core-site.xml
第一部分

第二部分

>> :wq
>> vim hdfs-site.xml

>> :wq
>> vim hadoop-env.sh

>> :wq
# hadoop格式化
>> hadoop namenode -format
# hadoop启动
>> start-all.sh
# 通过jps命令查看当前运行进程
>> jps
看见以下进程即说明hadoop安装成功



查看完整回答
反对 回复 2019-09-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信