阶段三:项目开发---大数据系统基础环境准备:任务1:准备系统运行的先决条件

任务描述

知识点

大数据基础环境准备

重  点: 

SSH免密码连接

安装配置JDK

安装配置Scala

难  点

内  容

    项目开发测试环境为分布式集群环境,在当前项目中使用多台基于CentOS 64bit 的虚拟机来模拟生产环境。在生产环境中建议使用高性能物理主机或云主机搭建集群环境。

  1. 规划服务节点的功能和数量,以及网络分配情况
  2. 配置虚拟机的主机名称和网络,确保各主机之间可以通过主机名和IP互相ping通
  3. 配置各虚拟机之间可以SSH免密码连接
  4. 在各虚拟机上安装JDK并配置环境变量

任务指导

1、规划服务节点的功能和数量,以及网络分配情况

  • 当前项目所使用的服务器集群包括1个client节点和3个大数据集群的节点,节点IP地址和主机名分布如下:

序号

IP地址

机器名

运行的守护进程

1

xxx.xxx.xxx.xxx

client1

客户机(开发服务器)

2

xxx.xxx.xxx.xxx

client2

客户机(开发服务器)

3

xxx.xxx.xxx.xxx

client3

客户机(开发服务器)

4

xxx.xxx.xxx.xxx

node1

Hadoop、Kafka、ZooKeeper、HBase、Spark、Redis

5

xxx.xxx.xxx.xxx

node2

Hadoop、Kafka、ZooKeeper、HBase、Spark

6

xxx.xxx.xxx.xxx

node3

Hadoop、Kafka、ZooKeeper、HBase、Spark、Web服务
  • 所有节点均是CentOS 64bit系统,且已经关闭防火墙,禁用selinux
  • 所有机器的登录用户名:root,密码:可从以下方式获取(例如,将鼠标移动到 node1 节点上时,会弹出提示框,显示主机名、虚拟机IP、用户名、密码等)

2、配置虚拟机的主机名称和网络,确保各主机之间可以通过主机名和IP互相ping通

  • 修改hosts文件,添加主机名和IP地址的映射,IP地址根据自已的实验环境进行设置,可以使用ifconfig命令查看主机的IP地址,如下图所示,查看当前环境的IP地址:

  • 输入【vim  /etc/hosts】命令,修改/etc/hosts文件添加如下内容(注意:IP地址根据自己的实验环境进行设置):
xxx.xxx.xxx.xxx  node1
xxx.xxx.xxx.xxx  node2
xxx.xxx.xxx.xxx  node3
xxx.xxx.xxx.xxx  client1
xxx.xxx.xxx.xxx  client2
xxx.xxx.xxx.xxx  client3
  • 在每一个节点上使用ping命令,分别去ping其它节点的主机名,测试是否可以ping通,例如:
[root@client ~] # ping node2 

3、配置各虚拟机之间可以SSH免密码连接

Hadoop分布式集群是由多个节点组成,各节点之间需要通过网络访问,如果每次都需要输入密码,非常不方便,所以可以考虑设置各节点之间免密码连接。任务的内容为在各个节点配置SSH,生成密钥对,然后再将公钥分发到所有节点,这样就可以实现各节点之间的免密码连通了。

4、在各虚拟机上安装JDK并配置环境变量

Hadoop 2.6 之后的最低需要JDK 1.6,Hadoop 3.x之后的版本需要JDK 1.8(这里建议使用JDK 1.8),如果CentOS是最小化安装,可能没有Open JDK,即使已经安装过Open JDK也可以使用JDK 1.8替换系统自带的Open JDK。任务的内容为检查各个节点的JDK的安装情况,卸载Open JDK,同时安装Oracle JDK并配置环境变量。

任务实现

1、规划服务节点的功能和数量,以及网络分配情况

  • 当前项目所使用的服务器集群包括1个client节点和3个大数据集群的节点,节点IP地址和主机名分布如下:

序号

IP地址

机器名

运行的守护进程

1

xxx.xxx.xxx.xxx

client1

客户机(开发服务器)

2

xxx.xxx.xxx.xxx

client2

客户机(开发服务器)

3

xxx.xxx.xxx.xxx

client3

客户机(开发服务器)

4

xxx.xxx.xxx.xxx

node1

Hadoop、Kafka、ZooKeeper、HBase、Spark、Redis

5

xxx.xxx.xxx.xxx

node2

Hadoop、Kafka、ZooKeeper、HBase、Spark

6

xxx.xxx.xxx.xxx

node3

Hadoop、Kafka、ZooKeeper、HBase、Spark、Web服务
  • 所有节点均是CentOS 64bit系统,且已经关闭防火墙,禁用selinux
  • 所有机器的登录用户名:root,密码:可从以下方式获取(例如,将鼠标移动到 node1 节点上时,会弹出提示框,显示主机名、虚拟机IP、用户名、密码等)

2、配置虚拟机的主机名称和网络,确保各主机之间可以通过主机名IP互相ping通

  • 在所有节点上,修改hosts文件,添加主机名和IP地址的映射,IP地址根据自已的实验环境进行设置,可以使用ifconfig命令查看主机的IP地址,如下图所示,查看当前环境的IP地址:

  • 输入【vim  /etc/hosts】命令,修改/etc/hosts文件添加如下内容(注意:IP地址根据自己的实验环境进行设置):
192.168.6.35 node1
192.168.5.132 node2
192.168.5.226 node3
192.168.1.59 client1
192.168.2.137 client2
192.168.1.40 client3

例如(注意:IP地址根据自己的实验环境进行设置):

  • 注意所有节点都要按上面的内容配置hosts文件。
  • 在每一个节点上使用ping命令,分别去ping其它节点的主机名,测试是否可以ping通,例如:
# ping node2

3、配置SSH免密码连接

  • 注意

1)当前环境已经配置好SSH免密码连接,如果出现无法实现SSH免密码连接的情况,可以先刷新网页,以尝试重新初始化环境;如果还是无效,可按下面的步骤自行手动配置SSH免密码连接。

2)当前环境已经配置好SSH免密码连接,以下步骤仅供:1.没有配置过SSH免密码连接的;2.需要重新配置免密码连接的;3.在其他新的环境中配置免密码连接的;等情况参考使用。

SSH免密码登录,因为Hadoop需要通过SSH登录到各个节点进行操作,我用的是root用户,每台服务器都生成公钥,再合并到authorized_keys。

  • 输入命令【ssh-keygen -t rsa】生成key,一直回车,都不输入密码,/root就会生成.ssh文件夹,注意,每台服务器都要设置,例如:

  • 在client节点服务器,合并公钥到authorized_keys文件,进入/root/.ssh目录,使用SSH命令合并,如下所示:
[root@client1 ~]# cd /root/.ssh
[root@client1 .ssh]# cat  id_rsa.pub >> authorized_keys

使用ssh命令将其他节点的id_rsa.pub公钥合并到client节点的authorized_keys文件中,注意,第一次连接可能需要输入密码,密码可以按如下方式获取:

[root@client1 .ssh]# ssh  root@client2  cat  ~/.ssh/id_rsa.pub >> authorized_keys
[root@client1 .ssh]# ssh  root@client3  cat  ~/.ssh/id_rsa.pub >> authorized_keys
[root@client1 .ssh]# ssh  root@node1  cat  ~/.ssh/id_rsa.pub >> authorized_keys
[root@client1 .ssh]# ssh  root@node2  cat  ~/.ssh/id_rsa.pub >> authorized_keys
[root@client1 .ssh]# ssh  root@node3  cat  ~/.ssh/id_rsa.pub >> authorized_keys 

效果如下:

  • 将client节点服务器上/root/.ssh/目录下的authorized_keys、known_hosts复制到其他的节点服务器的/root/.ssh目录中,在client节点上使用如下命令。注意,第一次连接可能需要输入密码,密码获取方式同上。
[root@client1 .ssh]# scp -rq  /root/.ssh/authorized_keys  client2:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/authorized_keys  client3:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/authorized_keys  node1:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/authorized_keys  node2:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/authorized_keys  node3:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/known_hosts  client2:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/known_hosts  client3:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/known_hosts  node1:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/known_hosts  node2:/root/.ssh/
[root@client1 .ssh]# scp -rq  /root/.ssh/known_hosts  node3:/root/.ssh/

  • 可以使用SSH命令连接其它节点,例如:
[root@client1 .ssh]# ssh  node2
  • 使用【exit】命令退出SSH连接。
[root@node2 ~]# exit 

4、在各虚拟机上安装JDK并配置环境变量

Hadoop 2.6需要JDK 1.6及以上版本,如果系统自带Open JDK,强烈建议使用JDK 1.8替换系统自带的Open JDK。(在node1节点上安装配置JDK,然后将安装目录及配置文件拷贝到其他节点)

  • 步骤一:查询系统是否以安装jdk
[root@node1~]# rpm -qa|grep jdk

  • 步骤二:如果没有安装过jdk,则跳过此步骤,如果安装过jdk,则可以使用【rpm -e --nodeps 软件包名】命令卸载已安装的jdk
  • 步骤三:验证一下是否还有jdk
[root@node1~]# rpm -qa|grep java
[root@node1~]# java -version

  • 步骤四:在node1节点上,直接解压下载的JDK并配置变量即可。具体的步骤如下:

输入【cd /opt/software】命令,进入软件安装目录。

[root@node1 ~]# cd /opt/software/

输入【tar  -zxvf jdk-8u301-linux-x64.tar.gz -C /opt/module】 命令解压

[root@node1 software]# tar -zxvf jdk-8u301-linux-x64.tar.gz -C /opt/module/

输入【vim /etc/profile】编辑profile文件,配置JDK环境变量,在文件尾部增加如下内容:

export JAVA_HOME=/opt/module/jdk1.8.0_301
export PATH=$PATH:$JAVA_HOME/bin

输入【source  /etc/profile】命令使配置生效。

输入【java  -version】命令查看JDK的版本。

  • 步骤五:将node1节点上的JDK拷贝到其它服务器、/home/scala目录和/etc/profile文件拷贝到其它机器

例:scp -rq /opt/module/jdk1.8.0_301 主机名:/opt/module/

例:scp /etc/profile 主机名:/etc/

具体操作如下:

[root@node1 module]# scp -rq /opt/module/jdk1.8.0_301 node2:/opt/module/
[root@node1 module]# scp -rq /opt/module/jdk1.8.0_301 node3:/opt/module/
[root@node1 module]# scp -rq /etc/profile node2:/etc/
[root@node1 module]# scp -rq /etc/profile node3:/etc/

在node2、node3执行【source  /etc/profile】使环境变量生效,例如:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在Ubuntu中使用ROS搭建PX4 Gazebo 模拟飞行 四旋翼 固定翼

综合了网上很多教程以及踩了很多坑总结下来的教程 Ubuntu安装 此处不在详细说明,网上可随处搜到 ROS安装 感谢鱼香ROS大佬提供一键安装脚本 wget http://fishros.com/install -O fishros && sudo bash fishros 接下来按顺序按 1 1 2 3 1 再次运行 w…

关于 lvds 屏幕的一些知识

网上的截图: lvds的 通道。 lvds 的协议 关于 sync 模式与 de 模式: ------------------------------------------------------------------------------------------------------------------ 芯片的数据手册的看法。 这个手册 ,就指明了…

鸿蒙开发设备管理:【@ohos.update (升级)】

升级 说明: 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 升级范围&…

协程调度模块

什么是协程和协程调度? 基本概念 协程 协程是一种比线程更轻量级的并发编程结构,它允许在函数执行过程中暂停和恢复执行状态,从而实现非阻塞式编程。协程又被称为用户级线程,这是由于协程包括上下文切换在内的全部执行逻辑都是…

二分查找及其变种

一、概念 二分查找算法(Binary Search Algorithm)是一种在有序数组中查找特定元素的高效搜索方法。 其基本思想是将目标值与数组中间的元素进行比较,如果目标值等于中间元素,则查找成功;如果目标值小于中间元素&…

Apache SeaTunnel社区首位学生Committer诞生!

采访对象 | 陈炳烨 采访人&编辑 | Debra Chen Apache SeaTunnel社区第一位学生Committer就此诞生!这位来自西安交通大学软件工程专业的同学从较为简单的文档修改工作,逐步深入到代码层面,到最后独立负责开发模块,为Apache S…

事务底层与高可用原理

1.事务底层与高可用原理 事务的基础知识 mysql的事务分为显式事务和隐式事务 默认的事务是隐式事务 显式事务由我们自己控制事务的开启,提交,回滚等操作 show variables like autocommit; 事务基本语法 事务开始 1、begin 2、START TRANSACTION&…

【代码随想录】【算法训练营】【第55天】 [42]接雨水 [84]柱状图中最大的矩形

前言 思路及算法思维,指路 代码随想录。 题目来自 LeetCode。 day 55,又是一个周一,不能再坚持~ 题目详情 [42] 接雨水 题目描述 42 接雨水 解题思路 前提:雨水形成的情况是凹的, 需要前中后3个元素,计算该元…

【AI】DeepStream(14):图像分割deepstream-segmentation-test示例演示

【AI】AI学习目录汇总 1、简介 deepstream-segmentation-test示例演示了图像的语义分割。两个配置文件,分别加载U-Net和Res-UNet两种分割模型 unet_output_graph.uffunetres18_v4_pruned0.65_800_data.uffU-Net是一个在生物医学图像分割领域广泛应用的卷积神经网络(CNN),…

中国东方资产管理25届秋招北森测评笔试如何高分通过?真题考点分析看完这篇就够了

一、东方资管校招测评题型分析 中国东方资产管理股份有限公司(中国东方资管)的校园招聘测评题型主要包括以下几个部分: 1. **计分题,行测知识**:这部分题量大约在56-57题左右,分为不同的模块进行计时测试。…

【高阶数据结构】图的应用--最短路径算法

文章目录 一、最短路径二、单源最短路径--Dijkstra算法三、单源最短路径--Bellman-Ford算法四、多源最短路径--Floyd-Warshall算法 一、最短路径 最短路径问题:从在带权有向图G中的某一顶点出发,找出一条通往另一顶点的最短路径,最短也就是沿…

14个最佳创业企业WordPress主题

您网站的设计使您能够展示产品的独特卖点。通过正确的主题,您将能够解释为什么客户应该选择您的品牌而不是其他品牌。 在本文中,我们将向您介绍14个初创企业WordPress主题。我们将告诉您每个主题的独特之处以及哪些人应该考虑使用它。让我们开始吧&…

Pinia:Vue 2 和 Vue 3 中更好用的状态管理框架

前言 还在用Vuex? 在Vue应用程序的开发过程中,高效且易于维护的状态管理一直是开发者关注的核心问题之一。随着Vue 3的发布,状态管理领域迎来了一位新星——Pinia,它不仅为Vue 3量身打造,同时也向下兼容Vue 2,以其简…

Django学习第四天

启动项目命令 python manage.py runserver 分页功能封装到类中去 封装的类的代码 """ 自定义的分页组件,以后如果想要使用这个分页组件,你需要做: def pretty_list(request):# 靓号列表data_dict {}search_data request.GET.get(q, &…

谷粒商城-个人笔记(集群部署篇二)

前言 ​学习视频:​Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强​学习文档: 谷粒商城-个人笔记(基础篇一)谷粒商城-个人笔记(基础篇二)谷粒商城-个人笔记(基础篇三)谷粒商城-个人笔记(高级篇一)谷粒商城-个…

Excel为数据绘制拆线图,并将均值线叠加在图上,以及整个过程的区域录屏python脚本

Excel为数据绘制拆线图,并将均值线叠加在图上,以及整个过程的区域录屏python脚本 1.演示动画A.视频B.gif动画 2.跟踪鼠标区域的录屏脚本 Excel中有一组数据,希望画出曲线,并且能把均值线也绘制在图上,以下动画演示了整个过程,并且提供了区域录屏脚本,原理如下: 为节约空间,避免…

SpringBoot 启动流程一

SpringBoot启动流程一 我们首先创建一个新的springboot工程 我们不添加任何依赖 查看一下pom文件 我们创建一个文本文档 记录我们的工作流程 我们需要的是通过打断点实现 我们首先看一下启动响应类 package com.bigdata1421.start_up;import org.springframework.boot.Spr…

【Android面试八股文】Android性能优化面试题:怎样检测函数执行是否卡顿?

文章目录 卡顿一、可重现的卡顿二、不可重现的卡顿第一种方案: 基于 Looper 的监控方法第二种方案:基于 Choreographer 的监控方法第三种方案:字节码插桩方式第四种方案: 使用 JVMTI 监听函数进入与退出总结相关大厂的方案ArgusAPMBlockCanaryQQ空间卡慢组件Matrix微信广研参…

linux中与网络有关的命令

本文的命令总览 ifconfig命令 在 Linux 系统中,ifconfig 命令用于配置和显示网络接口的信息,包括 IP 地址、MAC 地址、网络状态等。同时我们也可以利用ifconfig 命令设置网络接口对应的ip地址,子网掩码等 当你使用 ifconfig 命令时&#xf…

DC/AC电源模块为现代电子设备提供稳定的能源

BOSHIDA DC/AC电源模块为现代电子设备提供稳定的能源 DC/AC电源模块是一种重要的电子设备,它为现代电子设备提供稳定的能源。在今天的高科技社会中,电子设备已经成为人们生活和工作的重要组成部分。从家用电器到计算机、手机、汽车和航天航空设备&…