22 Jan 2022
在Hadoop
大数据平台及生态系统中,使用mapreduce
模型进行编程,对广大用户来说,仍然是具有挑战性的任务。人们希望使用熟悉的SQL
语言,对hadoop
平台上的数据进行分析处理,这就是SQL On Hadoop
系统诞的背景。
SQL on Hadoop
是一类系统的简称,这类系统利用Hadoop
实现大量数据的管理,具体是利用HDFS
实现高度可扩展的数据存储。在HDFS
之上,实现SQL
的查询引擎,使得用户可以使用SQL
语言,对存储在HDFS
上的数据进行分析。
Apache Hive
的产生
Hive
是基于Hadoop
的一个数仓工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的类SQL(HQL)
查询功能,可以将HQL
语句转换成为MapReduce
任务进行运行。使用类SQL
语句就可快速实现简单的MapReduce
统计,不必开发专门的MapReduce
应用。Apache Hive
是由Facebook
开发并开源,最后贡献给Apache
基金会。
Hive
系统整体3
个部分:用户接口、元数据存储、驱动器(Driver
)在Hadoop
上计算与存储。
07 Nov 2021
在Hadoop V1.0
版本中,资源调度部分存在扩展性差、可用性差、资源利用率低的改问题,其中,Job Tracker
既要做资源管理,又要做任务监控,同时Job
的并发数页存在限制。同时,JobTracker
存在单点故障问题,任务调度部分不支持调度流式计算、迭代计算、DAG模型。
2013
年,Hadoop 2.0
发布,引入了Yarn
、HDFS HA
、Federation
。
Yarn的设计思路(Yet Another Resource Manager)
Yarn
由三部分组成:ResourceManager
、NodeManager
、ApplicationMaster
,其中:RM
掌控全局的资源,负责整个系统的资源管理和分配(处理客户端请求、启动/监控AM
和NM
、资源调度和分配),NM
驻留在一个YARN
集群的节点上做代理,管理单个节点的资源、处理RM
、AM
的命令,AM
为应用程序管理器,负责系统中所有所有应用程序的管理工作(数据切分、为APP
申请资源并分配、任务监控和容错)。
Yarn
主要解决数据集群资源利用率低、数据无法共享、维护成本高的问题,常见的应用场景有:MapReduce
实现离线批处理、Impala
实现交互式查询分析、用Strom
实现流式计算、在Spark
下来完成迭代计算。
09 Aug 2021
Hadoop
是Apache
的一个开源的分布式计算平台,以HDFS
分布式文件系统和MapReduce
计算框架为核心,为用户提供一套底层透明的分布式基础设施。
MapReduce
提供简单的API
,允许用户在不了解底层细节的情况下,开发分布式并行程序。利用大规模集群资源,解决传统单机无法解决的大数据处理问题,其设计思想起源于MapReduce Paper
。
MapReduce编程模型
MapReduce
是一种用于处理和生成大型数据集的编程模型和相关实现,用户指定一个map()
函数接收处理key/value
对,同时产生另外一组临时key/value
集合,reduce()
函数合并相同intermediate key
关联的value
数据,以这种函数式方风格写的程序会自动并行化并在大型商品机器集群上运行。
在Paper
发布之前的几年,Jeffrey Dean
及Google
的一些工程师已经实现了数百个用于处理大量原始数据且特殊用途的计算程序,数据源如抓取的文档、Web
日志的请求等,来计算各种派生数据,像倒排索引、Web
文档图结构的各种表示、每个主机爬取的页面数汇总等。
19 Jul 2021
主要介绍HDFS的基本组成和原理、Hadoop 2.0对HDFS的改进、HADOOP命令和基本API、通过读Google File System论文来理解HDFS设计理念。
Hadoop
是Apache
一个开源的分布式计算平台,核心是以HDFS
分布式文件系统和MapReduce
分布式计算框架组成,为用户提供了一套底层透明的分布式基础设施。
HDFS
是Hadoop
分布式文件系统,具有高容错性、高伸缩性,允许用户基于廉价精简部署,构件分布式文件系统,为分布式计算存储提供底层支持。MapReduce
提供简单的API
,允许用户在不了解底层细节的情况下,开发分布式并行程序,利用大规模集群资源,解决传统单机无法解决的大数据处理问题,其设计思想起源Google GFS
、MapReduce Paper
。
在Mac上搭建Hadoop单机版环境
从 https://hadoop.apache.org 下载二进制的安装包,具体配置可进行Google
。配置完成后,在执行HDFS
命令时会提示 Unable to load native-hadoop library for your platform...using buildin-java classes..
,运行Hadoop
的二进制包与当前平台不兼容。
25 Apr 2021
介绍k8s
的核心组件如Pod
、Controller
、StatefulSet
等组件以及组件间通信原理Service
及Ingress
服务。
Docker实例及Pods间的通信原理
在通信协议中“网络栈”包括有:网卡(network interface
)、回环设备(loopback device
)、路由表(routing table
)和iptables
规则。在docker
中启动一个容器可使用宿主机的网络栈(-net=host
),指定-net
后默认不开启network namespace
空间:
$ docker run –d –net=host --name nginx-host nginx
nginx
服务启动后默认监听主机80
端口,容器启动后会创建一个docker0
的网桥。docker
实例通过Veth Pair
与宿主机建立连接关系,其中Veth
的一端在容器内,另一段插在宿主机的docker0
网桥上。