
# Kudu应用开发常用概念
#### Table
Kudu Table可以创建为内部表或外部表，其中内部表由Impala管理，而外部表不由Impala管理，但可以通过Impala进行查询。
Table有schema和primary key属性，且可以划分为多个tablet。
#### Tablet
Tablet是指数据分片，可以指定副本数，存放在多个tablet server上，多个副本中有一个是leader tablet；所有的副本都可以读，但是写操作只有leader tablet可以，写操作利用一致性算法（Raft）。
#### Tablet server
Tablet server是数据存储节点，存放tablet并且响应client请求，一个tablet server存放多个tablet。
#### Master
Master是中心管理节点，负责管理所有的tablet、tablet server以及副本之间的关联关系。同一时间集群中只有一个acting master（leader master），如果leader master故障，一个新的master会通过Raft算法选举出来。所有的master数据都存放在一个tablet中，这个tablet会被复制到所有的candidate master上；tablet server会定期向master发送心跳。
#### Kudu
Kudu的管理工具，可以用来检查集群的健康状况、日常运维等操作。
#### keytab文件
存放用户信息的密钥文件，应用程序采用此密钥文件在组件中进行API方式认证。
#### Schema
表信息，用来表示表中列的信息。
