kudu的架构体系

下图显示了一个具有三个 master 和多个 tablet server 的 Kudu 集群,每个服务器都支持多个 tablet。它说明了如何使用 Raft 共识来允许 master 和 tablet server 的 leader 和 f ollow。此外,tablet server 可以成为某些 tablet 的 leader,也可以是其他 tablet 的 follower。leader 以金色显示,而 follower 则显示为蓝色。

下面是一些基本概念:

  1. Table(表)
  2.   一张 talbe 是数据存储在 Kudu 的位置。表具有 schema 和全局有序的 primary key(主键)。table 被分成称为 tablets segments
  3. Tablet
  4.   一个 tablet 是一张 table 连续的 segment,与其它数据存储引擎或关系型数据库中的 partition(分区)相似。给定的 tablet 冗余到多个 tablet 服务器上,并且在任何给定的时间点,其中一个副本被认为是 leader tablet。任何副本都可以对读取进行服务,并且写入时需要在为 tablet 服务的一组 tablet server之间达成一致性。
  5. Tablet Server
  6.   一个 tablet server 存储 tablet 和为 tablet client 提供服务。对于给定的 tablet,一个 tablet server 充当 leader,其他 tablet server 充当该 tablet follower 副本。只有 leader服务写请求,然而 leader followers 为每个服务提供读请求。leader 使用 Raft Consunsus Algorithm来进行选举 。一个 tablet server 可以服务多个 tablets ,并且一个 tablet 可以被多个 tablet servers 服务着。

kudu的集群安装

节点规划

  1. 节点 Kudu-master Kudu-tserver
  2. Hadoop01
  3. Hadoop02
  4. Hadoop03

配置本地的CDH-yum源

所有cloudera软件下载地址:

  1. http://archive.cloudera.com/cdh5/cdh/5/
  2. 或者http://archive.cloudera.com/cdh5/

1):上传压缩包并解压

5个G的压缩文件上传/yumData目录下,并进行解压

  1. cd /yumData/
  2. tar -zxvf cdh5.14.0-centos6.tar.gz

2):制作本地yum源

镜像源是centos当中下载相关软件的地址,我们可以通过制作我们自己的镜像源指定我们去哪里下载impala的rpm包,这里我们使用httpd这个软件来作为服务端,启动httpd的服务来作为我们镜像源的下载地址 这里我们选用第三台机器作为镜像源的服务端 node03机器上执行以下命令:

  1. yum -y install httpd
  2. service httpd start
  3. cd /etc/yum.repos.d

vim localimp.repo

  1. [localimp]
  2. name=localimp
  3. baseurl=http://hadoop01/5.14.0
  4. gpgcheck=
  5. enabled=

创建apache httpd的读取连接

  1. setenforce
  2. ln -s /yumData/cdh/5.14. /var/www/html/
  3.  
  4. (删除软连接方式):rm -rf ./5.14.
  5. (错误删除方式):rm -rf ./5.14./

页面访问本地yum源,出现这个界面表示本地yum源制作成功 访问http://hadoop01/5.14.0/

将制作好的localimp配置文件发放到所有需要安装impala的节点上去

  1. cd /etc/yum.repos.d/
  2. scp localimp.repo hadoop02:$PWD
  3. scp localimp.repo hadoop03:$PWD

下载命令:

  1. sudo yum install kudu # Base Kudu files
  2. sudo yum install kudu-master # Kudu master init.d service script and default configuration
  3. sudo yum install kudu-tserver # Kudu tablet server init.d service script and default configuration
  4. sudo yum install kudu-client0 # Kudu C++ client shared library
  5. sudo yum install kudu-client-devel # Kudu C++ client SDK

3):安装

在不同的节点上下载不同的kudu进程即可;

参照我的服务器:

  1. 服务器 命令
  2. hadoop01 yum install -y kudu kudu-master kudu-tserver kudu-client0 kudu-client-devel
  3.  
  4. hadoop02 yum install -y kudu kudu-master kudu-tserver kudu-client0 kudu-client-devel
  5.  
  6. hadoop03 yum install -y kudu kudu-master kudu-tserver kudu-client0 kudu-client-devel

配置master和tserver节点

安装完成之后。 需要在所有节点的/etc/kudu/conf目录下有两个文件:master.gflagfile和tserver.gflagfile 。

默认配置(不采用):

master.gflagfil

  1. # cat /etc/kudu/conf/master.gflagfile
  2. # Do not modify these two lines. If you wish to change these variables,
  3. # modify them in /etc/default/kudu-master.
  4. --fromenv=rpc_bind_addresses
  5. --fromenv=log_dir
  6. --fs_wal_dir=/opt/kudu/master
  7. --fs_data_dirs=/opt/kudu/master

tserver.gflagfile::

  1. # cat /etc/kudu/conf/tserver.gflagfile
  2. # Do not modify these two lines. If you wish to change these variables,
  3. # modify them in /etc/default/kudu-tserver.
  4. --fromenv=rpc_bind_addresses
  5. --fromenv=log_dir
  6. --fs_wal_dir=/opt/kudu/tserver
  7. --fs_data_dirs=/opt/kudu/tserver

自定义配置:(每一台节点) 在所有节点操作如下:

1):配置master

master.gflagfil:

  1. [angel@angel1 kudu]$ vim /etc/default/kudu-master
  2. export FLAGS_log_dir=/var/log/kudu
  3. export FLAGS_rpc_bind_addresses=hadoop01: 【指定每台主机】

[angel@angel1 kudu]$ vim /etc/kudu/conf/master.gflagfile

  1. # Do not modify these two lines. If you wish to change these variables,
  2. # modify them in /etc/default/kudu-master.
  3.  
  4. --fromenv=rpc_bind_addresses
  5. --fromenv=log_dir
  6. --fs_wal_dir=/opt/cdh/kudu/master
  7. --fs_data_dirs=/opt/cdh/kudu/master
  8. --master_addresses=hadoop01:,hadoop02:,hadoop03:

2):配置tserver

tserver.gflagfile: [angel@angel1 kudu]$ vim /etc/default/kudu-tserver

  1. export FLAGS_log_dir=/var/log/kudu
  2. export FLAGS_rpc_bind_addresses=hadoop01:【指定每台主机】

[angel@angel1 kudu]$ vim /etc/kudu/conf/tserver.gflagfile

  1. # Do not modify these two lines. If you wish to change these variables,
  2. # modify them in /etc/default/kudu-tserver.
  3.  
  4. --fromenv=rpc_bind_addresses
  5. --fromenv=log_dir
  6. --fs_wal_dir=/opt/cdh/kudu/tserver
  7. --fs_data_dirs=/opt/cdh/kudu/tserver
  8. --tserver_master_addrs=hadoop01:,hadoop02:,hadoop03:

注意

  1. kudu的默认权限是kudu 所以如果使用root用户的话,需要将/opt/cdh/kudu的权限修改为kudu
  2. drwxr-xr-x. kudu kudu Nov : kudu
  1. 配置完成后,将配置文件tserver.gflagfiletserver.gflagfile 以及自定义目录:/opt/cdh/kudu的权限修改为当前使用用户的权限(chown -R angel:angel XXXXX)【如果是普通用户】
  2. 另外:如果使用普通用户,需要为普通用户配置sudo权限:
  3. /etc/sudoers文件中添加

/etc/sudoers文件中添加:

注意:kudu的日志文件需要定期清理,否则占用磁盘空间非常大(/var/log/kudu目录)

启动和关闭kudu

方式1: 启动:

  1. sudo service kudu-master start
  2. sudo service kudu-tserver start

启动的时候注意服务器时钟是同步 :

/etc/init.d/ntpd restart

关闭:

  1. sudo service kudu-master stop
  2. sudo service kudu-tserver stop

方式2: 启动:

  1. sudo /etc/init.d/kudu-master start
  2.  
  3. sudo /etc/init.d/kudu-tserver start

关闭:

  1. sudo /etc/init.d/kudu-master stop
  2. sudo /etc/init.d/kudu-tserver stop

安装过成中可能出现的问题

1:给用户添加sudo权限的时候报错

  1. sudo: /etc/sudoers is world writable
  2. 解决方式:pkexec chmod /etc/sudoers

2:启动kudu的时候报错

  1. Failed to start Kudu Master Server. Return value: [FAILED]
  2. 去日志文件中查看:
  3. 错误:F0810 ::08.354552 master_main.cc:] Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock: Error reading clock. Clock considered unsynchronized
  4. 解决:
  5. 第一步:首先检查是否有安装ntp:如果没有安装则使用以下命令安装:
  6. yum -y install ntp
  7. 第二步:设置随机启动:
  8. service ntpd start
  9. chkconfig ntpd on

3:启动过程中报错

  1. F0810 ::12.620932 master_main.cc:] Check failed: _s.ok() Bad status: Invalid argument: Unable to initialize catalog manager: Failed to initialize sys tables async: on-disk master list
  2. 解决:
  3. ():停掉mastertserver
  4. ():删除掉之前所有的/opt/cdh/kudu/master/*和/opt/cdh/kudu/tserver/*

4:启动过程中报错:

  1. F0913 ::00.628237 master_main.cc:] Check failed: _s.ok() Bad status: IO error: Could not create new FS layout: unable to create file system roots: unable to write instance metadata: Call to mkstemp() failed on name template /opt/cdh/kudu/master/instance.kudutmp.XXXXXX: Permission denied (error )
  2. 这是因为kudu默认使用kudu权限进行执行,可能遇到文件夹的权限不一致情况,更改文件夹权限即可

kudu的图形界面

Master的web地址:http://hadoop01:8051/masters

Tserver的web地址:http://hadoop01:8051/tablet-servers

Kudu的集群安装(1.6.0-cdh5.14.0)的更多相关文章

  1. K8s集群安装--最新版 Kubernetes 1.14.1

    K8s集群安装--最新版 Kubernetes 1.14.1 前言 网上有很多关于k8s安装的文章,但是我参照一些文章安装时碰到了不少坑.今天终于安装好了,故将一些关键点写下来与大家共享. 我安装是基 ...

  2. [转帖]K8s集群安装--最新版 Kubernetes 1.14.1

    K8s集群安装--最新版 Kubernetes 1.14.1 http://www.cnblogs.com/jieky/p/10679998.html 原作者写的比较简单 大略流程和跳转的多一些 改天 ...

  3. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-总目录

    CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-总目录: 0.Windows 10本机下载Xshell,以方便往Linux主机上上传大文件 1.CentOS7+CDH5.14.0安 ...

  4. 菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

    菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个需要极度耐心和体力的细致工作 ...

  5. CentOS下Hadoop-2.2.0集群安装配置

    对于一个刚开始学习Spark的人来说,当然首先需要把环境搭建好,再跑几个例子,目前比较流行的部署是Spark On Yarn,作为新手,我觉得有必要走一遍Hadoop的集群安装配置,而不仅仅停留在本地 ...

  6. redis3.0.0 集群安装详细步骤

    Redis集群部署文档(centos6系统) Redis集群部署文档(centos6系统) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对 ...

  7. hadoop2.20.0集群安装教程

    一.安装的需要软件及集群描述 1.软件: Vmware9.0:虚拟机 Hadoop2.2.0:Apache官网原版稳定版本 JDK1.7.0_07:Oracle官网版本 Ubuntu12.04LTS: ...

  8. Storm-1.0.1+ZooKeeper-3.4.8+Netty-4.1.3 HA集群安装

    Storm-1.0.1+ZooKeeper-3.4.8+Netty-4.1.3 HA集群安装 下载Storm-1.0.1 http://mirrors.tuna.tsinghua.edu.cn/apa ...

  9. hadoop 2.2.0集群安装

    相关阅读: hbase 0.98.1集群安装 本文将基于hadoop 2.2.0解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.csdn.net ...

随机推荐

  1. 外网zabbix-server使用主动模式监控公司内网windows服务器

    外网zabbix-server使用主动模式监控公司内网windows服务器 1.Zabbix Agent active批量调整客户端为主动模式监控将Template OS Windows模板调整为主动 ...

  2. Directory 中user Var 如何添加到通道变量中?

    FS默认的配置,ACL 是 拒绝的,只能通过 Digest 的方式进行认证,一旦认证成功之后,directory 中的 var 就能在通道中通过${} 的方式获取到. 如果ACL 认证通过 ,就直接走 ...

  3. python学习第3天

    03 int 十进制与二进制之间的转换04 bool 05 str python中凡是用引号引起来的都是字符串 1,存储相对少量的数据. 2,描述信息. 1,bool str int 三者之间的转换 ...

  4. [C]变量作用域

    函数环境变量作用域 C语言栈环境变量作用域跟JS是类似的. 就是内部函数可以访问外部函数的执行(栈)环境变量. 当访问一个变量时,程序将会查询当前栈环境是否存在这个变量,如果没有,将会往上层栈环境继续 ...

  5. axis1 创建service服务端 , axis1 客户端

    axis1 服务端配置 1.首先建立一个项目 axisTest 不需多说 2.在lib下放入需要的jar包  点击下载 :axis所需的jar包下载 3.然后需要在web.xml里面加入: <s ...

  6. Android 设备的CPU类型(通常称为”ABIs”)

    armeabiv-v7a: 第7代及以上的 ARM 处理器.2011年15月以后的生产的大部分Android设备都使用它. arm64-v8a: 第8代.64位ARM处理器,很少设备,三星 Galax ...

  7. 大数据mapreduce二分法ip定位之Python实现

    ip定位数据大约12M,采用-chacheFile 分发 文件来源https://pan.baidu.com/s/1J0pwTafHgt4T0k3vV_gC-A 格式大致格式如下: 0.0.0.0 0 ...

  8. ios 手机端 input 框上方有内阴影

    解决方案 方法1: <!--如果 ui 样式里有边框,可以用外层盒子设置边框--> input{ border:none; } 方法2: //在IOS下,input 和textarea表单 ...

  9. robot启动

    可以这句写入到bat文件里 pythonw.exe -c "from robotide import main; main()"

  10. Confluence 6 恢复一个站点

    这个页面对如何从一个 XML 导出文件中恢复到一个已经存在的 Confluence 站点进行描述. 如果你希望导入数据倒一个新的站点,请参考 restoring from backup during ...