BigData Proprietary Concepts

该博文主要用于介绍数据收集, 存储, 治理, 消费等领域的一些专有概念.


存储

Storage

Hadoop

Hive

Service

HiveServer

HiveServer is an optional service that allows a remote client to submit requests to Hive, using a variety of programming languages, and retrieve results. HiveServer is built on Apache Thrift, therefore it is sometimes called the Thrift server although this can lead to confusion because a newer service named HiveServer2 is also built on Thrift. Since the introduction of HiveServer2, HiveServer has also been called HiveServer1.
<这里补个翻译.>
Quoting from HiveServer – Apache

HiveServer的问题在于, 由于Thrift接口的限制, 导致HiveServer无法并发处理多个客户请求, 因此在HiveServer2中对这些问题进行了修正. 同时HiveServer也在Hive 0.14.1后的版本中被移除. 官方建议用HiveServer2进行替代.

HiveServer cannot handle concurrent requests from more than one client. This is actually a limitation imposed by the Thrift interface that HiveServer exports, and can’t be resolved by modifying the HiveServer code.
HiveServer2 is a rewrite of HiveServer that addresses these problems, starting with Hive 0.11.0. Use of HiveServer2 is recommended.
HiveServer was removed from Hive releases starting in Hive 1.0.0 (formerly called 0.14.1). Please switch over to HiveServer2.
Quoting from HiveServer – Apache

HiveServer2

HS2 uses a TThreadPoolServer (from Thrift) for TCP mode, or a Jetty server for the HTTP mode.

HiveServer2 Overview – Apache

MetaServer

Client

Client中存在比较多的概念. 先以官网的一句话为开始:

The command line client currently only supports an embedded server. The JDBC and Thrift-Java clients support both embedded and standalone servers. Clients in other languages only support standalone servers.

从这句话中可以得出如下分类.

Client :
1. command line client
2. JDBC and Thrift-Java clients
3. Clients in other languages

Server
1. embedded server
2. standalone server (HiveServer and HiveServer2)

Hive CLI

HiveClient – Apache

Beeline

HiveServer2 (introduced in Hive 0.11) has its own CLI ** called **Beeline, which is a JDBC client based on SQLLine. Due to new development being focused on HiveServer2, Hive CLI will soon be deprecated in favor of Beeline (HIVE-10511).

常见问题

  1. HiveCLI 和 Beeline的关系?
    HiveCLI 对应的是原生的Hive, 而Beeline 对应的是HiveServer2. 同时, HiveCLI在本地运行, 需要本地存有远程Hive的配置方可进行使用, 而Beeline在本地只是一个很轻量级的客户端, 所有的配置都放在HiveServer2端.

References

LanguageManual Cli – Apache
HiveServer – Apache


容器

容器是用来给用户提供独立的计算环境. 主要概念包含单个容器的配置使用, 大规模容器集群的管理.

Docker和容器的崛起
容器是轻量级可执行程序包,作为独立软件运行。它们包含所有必需的组件,如代码,run time,系统工具,库和配置设置,以便一致地执行。

Docker是一个容器的开放平台,但它不是最早的。自20世纪70年代以来,容器平台一直存在。他们的开发可以追溯到Unix中的chroot系统调用。在2000年代早期,FreeBSD Jails和Linux服务器的开发导致了2008年的Linux容器(LXC)。Docker在2013年左右出现在容器领域,并立即取得了成功。原因是Docker使得运行容器变得简单;使用Docker,开发人员可以轻松启动,停止和销毁容器。而且带来的低学习曲线和易用性,使其成为软件开发过程中的主要方向。

最初,由于安全问题,IT运营团队并不热衷于在生产环境中使用容器。当时,他们已经在使用虚拟机(VM)。但与VM不同,主机的内核在容器之间共享。因此,通过容器拿下主机的风险更高。使用此漏洞,黑客可以轻松启动拒绝服务(DoS)和其他形式的攻击。此外,容器是根据常见镜像创建的,团队对使用可能会使整个生产管道面临风险的不良镜像持谨慎态度。

尽管生产团队担心,Docker仍然获得了发展势头,因为它让开发人员变得更轻松。随着技术的成熟,Docker开源社区更加重视解决安全问题。不久,Docker容器开始出现在生产环境中。

Docker

Borg, Omega, Kubernetes

从2000年以来, 谷歌基于容器研发三个容器管理系统, 分别是Borg, OmegaKubernetes.

常见问题

  1. Docker和Kubernetes的关系
    个人理解, Docker和Kubernetes更像是市场上的个体和市场管理者的角色. Docker面向用户, Kubernetes负责底层管理.

References

Docker与Kubernetes,是敌是友?
Kubernetes与Docker的竞争,你了解真实情况吗?
Borg, Omega和Kubernetes:谷歌十几年来从这三个容器管理系统中得到的经验教训
Borg
Large-scale cluster management at Google with Borg
深度译文|Google的大规模集群管理系统Borg
译:Google的大规模集群管理工具Borg(二)—— Borg架构
Kuberneters系列之介绍篇01

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据