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

news2024/10/6 14:29:23

任务描述

知识点

大数据基础环境准备

重  点: 

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】使环境变量生效,例如:

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

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

相关文章

SpringBoot应用配置桥接Prometheus入门

SpringBoot应用配置Prometheus步骤 SpringBoot应用依赖要求PrometheusGrafanaGrafana监控界面模板 SpringBoot应用依赖要求 <!-- 监控系统健康情况的工具 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

完全理解C语言函数

文章目录 1.函数是什么2.C语言中的函数分类2.1 库函数2.1.1 如何使用库函数 2.2自定义函数 3.函数的参数3.1 实际参数&#xff08;实参&#xff09;3.2 形式参数&#xff08;形参&#xff09; 4.函数调用4.1传值调用4.2 传址调用4.3 练习 5.函数的嵌套调用和链式访问5.1 嵌套调…

echarts柱状选中shadow阴影背景宽度设置

使用line&#xff0c;宽度增大到所需要的宽度&#xff0c;设置下颜色透明度就行 tooltip: {trigger: axis,//把阴影的层级往下降z:-15,axisPointer: {type: line,lineStyle: {color: rgba(150,150,150,0.3),width: 44,type: solid,},}, }, series: [{type: bar,barWidth:20,//…

Jemeter--关联接口压测

Jemeter–独立不变参接口压测 Jemeter–独立变参接口压测 Jemeter–关联接口压测 案例分析 比如&#xff1a;有个波次复核接口很慢&#xff0c;优化后需要压测。但是波次复核接口数据是由另外两个接口&#xff08;配单详情、内盒信息&#xff09;的数据组合而来&#xff0c;而…

人脸重建迁移攻击FRTA:绕过各种未见过的面部识别系统

随着人脸识别系统在安全关键环境中的部署日益增多&#xff0c;威胁行为者正在开发针对各种攻击点的复杂攻击策略。在这些攻击策略中&#xff0c;面部重建攻击是一个主要的威胁。面部重建攻击的主要目的是创建伪造的生物特征图像&#xff0c;这些图像类似于存储的生物特征模板中…

更改Anki笔记所应用的模板及其所属的牌组

对于Anki中的笔记&#xff0c;录入时总会为它指定模板以及所属的牌组&#xff0c;但是&#xff0c;如果发生教材版本变更&#xff0c;我们可能会用新的模板添加笔记&#xff0c;也会使用新的牌组&#xff0c;但是原来所做的笔记中也有一些完全可以继续使用&#xff0c;如果可以…

Java 应用启动时出现编译错误进程会退出吗?

背景 开发的尽头是啥呢&#xff1f;超超级熟练工&#xff01; 总结最近遇到的一些简单问题&#xff1a; Java 应用的某个线程&#xff0c;如果运行时依赖的 jar 不满足&#xff0c;线程是否会退出&#xff1f;进程是否会退出&#xff1f;Netty 实现 TCP 功能时&#xff0c;换…

Django创建项目(1)

运行 注意 在本次创建Django项目时&#xff0c;出现了一点小问题&#xff0c;由于我之前pip换源过&#xff0c;换源用的是http&#xff0c;结果在创建时&#xff0c;pip只支持https&#xff0c;所以如果出现创建项目失败的问题&#xff0c;那么有可能是因为换源的问题&#xf…

C++左值/右值/左值引用/右值引用

1&#xff09;C入门级小知识&#xff0c;分享给将要学习或者正在学习C开发的同学。 2&#xff09;内容属于原创&#xff0c;若转载&#xff0c;请说明出处。 3&#xff09;提供相关问题有偿答疑和支持。 左值和右值的概念&#xff1a; 早期的c语言中关于左值和右值的定义&a…

基于轨迹信息的图像近距离可行驶区域方案验证

一 图像可行驶区域方案 1.1 标定场景 1.2 标定步骤 设计一定间距标定场&#xff0c;在标定场固定位置设置摄像头标定标识点。主车开到标定场固定位置录制主车在该位置各个摄像头数据&#xff0c;通过摄像头捕获图像获取图像上关键点坐标pts-2d基于标定场设计&#xff0c;计算…

Windows上使用Navicat连接ubuntu上的mysql8报错:10061和1130

问题一&#xff1a;can’t connect to mysql server on ‘192.168.xxx.xxx’(10061) 解决&#xff1a; sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf&#xff0c;bind-address绑定了登陆的IP&#xff0c;把这两行代码注释掉&#xff0c;然后重启mysql。 问题二&#xff1a;1…

WMS系统对小型海外仓有哪些好处?规模不大有必要用吗?

作为一家想持续发展的海外仓&#xff0c;虽然目前的规模还不大&#xff0c;但是也需要不断优化仓库的作业效率。实施海外仓WMS系统是个不错的选择。 海外仓WMS系统的实施&#xff0c;不仅可以提升库存管理水平和一件代发等核心业务的效率&#xff0c;还能提升工人的生产效率&a…

智能本质:马毅教授对大模型和白盒理论的观点

引言 在人工智能的快速发展中&#xff0c;我们见证了从简单的自动化工具到复杂的智能系统的演变。随着深度学习技术的突破&#xff0c;大模型如GPT系列已经能够执行从文本生成到图像识别等多样化任务。然而&#xff0c;这些模型虽然在功能上取得了显著进展&#xff0c;但其内部…

洛谷 P1011 [NOIP1998 提高组] 车站

题目描述 火车从始发站&#xff08;称为第 1 站&#xff09;开出&#xff0c;在始发站上车的人数为 a&#xff0c;然后到达第 2 站&#xff0c;在第 2 站有人上、下车&#xff0c;但上、下车的人数相同&#xff0c;因此在第 2 站开出时&#xff08;即在到达第 3 站之前&#x…

存储器类型介绍

存储器 ROM 我们一般把手机和电脑的硬盘当作ROM。ROM的全称是&#xff1a;Read Only Memery&#xff0c;只读存储器&#xff0c;就是只能读不能写的存储器。但是现在的ROM不仅可以读&#xff0c;还可以写数据&#xff0c;比如给手机下载APP&#xff0c;就是给手机上的ROM写数据…

闲鱼商品搜索关键词优化攻略

一、闲鱼商品详情关键词搜索概述 闲鱼作为国内最大的二手交易平台之一&#xff0c;其商品搜索功能对于买家和卖家来说至关重要。商品详情页中的关键词搜索功能&#xff0c;可以帮助买家更快速地找到心仪的商品&#xff0c;也可以帮助卖家提高商品的曝光度&#xff0c;从而促进…

半导体制造企业 文件共享存储应用

用户背景&#xff1a;半导体设备&#xff08;上海&#xff09;股份有限公司是一家以中国为基地、面向全球的微观加工高端设备公司&#xff0c;为集成电路和泛半导体行业提供具竞争力的高端设备和高质量的服务。 挑战&#xff1a;芯片的行业在国内迅猛发展&#xff0c;用户在上海…

版本控制系统:Git 纯应用(持续更新);

基本操作 ctrl上行键&#xff1a;上次代码 本地仓库&#xff1a;Git init 新建文件&#xff1a;touch xxxx.xxx 查看状态&#xff1a;Git status 文件从工作区——暂存区&#xff1a;Git add ./文件名(.是通配符代表所有) 暂存区——仓库&#xff1a;Git commit -m &…

shark云原生-日志体系-filebeat高级配置(适用于生产)

文章目录 1. filebeat.inputs 静态日志收集器2. filebeat.autodiscover 自动发现2.1. autodiscover 和 inputs2.2. 如何配置1.2.1. Providers 提供者1.2.2. Providers kubernetes templates1.2.3. 基于提示&#xff08;hints&#xff09;的自动发现支持的 **hints**的完整列表&…

2024年07月03日 Redis部署方式和持久化

Redis持久化方式&#xff1a;RDB和AOF&#xff0c;和混合式 RDB&#xff1a;周期备份模式&#xff0c;每隔一段时间备份一份快照文件&#xff0c;从主线程Fork一个备份线程出来备份&#xff0c;缺点是会造成数据的丢失。 AOF&#xff1a;日志模式&#xff0c;每条命令都以操作…