1.2 Hadoop

1.2 Hadoop

1.2.1 Hadoop常用端口号

hadoop2.x

hadoop3.x

访问HDFS端口

50070

9870

访问MR执行情况端口

8088

8088

历史服务器

19888

19888

客户端访问集群端口

9000

8020

1.2.2 Hadoop配置文件

配置文件:

hadoop2.x core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml   slaves

hadoop3.x core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml   workers

1.2.3 HDFS读流程写流程

注意:HDFS写入流程时候,某台dataNode挂掉如何运行?

当DataNode突然挂掉了,客户端接收不到这个DataNode发送的ack确认,客户端会通知NameNode,NameNode检查并确认该块的副本与规定的不符,NameNode会通知闲置的DataNode去复制副本,并将挂掉的DataNode作下线处理。等挂掉的DataNode节点恢复后, 删除该节点中曾经拷贝的不完整副本数据。

1.2.4 HDFS小文件处理

1)会有什么影响

(1)存储层面

1个文件块,占用namenode多大内存150字节

128G能存储多少文件块?   128 g* 1024m*1024kb*1024byte/150字节 = 9.1亿文件块

(2)计算层面

每个小文件都会起到一个MapTask,1个MapTask默认内存1G。浪费资源。

2)怎么解决

(1)采用har归档方式,将小文件归档

(2)采用CombineTextInputFormat

(3)自己写一个MR程序将产生的小文件合并成一个大文件。如果是Hive或者Spark有merge功能自动帮助我们合并。

4)有小文件场景开启JVM重用;如果没有小文件,不要开启JVM重用,因为会一直占用使用到的Task卡槽,直到任务完成才释放

JVM重用可以使得JVM实例在同一个job中重新使用N次,N的值可以在Hadoop的mapred-site.xml文件中进行配置。通常在10-20之间。

<property>

    <name>mapreduce.job.jvm.numtasks</name>

    <value>10</value>

    <description>How many tasks to run per jvm,if set to -1 ,there is  no limit</description>

</property>   

1.2.5 HDFS的NameNode内存

1)Hadoop2.x系列,配置NameNode默认2000m

2)Hadoop3.x系列,配置NameNode内存是动态分配的

NameNode内存最小值1G,每增加100万个文件block,增加1G内存。

1.2.6 纠删码原理

CPU资源换取存储空间。

HDFS默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。Hadoop3.x引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。

1.2.7 异构存储(冷热数据分离)

期望经常使用的数据存储在固态硬盘或者内存镜像硬盘;不经常使用的历史数据存储在老旧的破旧硬盘。

1.2.8 Shuffle及优化

1.2.9 Yarn工作机制

1.2.10 Yarn调度器

1Hadoop调度器重要分为三类

FIFO 、Capacity Scheduler(容量调度器)和Fair Sceduler(公平调度器)。

Apache默认的资源调度器是容量调度器

CDH默认的资源调度器是公平调度器。

2)区别

FIFO调度器:支持单队列 、先进先出  生产环境不会用。

容量调度器:支持多队列。队列资源分配,优先选择资源占用率最低的队列分配资源;作业资源分配,按照作业的优先级和提交时间顺序分配资源;容器资源分配,本地原则(同一节点/同一机架/不同节点不同机架)。

公平调度器:支持多队列,保证每个任务公平享有队列资源资源不够时可以按照缺额分配。

3)在生产环境下怎么选择?

     大厂:如果对并发度要求比较高,选择公平,要求服务器性能必须OK。

     中小公司,集群服务器资源不太充裕选择容量。

4)在生产环境怎么创建队列?

(1)调度器默认就1个default队列,不能满足生产要求。

2)按照部门:业务部门1、业务部门2。

3)按照业务模块:登录注册、购物车、下单。

5)创建多队列的好处?

(1)因为担心员工不小心,写递归死循环代码,把所有资源全部耗尽。

(2)实现任务的降级使用,特殊时期保证重要的任务队列资源充足。

业务部门1(重要)=》业务部门2(比较重要)=》下单(一般)=》购物车(一般)=》登录注册(次要)

1.2.11 HDFS块大小

1)块大小

1.x              64m

    2.x  3.x         128m

    本地            32m

    企业            128m  256m   512m

2)块大小决定因素

磁盘读写速度

    普通的机械硬盘 100m/s  =>  128m

    固态硬盘普通的 300m/s  => 256m

    内存镜像     500-600m/s  => 512m

1.2.12 Hadoop脑裂原因及解决办法?

1)出现脑裂的原因

Leader出现故障,系统开始改朝换代,当Follower完成全部工作并且成为Leader后,原Leader又复活了(它的故障可能是暂时断开或系统暂时变慢,不能及时响应,但其NameNode进程还在),并且由于某种原因它对应的ZKFC并没有把它设置为Standby,所以原Leader还认为自己是Leader,客户端向它发出的请求仍会响应,于是脑裂就发生了。

2)Hadoop通常不会出现脑裂。

如果出现脑裂,意味着多个Namenode数据不一致,此时只能选择保留其中一个的数据。例如:现在有三台Namenode,分别为nn1、nn2、nn3,出现脑裂,想要保留nn1的数据,步骤为:

(1)关闭nn2和nn3

(2)在nn2和nn3节点重新执行数据同步命令:hdfs namenode -bootstrapStandby

(3)重新启动nn2和nn3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一鸣888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值