大数据--Hadoop环境部署(3)JDK和ZooKeeper环境配置

2023-10-29

Linux环境搭建:https://www.cnblogs.com/Studywith/p/16946297.html

免密连接:https://www.cnblogs.com/Studywith/p/16946310.html

在完成了Linux虚拟机的基础配置后,接下来进行JDK和ZooKeeper相关环境的配置

一.部署JDK

1.官网下载JDK

https://www.oracle.com/java/technologies/downloads/archive/

选择需要的版本即可,这里我使用的是jdk-8u161-linux-x64.tar.gz(PS:老师要求)

2.创建相关文件夹便于记忆

(工作中,每当要部署一台新机器的时候,就意味着有一堆目录需要创建。例如要创建目录“/usr/local/bin”,就需要此次创建“/usr”、“/usr/local”以及“/usr/local/bin”。好在,Linux下mkdir提供了强大的“-p”选项,只要一条命令“mkdir -p /usr/local/bin”就能自动创建需要的上级目录。)

mkdir -p /export/servers/    #软件安装路径
mkdir -p /export/data/      #数据存储路径
mkdir -p /export/software/  #安装包存放路径

3.上传JDK安装包

使用远程连接工具连接虚拟机Node_01,将压缩包上传到/export/software/

4.安装JDK

通过解压缩的方式安装JDK,将JDK安装到存放应用的目录/export/servers/

tar -zxvf /export/software/jdk-8u161-linux-x64.tar.gz -C /export/servers/

5.配置JDK环境变量

执行   vi /etc/profile   命令编辑系统环境变量文件profile

export JAVA_HOME=/export/servers/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

6.JDK环境验证

执行   java –version   命令查看JDK版本

7.分发JDK相关文件

通过分发虚拟机node01的JDK安装目录和系统环境变量文件至虚拟机node02和node03的方式,在这两台虚拟机上安装JDK(提前在两个虚拟机上创建相关文件夹)

scp -r /export/servers/jdk1.8.0_161/ root@node02:/export/servers/
scp -r /export/servers/jdk1.8.0_161/ root@node03:/export/servers/

scp /etc/profile root@node02:/etc/profile
scp /etc/profile root@node03:/etc/profile

8.验证

二.部署ZooKeeper

ZooKeeper是一个分布式应用程序协调服务。一个ZooKeeper集群可以存在多个Follower和Observer服务器,但只允许存在一台Leader服务器。如果Leader服务器宕机,那么ZooKeeper集群的其它服务器会投票选举出一个新的Leader服务器,为防止投票数不过半,从而无法选举出新的Leader服务器现象,通常将ZooKeeper集群中服务器的数量规划为2n+1台,即奇数个。

1.官网下载JDK

https://zookeeper.apache.org/releases.html#download

旧版本,这里我选择的是zookeeper-3.4.10.tar.gz(老师要求)

2.上传ZooKeeper安装包

同样将压缩包上传到/export/software/

3.安装ZooKeeper

同样通过解压缩的方式安装ZooKeeper,将ZooKeeper安装到存放应用的目录/export/servers/

tar -zxvf /export/software/zookeeper-3.4.10.tar.gz -C /export/servers/

4.配置ZooKeeper

避坑博客:https://blog.csdn.net/u011328843/article/details/84190285

(1)创建zookeeper配置文件

在虚拟机node01中,进入ZooKeeper安装目录下的conf目录,复制ZooKeeper的配置文件模板“zoo_sample.cfg”并命名为“zoo.cfg”

cd /export/servers/zookeeper-3.4.10/conf/
cp zoo_sample.cfg zoo.cfg

(2) 修改zookeeper配置文件

编辑ZooKeeper配置文件zoo.cfg,修改参数“dataDir”配置存储快照文件的目录,添加参数“server.x”指定ZooKeeper集群包含的服务器。

dataDir=/export/data/zookeeper/zkdata
server.1=node01:2888:3888
server.2=node02:2888:3888
server.3=node03:2888:3888

(3) 创建存储快照文件的目录

在虚拟机中创建参数dataDir配置存储快照文件对应的目录 。

mkdir -p /export/data/zookeeper/zkdata

(4)创建myid文件

在虚拟机node01、node02和node03 的/export/data/zookeeper/zkdata目录中创建myid文件,在虚拟机node01的myid文件中写入值1,在虚拟机node02的myid文件中写入值2,在虚拟机node03的myid文件中写入值3。

mkdir -p /export/data/zookeeper/zkdata
cd /export/data/zookeeper/zkdata
echo 1 > myid  #node01
echo 2 > myid  #node02
echo 3 > myid  #node03

(5) 编辑文件profile

在虚拟机node01,执行“vi /etc/profile”命令编辑系统环境变量文件profile,配置ZooKeeper环境变量。

export ZK_HOME=/export/servers/zookeeper-3.4.10
export PATH=$PATH:$ZK_HOME/bin

(6)分发配置文件

为了便于快速配置集群中其它服务器,需要将虚拟机node01中的ZooKeeper安装目录和系统环境变量文件分发到虚拟机node02和node03。

#将ZooKeeper安装目录分发到虚拟机node02和node03
scp -r /export/servers/zookeeper-3.4.10/ node02:/export/servers/
scp -r /export/servers/zookeeper-3.4.10/ node03:/export/servers/
#将系统环境变量文件分发到虚拟机node02和node03
scp /etc/profile root@node02:/etc/
scp /etc/profile root@node03:/etc/

完成分发操作,分别在虚拟机node01,node02和node03中执行“source /etc/profile”命令初始化系统环境变量。

5.ZooKeeper集群的启动与关闭

(1)检查系统防火墙

关闭系统防火墙

#查看防火墙服务启动状态
systemctl status firewalld
#关闭防火墙服务(临时)
systemctl stop firewalld
#禁止防火墙开机启动(永久)
systemctl disable firewalld

(2)启动ZooKeeper集群

分别在虚拟机node01、node02和node03中执行“zkServer.sh start”命令启动ZooKeeper服务。

(如果出现command not found说明是环境变量没有配置好,可以重新检查配置或者直接使用./zkServer.sh start等命令)

(推荐:启动不成功可以查看zookeeper.out文件,里面有具体的报错信息,仔细查看进行解决)

(3)查看ZooKeeper服务状态

分别在虚拟机node01、node02和node03中执行“zkServer.sh status”命令查看ZooKeeper服务状态。

(4)关闭ZooKeeper集群

Zookeeper集群的关闭比较简单,只需要在虚拟机中分别执行“zkServer.sh stop”命令即可关闭当前虚拟机的Zookeeper服务。

注意点:

status错误参考:http://t.zoukankan.com/fushengliuyi-p-12971263.html

a.由于zookeeper是集群管理工具,又部署在每个节点上,所以启动的时候一定将每个节点的zkService.sh都差不多同时启动。这样查看status时才不会出错

b.虚拟机的防火墙必须关闭

c.查看ZooKeeper的配置文件中的端口号是否被占用

netstat -apn | grep 2181
kill -9 端口号

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

大数据--Hadoop环境部署(3)JDK和ZooKeeper环境配置 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 如何从指定日期获取上周五的日期? [复制]

    这个问题在这里已经有答案了 如何找出上一个 上一个 星期五 或指定日期的任何其他日期的日期 public getDateOnDay Date date String dayName 我不会给出答案 先自己尝试一下 但是 也许这些提示可以帮助
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List

随机推荐

  • Rxjs的flatMap使用

    Rxjs的flatMap使用 flatMap是Rxjs比较绕的一个概念 这里我们只是讲解如何使用 在Rxjs 4 0版本时叫flatMap 在Rxjs 5 0时被更名为margeMap 现在flatMap作为margeMap的别名使用 这是
  • 3D车道线单目检测方法ONCE-3DLanes

    3D车道线检测论文 ONCE 3DLanes Building Monocular 3D Lane Detection 上传arXiv于2022年5月 是华为诺亚和复旦大学的工作 由于道路不平 传统的单目图像2D车道线检测在自动驾驶的跟踪规
  • Linux系统Load average负载详细解释

    我们知道判断一个系统的负载可以使用top uptime等命令去查看 它分别记录了一分钟 五分钟 以及十五分钟的系统平均负载 例如我的某台 服务器 root ccidcom uptime 13 14 32 up 79 days 4 00 1
  • 数组——筛选数组

    将数组 2 0 6 1 77 0 52 0 25 7 中大于等于10的元素选出来 放入新数组 实现分析 1 声明一个新的空数组 用来存放 gt 10 的元素 2 for循环遍历数组中的每个元素 判断是否大于等于10 将其存到声明的空数组中
  • python从tushare获取股票历史数据

    使用前提 安装Python 安装pandas lxml也是必须的 正常情况下安装了Anaconda后无须单独安装 如果没有可执行 pip install lxml 建议安装Anaconda 一次安装包括了Python环境和全部依赖包 减少问
  • 指定springboot的jar运行内存

    一般情况下 我们运行一个springboot的jar包 是这样运行的 java jar xxx jar 如果想指定运行的内存 可以这样 java Xms10m Xmx200m jar xxx jar 这个参数是java命令的参数 其他详细的
  • 中断产生EINTR错误

    https blog csdn net u011068702 article details 62069714 1 介绍慢系统调用 该术语适用于那些可能永远阻塞的系统调用 永远阻塞的系统调用是指调用永远无法返回 多数网络支持函数都属于这一类
  • C语言一维数组练习例题及答案

    1 运动场上 一群学生正绕操场跑步 看台上一个小朋友专注地看着 他想找出他们中身高最高的人排在第几位 请编写程序模拟找出最大值的排位 要求先往数组中输入10个元素 再输出数组中最大值的下标 例如 输入 1 2 3 4 5 6 7 8 9 1
  • 基于SpringBoot前后端分离的网吧管理系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SpringBoot 前端 采用Vue技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse
  • Linux之命令查看器

    命令查看器 https wangchujiang com linux command c iptables html
  • html中input禁用缓存 使用标签 关闭 input 缓存

    实现1 在单个input 中 禁用缓存 autocomplete off 默认no
  • base -2 Number——进制转换

    题目描述 Given an integer N find the base 2 representation of N Here S is the base 2 representation of N when the following
  • Activity的6大难点,你会几个?建议收藏

    近日一好友去阿里面试 面试失败了 分享了一个他最不擅长的算法面试题 题目是这样的 题目 给定一个二叉搜索树 BST 找到树中第 K 小的节点 出题人 阿里巴巴出题专家 文景 阿里云 CDN 资深技术专家 参考答案 考察点 基础数据结构的理解
  • C和C++安全编码笔记:整数安全

    5 1 整数安全导论 整数由包括0的自然数 0 1 2 3 和非零自然数的负数 1 2 3 构成 5 2 整数数据类型 整数类型提供了整数数学集合的一个有限子集的模型 一个具有整数类型的对象的值是附着在这个对象上的数学值 一个具有整数类型的
  • 1016:整型数据类型存储空间大小(C C++)

    题目描述 分别定义int short类型的变量各一个 并依次输出它们的存储空间大小 单位 字节 输入 无 输出 一行 两个整数 分别是两个变量的存储空间大小 用一个空格隔开 输入样例 无 输出样例 无 代码 include
  • Qt学习(五)—— QWidget对象模型

    在Qt中 所有窗口及窗口控件都是从QWidget直接或间接派生出来的 对象模型 在Qt中创建对象的时候会提供一个Parent对象指针 下面来解释这个parent到底是干什么的 QObject是以对象树的形式组织起来的 当你创建一个QObje
  • 塔湖智能获数百万元种子轮投资,打造AI出海营销机器人

    据悉 专注于全球出海AI营销机器人服务商 塔湖智能获得由民峰资本领投及个人企业家跟投的数百万种子轮融资 民峰资本投资负责人Ethan Wei表示 塔湖智能团队拥有丰富的出海经验以及营销领域的海外本土化执行力 希望塔湖智能拥抱AGI赛道 研发
  • Android版数据结构与算法(十):终极之树-红黑树与TreeMap详细解析

    本文目录 一 为什么要创建红黑树这种数据结构 在上篇我们了解了AVL树 既然已经有了AVL这种平衡的二叉排序树 为什么还要有红黑树呢 AVL树通过定义我们知道要求树中每一个结点的左右子树高度差的绝对值不超过1 其是一颗严格的平衡树 这样构建
  • flutter-定位

    Flutter组件之定位 定位方式一 可以在所需组件外层包裹一个Container 利用alignment FractionalOffset x y 进行定位 例子 Container padding EdgeInsets all 5 0
  • 大数据--Hadoop环境部署(3)JDK和ZooKeeper环境配置

    Linux环境搭建 https www cnblogs com Studywith p 16946297 html 免密连接 https www cnblogs com Studywith p 16946310 html 在完成了Linux