Hadoop实战-part1

简介: Hadoop实战-part1

1.Hadoop优点:

 1)高可靠性-可以传任何数据(历史数据);
 2)高扩展性-可扩展至2500台左右节点(2300台就要做业务的剥离、迁移),到2700台,会出现各种奇怪的错误;
 3)高效性-节点动态平衡,即动态移动数据,保证节点动态平衡,增快处理速度。
 4)高容错性-默认3个副本,什么时候改这个数值?即当应用访问这份数据并发数上升的时候,可扩展副本数;(三份副本,可以供3个应用程序并发访问)
             能够自动将失败的任务重新分配执行,失败4次后终止

2.Hadoop安装

 1)Hadoop企业安装,建议选择版本号x.y.z,z不为0即可;0表示大版本;
    jdk 1.8->hadoop->scala 2.11.x->IDEA免费版(LiteIdea为GO语言开发唯一的免费开发工具)
 2)Hadoop目录
    bin-指令;lib-依赖包;
    sbin-启停;
    etc-配置文件(hadoop-env.sh,core-site.xml,mapred-site.xml,slaves-所有dn的IP地址一行一个,hdfs-site.xml,yarn-site.xml);
    查错:$hadoop_home$/logs中对应节点的日志,.out的是当下启动的日志,1...是历史的
 3)CDH缺陷:配置必须要在CM页面上改(后台改很多时候是不生效的),对其他组件软件版本有限制。版本不兼容问题:XXXX类方法不存在或参数类型不匹配;buffer版本不一样;

3.HDFS的设计目标

 1)理想状态:一个或几个节点失效不影响数据完整性;
 2)设计原则:文件以块存储,把文件切块,每个块128M(可以把块大小调大为256M、512M、SSD甚至可以配成1G,以解决CPU等待的问题;SSD同颗粒读写次数远低于SATA盘,服务器一般只会配128G的SSD盘,其他选择SATA盘)
 3)单一master(NameNode)来协调存储元数据:元数据是描述数据的数据(每一条存在内存中的大小为150byte);所以,根据hdfs的大小,可以推算出namenode该使用多少内存。
 注意:单一master(nn)和slave(dn)---> M/S架构:ms架构图一定是“品”字状。nn怎样存储元数据?nn中有两个文件:edit和fsimage,当第一次启动集群时,dn会以心跳方式将一些信息汇报给nn,nn收到后会构造出拓扑图,再把当下的内存信息写到fsimage中去,即当下的内存信息就等于fsiamge;
 问题:nn挂掉后如何恢复?先读出fsimage信息,再调出edit文件。正常关闭集群时,整个过程nn什么都不做,再启动时dn再重新汇报。
 
      4)客户端对文件没有缓存机制---高版本是有缓存机制的
 问题(1)当DN节点达到百台以上,当hdfs重启后,会经常出现几台节点lost的情况,甚至手动起来后又lost掉了:
    DN 10分钟没有退出交换空间,在Linux机制中,当内存不够用时,就会使用交换空间(swap),此时系统会将对外提供的所有进程全部挂起,所以一般大数据架构一般禁用交换空间;
    起来后又lost:NN认为你已经挂了,会列入NN的黑名单,直接启动自杀进程把这个NN杀掉。——解决办法:去黑名单把这个DN的域名删掉;
 2)NN发送心跳保持给DN,是通过SSH协议做的
 3)如果NN10分钟没有接到DN的心跳,则认为其lost,并copy其上的block至其他DN(找其他副本)。但不会立即拷贝(后面提到的三周时间节点会拷贝)
 4)Block存放策略:副本1随机挑一台磁盘不太满,CPU不太忙的节点;副本2放在副本1不同的机架的节点上;副本3放在副本1同样的机架的不同节点上面;其他随机;
 5)大量的零散文件不适合放hadoop,会撑爆NN的内存空间(每一个文件(即使未达到128M),按block,每一个block会存一个命名空间150字节)
 6)DN在其文件创建后三周验证其checksum——三周是可改的     

5.SNN(相当于nn的冷备)

       作用:1、当nn挂了时,可以对外提供服务(Hadoop中只允许一个nn节点对外提供服务);2、定期的从nn中两个文件edit和fsimage抽取过来。
 1)NN-fsimage记录正常启动时的元数据,edits是记录启动后的增量数据,即操作日志,这个文件比fsimage大,启动时最耗时间;
 2)NN到SNN切换过程中,是人为干预的,切换过程中会造成数据丢失;

6.安全模式

 1)系统进入安全模式的两种情况:集群启动,在收集DN的信息时;HDFS磁盘坏损30%-50%(该情况绝对有部分数据丢失,不再能找回),运维人员要手工检查,人工补回,熟悉命令fsck,并把所有参数弄会;
    后一种情况发生时,不能再读了(一半可能性失败)
    如果发生进入安全模式的情况,一定会出现数据丢失。
    引申-当在集群第二次发送format(即不小心执行了format命令)的补救措施:format第一次运行,创建文件,并在nn上创建uuid,并把uuid发到dn上。当format第二次执行时,就在dn上把原来的uuid复制一份粘贴到nn上去。再把第一次创建的文件结构全部删掉。
 2)HDFS Client:发出请求的那台node机器,不管是集群内的还是集群外的,就是客户端。
    HDFS文件写入,设计写入方式是去中心化,减少clientnode的压力。

7.HDFS API

 1)企业应用时:API与指令,首选应该是指令,当指令的性能解决不了的时候,用API;
 2)学生应用时:应首选API,因为要对内部有了解,企业追求效率;

总结:Hadoop应用场景:超大文件;流式数据访问-一次写入,多次读取。传输时间与寻址时间;商用硬件;

  Hadoop生态链比较丰富,可以弥补它的部分缺陷(缺陷:不适用与低延时的数据使用;大量小文件;多用户写入,任意修改文件;)
相关文章
|
5月前
|
SQL 分布式计算 Hadoop
大数据行业部署实战1:Hadoop伪分布式部署
大数据行业部署实战1:Hadoop伪分布式部署
162 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
207 0
|
6月前
|
分布式计算 Hadoop 大数据
大数据Hadoop之——Apache Hudi 数据湖实战操作(Spark,Flink与Hudi整合)
大数据Hadoop之——Apache Hudi 数据湖实战操作(Spark,Flink与Hudi整合)
|
4月前
|
分布式计算 大数据 Scala
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
92 1
|
存储 SQL 分布式计算
《离线和实时大数据开发实战》(三)Hadoop原理实战
《离线和实时大数据开发实战》(三)Hadoop原理实战
445 0
《离线和实时大数据开发实战》(三)Hadoop原理实战
|
4月前
|
分布式计算 资源调度 搜索推荐
《PySpark大数据分析实战》-02.了解Hadoop
大家好!今天为大家分享的是《PySpark大数据分析实战》第1章第2节的内容:了解Hadoop。
48 0
《PySpark大数据分析实战》-02.了解Hadoop
|
4月前
|
存储 分布式计算 搜索推荐
【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)
【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)
46 0
|
4月前
|
分布式计算 Hadoop 大数据
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
150 0
|
4月前
|
分布式计算 搜索推荐 Hadoop
阿里巴巴资深架构师熬几个通宵肛出来的Spark+Hadoop+中台实战pdf
Spark大数据分析实战 1、Spark简介 初识Spark Sp ark生态系统BDAS Sp ark架构与运行逻辑 弹性分布式数据集
|
4月前
|
分布式计算 算法 大数据
大数据Spark企业级实战与Hadoop实战&PDF和PPT
今天给大家分享的是《大数据Spark企业级实战》与《Hadoop实战》《大数据处理系统·Hadoop源代码情景分析》《50个大厂大数据算法教程》等销量排行前10名的大数据技术书籍(文末领取PDF版)。这些书籍具有以下几个优点:易读、实践性强,对解决工作中遇到的业务问题具有一定启发性。

相关实验场景

更多