Hdoop学习笔记(HDP)-Part.10 创建集群

目录
Part.01 关于HDP
Part.02 核心组件原理
Part.03 资源规划
Part.04 基础环境配置
Part.05 Yum源配置
Part.06 安装OracleJDK
Part.07 安装MySQL
Part.08 部署Ambari集群
Part.09 安装OpenLDAP
Part.10 创建集群
Part.11 安装Kerberos
Part.12 安装HDFS
Part.13 安装Ranger
Part.14 安装YARN+MR
Part.15 安装HIVE
Part.16 安装HBase
Part.17 安装Spark2
Part.18 安装Flink
Part.19 安装Kafka
Part.20 安装Flume

十、创建集群

1.创建集群

开始安装集群
在这里插入图片描述

(1)Get Started

在这里插入图片描述

(2)Selected Version

选择使用本地镜像仓库安装(Use Local Repository),将其他os部分删除
HDP-3.1:http://hdp01.hdp.com/HDP/centos7/3.1.5.0-152/
HDP-3.1-GPL:http://hdp01.hdp.com/HDP-GPL/centos7/3.1.5.0-152/
HDP-UTILS-1.1.0.22:http://hdp01.hdp.com/HDP-UTILS/centos7/1.1.0.22/
在这里插入图片描述

(3)Install Options

将hadoop集群中所有节点都加入(hdp01-05),并将hdp01的SSH私钥附上,查看私钥
hdp01.hdp.com
hdp02.hdp.com
hdp03.hdp.com
hdp04.hdp.com
hdp05.hdp.com

cat /root/.ssh/id_rsa

在这里插入图片描述

(4)Confirm Hosts

开始进入安装
在这里插入图片描述

(5)Choose Services

仅安装最基础的ZooKeeper、Ambari Metrics和smartsense
smartsense是hortonworks一个商业的组件功能,作用是监控集群并提供建议,建议是不使用。通常,此组件是安装ambari的时候的一个必选项,也就是说在安装ambari的时候它就强制绑定安装了。后面可以删除。
在这里插入图片描述

(6)Assign Masters

在这里插入图片描述

(7)Assign Slaves and Clients

按照指示,client为zookeeper的,选择在hdp04、hdp05上安装即可
在这里插入图片描述

(8)Customize Services

密码设置为lnyd@LNsy115
在这里插入图片描述
配置ZooKeeper路径
ZooKeeper directory:/data01/hadoop/zookeeper
ZooKeeper Log Dir:/var/log/zookeeper
ZooKeeper PID Dir:/var/run/zookeeper
在这里插入图片描述
配置Ambari Metrics路径
Aggregator checkpoint directory:/var/lib/ambari-metrics-collector/checkpoint
Metrics Grafana data dir:/var/lib/ambari-metrics-grafana
HBase Local directory:${hbase.tmp.dir}/local
HBase root directory:file:///var/lib/ambari-metrics-collector/hbase
HBase tmp directory:/var/lib/ambari-metrics-collector/hbase-tmp
HBase ZooKeeper Property DataDir:${hbase.tmp.dir}/zookeeper
Phoenix Spool directory:${hbase.tmp.dir}/phoenix-spool
Phoenix Spool directory:/tmp
Metrics Collector log dir:/var/log/ambari-metrics-collector
Metrics Monitor log dir:/var/log/ambari-metrics-monitor
Metrics Grafana log dir:/var/log/ambari-metrics-grafana
HBase Log Dir Prefix:/var/log/ambari-metrics-collector
Metrics Collector pid dir:/var/run/ambari-metrics-collector
Metrics Monitor pid dir:/var/run/ambari-metrics-monitor
Metrics Grafana pid dir:/var/run/ambari-metrics-grafana
HBase PID Dir:/var/run/ambari-metrics-collector/
在这里插入图片描述
设置各个服务的账号
Smoke User:ambari-qa
Hadoop Group:hadoop
Ambari Metrics User:ams
ZooKeeper User:zookeeper
在这里插入图片描述
待安装服务的所有配置
SMARTSENSE中的smartsense.id需要指定,不能为unspecified,可设置为1000
在这里插入图片描述

(9)Review

回顾之前的配置
在这里插入图片描述

(10)Install, Start and Test

安装相关服务
在这里插入图片描述

(11)Summary

在这里插入图片描述
安装完成后,先stop然后delete掉SmartSense服务。
在这里插入图片描述
在这里插入图片描述

2.确认ZooKeeper配置

ZooKeeper的配置文件,/etc/zookeeper/conf/zoo.cfg

clientPort=2181
autopurge.purgeInterval=24
syncLimit=5
quorum.cnxn.threads.size=20
initLimit=10
dataDir=/data01/hadoop/zookeeper
tickTime=3000
autopurge.snapRetainCount=30
quorum.auth.enableSasl=falseserver.1=hdp01.hdp.com:2888:3888
server.2=hdp02.hdp.com:2888:3888
server.3=hdp03.hdp.com:2888:3888

配置解析:
① clientPort:客户端连接端口
客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口,接受客户端的访问请求。
② autopurge.purgeInterval:日志自动清理频率
指定了清理频率,单位是小时,需要填写一个1或更大的整数,默认是0,表示不开启自己清理功能。
③ syncLimit:LF同步通信时限
集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
④ quorum.cnxn.threads.size:设置可使用的最大线程池
⑤ initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
⑥ dataDir:数据文件目录
Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。
⑦ tickTime:CS通信心跳时间
Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
⑧ autopurge.snapRetainCount:sanp保留数量
内存中的数据作为snapshot保存下来,该参数指定了需要保留多少个snapshot,之前的全删除。默认是保留3个。
⑨ quorum.auth.enableSasl:Sasl开关
⑩ server.A= B:C:D :服务器名称与地址
(服务器编号,服务器地址,LF 通信端口,选举端口)
A是一个数字,表示这个是第几号服务器;
B是这个服务器的ip地址;
C表示的是这个服务器与集群中的Leader服务器交换信息的端口;
D表示的是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

3.常用指令

(1)服务端

  • 查看leader、follower
/usr/hdp/3.1.5.0-152/zookeeper/bin/zkServer.sh status

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在hdp01-03上分别查询可知,hdp03为leader,因为hdp03的myid最大

ansible nn,192.168.111.203 -m shell -a 'cat /data01/hadoop/zookeeper/myid'

在这里插入图片描述

(2)客户端

  • 连接
    zkCli.sh -server host:port
    指定连接节点,默认host=localhost,port=2181
/usr/hdp/3.1.5.0-152/zookeeper/bin/zkCli.sh -server hdp01.hdp.com:2181,hdp02.hdp.com:2181,hdp03.hdp.com:2181
  • znode节点操作
    ls path [watch]
    列出znode的子节点,同时可以设置一个监听器
ls /node1

create [-s] [-e] path data acl
创建一个znode节点,同时设置节点权限acl,-s表示创建有序节点,-e创建临时节点
znode需要按照层级去创建,如创建/node1/node2,需要先创建/node1,再创建/node1/node2

create /node1 test1
create /node1/node2 test2

ls2 path [watch]
列出znode的子节点,同时可以设置一个监听器,如:ls2 /,与ls的区别是ls2还可以获取到子节点个数等等状态信息

ls2 /node1

get path [watch]
获取znode节点的数据,同时可以注册一个监听器,如:get /mynode

get /node1
get /node1/node2

stat path [watch]
查看znode状态,如数据长度,时间戳等等,同时可以注册一个监听器

stat /node1
stat /node1/node2

set path data [version]
设置znode的数据,同时可以设置一个监听器,如:set /mynode “hello world”

set /node1 test3

设置完成后,mZxid(数据节点最后一次更新时的事务ID)会发生变化
在这里插入图片描述
在这里插入图片描述
delete path [version]
删除znode节点,注意路径为绝对路径,且不可删除拥有子节点的znode

delete /node1/node2/node3

在这里插入图片描述
rmr path
递归删除znode节点,与delete的区别是可以删除拥有子节点的znode

rmr /node1

在这里插入图片描述

  • ACL权限控制
    Zookeeper的acl权限由[scheme : id :permissions]三部分组成,其中scheme是认证类型,id一般指的是账号,也就是权限所针对的对象,permissions表示对节点的空权限类型
    Scheme可选项:
    world:默认模式,所有客户端都拥有指定的权限。world下只有一个id选项,就是anyone,通常组合写法为world:anyone:[permissons];比如:setAcl /mynode world:anyone:crwda
    auth:只有经过认证的用户才拥有指定的权限。通常组合写法为auth:user:password:[permissons],使用这种模式时,你需要先进行登录,之后采用auth模式设置权限时,user和password都将使用登录的用户名和密码;比如:setAcl /mynode auth:feng:123456:crwda
    digest:只有经过认证的用户才拥有指定的权限。通常组合写法为digest:user:BASE64(SHA1(password)):[permissons],这种形式下的密码必须通过SHA1和BASE64进行双重加密;比如:setAcl /mynode digest:feng:xHBaNtDKjaz0G0F0dq11735c9r8=:crwda
    ip:限制只有特定IP的客户端才拥有指定的权限。通常组成写法为ip:182.168.0.168:[permissions];比如:setAcl /mynode ip:192.168.28.213:crwda
    super:代表超级管理员,拥有所有的权限,需要修改Zookeeper启动脚本进行配置。
    Permissions可选项,在使用时,可以使用首字母进行简写(crwda,Creat/Read/Write/Delete/Admin):
    CREATE:允许创建子节点;
    READ:允许从节点获取数据并列出其子节点;
    WRITE:允许为节点设置数据;
    DELETE:允许删除子节点;
    ADMIN:允许为节点设置权限。
    setAcl path acl
    给已有节点赋予权限,其中acl是权限
setAcl /node1 ip:192.168.111.201:crwd

getAcl path
查看节点的权限

getAcl /node1

在这里插入图片描述

  • 其他命令操作
    history
    查看当前会话中使用过的命令,每个命令会携带一个编号
    redo cmdno
    重新执行命令,cmdno是命令编号,可以使用history查看
    printwatches [on|off]
    是否输出watch事件,如果使用on或者off则表示设置
    sync path
    会强制客户端所连接的服务器状态与leader的状态同步,这样在读取path的值就是最新的值了
    quit
    直接退出当前的zkCli命令行
    close
    关闭连接,但不会退出当前zkCli命令行

4.常见错误

(1)ambari-metrics-collector重启后失败

查看日志/var/log/ambari-metrics-collector/ambari-metrics-collector.log
在这里插入图片描述
需要把/var/lib/ambari-metrics-collector/下的checkpoint、hbase和hbase-tmp删除,如需要也可以先备份,然后在重新启动metrics-collector服务

rm -rf /var/lib/ambari-metrics-collector/*

(2)Ambari-agent注册失败

报错信息

Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry \'hdp04.hdp.com\' for key \'UQ_hosts_host_name\'\
Error Code: 1062\
Call: INSERT INTO hosts (host_id, cpu_count, cpu_info, discovery_status, host_attributes, host_name, ipv4, ipv6, last_registration_time, os_arch, os_info, os_type, ph_cpu_count, public_host_name, rack_info, total_mem) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\
\\tbind => [16 parameters bound]\

确认错误原因为在MySQL中的hosts表中INSERT数据时主键的值已经存在导致,登录到ambari的MySQL数据库中,首先关闭外键约束,然后删除对应的记录,再打开外键约束,

use ambari;
select host_name from hosts;
SET FOREIGN_KEY_CHECKS=0;
delete from hosts where host_name = 'hdp04.hdp.com';
select host_name from hosts;
SET FOREIGN_KEY_CHECKS=1;

在这里插入图片描述
重启ambari-server服务,并重新注册即可恢复

ambari-server restart

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/191305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【二叉树】常见题目解析(2)

题目1:104. 二叉树的最大深度 - 力扣(LeetCode) 题目1描述: 题目1分析及解决: (1)base case:当前节点为null时,以当前节点为根节点的树最大深度是0。 (2&…

Redis使用increment方法返回null的原因以及解决方案

public static void main(String[] args) {redisTemplate.setEnableTransactionSupport(true); //开启事务支持redisTemplate.multi(); //标记事务块的开始redisTemplate.opsForValue().set("name","zs");redisTemplate.opsForValue().set("pass&qu…

使用系统ProgressBar实现三色进度条

使用系统ProgressBar实现如图三色进度条&#xff1a; //布局中<ProgressBarandroid:layout_width"0dp"android:layout_height"8dp"android:layout_marginLeft"16dp"app:layout_constraintBottom_toBottomOf"id/photo"app:layout_c…

Docker部署Plik临时文件上传系统并且实现远程访问

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik8. 结语 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问&#xff0c;实现随时随地在任意设备上…

为自己创建的游戏编程源码申请软件著作权详细流程(免费分享模板)

以为我这篇文章制作的游戏申请软件著作权为例 Ren‘py 视觉小说 交互式故事游戏制作过程学习笔记(Windows下实现)(多结局游戏)-CSDN博客 一、网站注册 申请软著时&#xff0c;所有的著作权人都需要在中国版权保护中心官网注册账号&#xff0c;并进行实名认证后&#xff0c;才…

ahk热字串:字符串输入后,按空格后,打开网址 or 不按空格直接打开网址

二、字符串输入后&#xff0c;按空格后&#xff0c;打开网址 ::aa:: { run "www.baidu.com" }三、字符串aa输入后&#xff0c;直接 打开网址 :*:aa:: { run "www.baidu.com" }一、字符串替换&#xff0c;按空格后替换。不按空格直接替换 ;输入name&…

SpringBoot2.x整合WebService实现远程接口调用

一、添加依赖 <!-- SpringBoot 2.4 以下版本--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web-services</artifactId> </dependency><dependency><groupId>org.apach…

Android 应用资源概览

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、资源类型分组四、配置限定符名称表…

口罩标准讲解及推荐

一、我国医用口罩质量标准 1、YY/T0969-2013《一次性使用医用口罩》 2、YY0469-2011《医用外科口罩》 3、GB19083-2010《医用防护口罩技术要求》三类医用口罩各项指标对比如下&#xff1a; 结论&#xff1a;防护效果来说&#xff1a;医用防护口罩>医用外科口罩>一次性…

【交换排序 简单选择排序 堆排序 归并排序】

文章目录 交换排序简单选择排序堆排序归并排序 交换排序 冒泡排序的算法分析&#xff1a; 冒泡排序最好的时间复杂度是O&#xff08;n&#xff09;冒泡排序最好的时间复杂度是O&#xff08;n平方&#xff09;冒泡排序平均时间复杂度为O&#xff08;n的平方&#xff09;冒泡排…

02数仓平台Zookeeper

概述 ZooKeeper是一种分布式协调服务&#xff0c;用于管理大型主机集。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑&#xff0c;而不必担心应用程序的分布式性质。 Zookeepe…

基于springboot,vue高校图书馆管理系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 系统分前后台&#xff0c;项目采用前后端分离 前端技术&#xff1a;vueelementUI 服务端技术&#xff1a;springbootmybatisredis 本项…

Kubernetes集群部署—部署Master 节点 (三)

文章目录 1 生成kube-apiserver证书 &#xff08;master节点操作&#xff09;1.1 自签证书颁发机构&#xff08;CA&#xff09;1.2 使用自签CA签发kube-apiserver HTTPS证书 2 从Github下载二进制文件3 解压二进制包 &#xff08;master节点操作&#xff09;4 部署kube-apiserv…

【开源视频联动物联网平台】JAIN-SIP库写一个SIP服务器

JAIN-SIP&#xff08;Java API for Integrated Networks - Session Initiation Protocol&#xff09;是用于实现SIP&#xff08;Session Initiation Protocol&#xff09;的Java API。以下是使用JAIN-SIP库编写一个简单的SIP服务器的基本步骤&#xff1a; 1.添加JAIN-SIP库依赖…

华为OD机试真题-求最多可以派出多少支团队-2023年OD统一考试(C卷)

题目描述: 用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或2人组成,且1个人只能参加1个团队,请计算出最多可以派出多少支符合要求的团队? 输入描述: 5 3 1 5 7 9 8 第一行数组代表总人数,范围[1,500000] 第二行数组代表每个人的能…

[Rust] 快速基础入门教程

Rust 是一个无运行时的强类型语言, 包含很多高级特性, 例如泛型, lambda 等. 又因为其独有的所有权机制, 所以 Rust 的内存安全要比 C 完善许多. 风格 Rust 与 C 族语言不一样, C 族语言在定义方法, 变量时, 都是 类型 关键字 这样的格式, 也就是类型前置. Rust 采用的是类型后…

如何使用Go与MQTT进行通信

简介 本文介绍了如何使用 Go 编程语言与 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;进行通信。MQTT 是一种轻量级的消息传输协议&#xff0c;广泛应用于物联网和实时通信场景。通过本文的指导&#xff0c;您将学习如何使用 Go 语言创建 MQTT 客户端&am…

MySQL更改用户权限

如果之前已经为一个用户设置了 localhost 作为主机名&#xff0c;并且现在想将其改为 %&#xff08;表示允许该用户从任何主机连接&#xff09;&#xff0c;可以按照以下步骤操作&#xff1a; 登录 MySQL&#xff1a; 首先&#xff0c;使用 root 用户或其他具有管理员权限的用户…

【哈希】字母异位词分组

力扣 class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map new HashMap<>();for (String str : strs) {String hash getHash(str);map.computeIfAbsent(hash, k -> new ArrayList<…

[英语学习][6][Word Power Made Easy]的精读与翻译优化

[序言] 针对第18页的阅读, 进行第二次翻译优化以及纠错, 这次译者的翻译出现的严重问题: 没有考虑时态的变化导致整个翻译跟上下文脱节, 然后又有偷懒的嫌疑, 翻译得很随意. [英文学习的目标] 提升自身的英语水平, 对日后编程技能的提升有很大帮助. 希望大家这次能学到东西,…