IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> kudu扩容报错 -> 正文阅读

[大数据]kudu扩容报错

kudu的架构体系

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

下面是一些基本概念:

复制代码

Table(表)
  一张 talbe 是数据存储在 Kudu 的位置。表具有 schema 和全局有序的 primary key(主键)。table 被分成称为 tablets 的 segments。
Tablet
  一个 tablet 是一张 table 连续的 segment,与其它数据存储引擎或关系型数据库中的 partition(分区)相似。给定的 tablet 冗余到多个 tablet 服务器上,并且在任何给定的时间点,其中一个副本被认为是 leader tablet。任何副本都可以对读取进行服务,并且写入时需要在为 tablet 服务的一组 tablet server之间达成一致性。
Tablet Server
  一个 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的集群安装

节点规划

节点            Kudu-master        Kudu-tserver
Hadoop01        是                是
Hadoop02        是                是
Hadoop03        是                是

配置本地的CDH-yum源

所有cloudera软件下载地址:

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

1):上传压缩包并解压

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

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

2):制作本地yum源

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

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

vim localimp.repo

[localimp]
name=localimp
baseurl=http://hadoop01/5.14.0
gpgcheck=0
enabled=1

创建apache httpd的读取连接

setenforce 0
ln -s /yumData/cdh/5.14.0  /var/www/html/

(删除软连接方式):rm -rf  ./5.14.0
(错误删除方式):rm -rf  ./5.14.0/

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

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

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

下载命令:

复制代码

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

复制代码

3):安装

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

参照我的服务器:

复制代码

服务器                    命令
hadoop01                yum install -y kudu kudu-master kudu-tserver kudu-client0 kudu-client-devel  
  
hadoop02                yum install -y kudu kudu-master kudu-tserver kudu-client0 kudu-client-devel  

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

复制代码

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

复制代码

?tserver.gflagfile::

复制代码

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

复制代码

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

1):配置master

master.gflagfil:

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

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

复制代码

# Do not modify these two lines. If you wish to change these variables,
# modify them in /etc/default/kudu-master.

--fromenv=rpc_bind_addresses
--fromenv=log_dir
--fs_wal_dir=/opt/cdh/kudu/master
--fs_data_dirs=/opt/cdh/kudu/master
--master_addresses=hadoop01:7051,hadoop02:7051,hadoop03:7051

复制代码

2):配置tserver

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

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

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

复制代码

# Do not modify these two lines. If you wish to change these variables,
# modify them in /etc/default/kudu-tserver.

--fromenv=rpc_bind_addresses
--fromenv=log_dir
--fs_wal_dir=/opt/cdh/kudu/tserver
--fs_data_dirs=/opt/cdh/kudu/tserver
--tserver_master_addrs=hadoop01:7051,hadoop02:7051,hadoop03:7051

复制代码

注意

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

/etc/sudoers文件中添加:

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

启动和关闭kudu

方式1:?启动:

sudo service kudu-master start
sudo service kudu-tserver start

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

/etc/init.d/ntpd restart

关闭:

sudo service kudu-master stop
sudo service kudu-tserver stop

方式2:?启动:

sudo /etc/init.d/kudu-master  start

sudo /etc/init.d/kudu-tserver  start

关闭:

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

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

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

sudo: /etc/sudoers is world writable
解决方式:pkexec chmod 555 /etc/sudoers

2:启动kudu的时候报错

复制代码

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

复制代码

3:启动过程中报错

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

4:启动过程中报错:

F0913 15:12:00.628237 20859 master_main.cc:74] 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 13)
这是因为kudu默认使用kudu权限进行执行,可能遇到文件夹的权限不一致情况,更改文件夹权限即可

kudu的图形界面

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

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

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 23:05:55  更:2021-07-14 23:05:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 5:57:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码