阶段三:项目开发---大数据系统基础环境准备:任务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】使环境变量生效,例如:

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

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

相关文章

Kotlin和Java的一些不同点

1.Kotlin 的变量是没有默认值的(因此要求初始化),Java的成员变量是有默认值的 Java的成员变量: String name; // 默认值是 null int count; // 默认值是 0不过其实 Java 也只是成员变量有默认值,局部变量也是没有默…

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

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

前后端分离:四种开发模式与实践指南

前后端分离:四种开发模式与实践指南 什么是前后端分离 当业务变得越来越复杂或产品线越来越多时,原有的开发模式就无法满足业务需求了。 产品越来越多,展现层的变化越来越快、越来越多,此时应该进行前后端分离的分层抽象&#…

记录问题:解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

1. 背景 我非要用vscode,不用pycharm,哼! 2. 问题 由于 import xx 自定义的模块, python run 的时候会报错 No module named ‘xxx‘ 报错信息: Traceback (most recent call last):File "d:\work\sf_financ…

基于opencv的斜光测距及python实现

1.前言 最近做了一个基于opencv的斜光测距的小项目,东西不多,但是很有意思,值得拿出来学一学。项目里面需要比较精确的定位功能,将前人matlab代码移植到python上,并且做了一些优化,简化逻辑(毕竟我是专业的…

pandas数据分析(7)

组合DataFrame 连接 如果只是要将多个DataFrame粘合在一起,那么concat函数是最佳选择。在默认情况下,concat会将DataFrame按行粘合在一起,同时会将各列自动对齐。 如果想要按列进行粘合,需要将axis设置为1: concat的特…

制造企业真的需要数字化转型吗?一文讲透:为何做,如何做?

此前拜访了不少制造企业,其以中小型企业居多,在与企业负责人交流数字化转型话题时,感触最多的还是管理者对“数字化转型”的认知。 在数字化转型方面从国家层面到地方政府进行大量的宣传与政策支持,部分行业头部企业也从数字化转…

百度出品_文心快码Comate提升程序猿效率

1.文心快码 文心快码包含指令、插件 和 知识三种功能, 1)指令包含Base64编码、Base64解码、JSON转TS类型、JSON转YAML、JWT解码喂JSON。 2)插件包含 3)指令包含如下功能: 官网链接

AI墓地:738个倒闭AI项目的启示

近年来,人工智能技术迅猛发展,然而,不少AI项目却在市场上悄然消失。根据AI工具聚合网站“DANG”的统计,截至2024年6月,共有738个AI项目停运或停止维护。本文将探讨这些AI项目失败的原因,并分析当前AI初创企…

C语言:结构体数组

结构体数组 介绍定义结构体定义结构体数组初始化结构体数组访问和修改结构体数组的元素遍历结构体数组 示例高级用法动态分配结构体数组使用 malloc 动态分配使用 calloc 动态分配 结构体数组作为函数参数结构体数组与指针多维结构体数组使用 typedef 简化结构体定义结构体数组…

ClickHouse概述

ClickHouse概述 文章目录 ClickHouse概述ClickHouse是什么ClickHouse快的理由什么是OLAPClickHouse的特点列式存储DBMS 的功能多样化引擎高吞吐写入能力数据分区与线程级并行 ClickHouse的应用合适场景不适合场景 ClickHouse是什么 ClickHouse 是俄罗斯的 Yandex 于 2016 年开…

ubuntu20.04配置调试工具

1.准备工作&#xff1a;安装g或者gdb sudo apt updatesudo apt install gg --versionsudo apt install gdbgdb --version 2.配置环境 2.1在本地新建一个main.cpp #include <iostream> #include <vector> #include <string>using namespace std;int main(…

MySQL资讯|2024年MySQL第一个长期支持版本8.4发布

&#x1f4eb; 作者简介&#xff1a;「六月暴雪飞梨花」&#xff0c;专注于研究Java&#xff0c;就职于科技型公司后端工程师 &#x1f3c6; 近期荣誉&#xff1a;华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 &#x1f525; 三连支持&#xff1a;欢迎 ❤️关注…

【漏洞复现】Emlog Pro 2.3.4——任意用户登入、会话持久化(CVE-2024-5044)

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现 漏洞描述 漏洞编号&#xff1a;CVE-2024-5044 漏洞成因&#xff1a; 在Emlog Pro …

黑马点评DAY5|商户查询缓存

商户查询缓存 缓存的定义 缓存就是数据交换的缓冲区&#xff08;Cache&#xff09;&#xff0c;是存储数据的临时地方&#xff0c;一般读写性能较高。 比如计算机的CPU计算速度非常快&#xff0c;但是需要先从内存中读取数据再放入CPU的寄存器中进行运算&#xff0c;这样会限…

【C语言】union 关键字

在C语言中&#xff0c;union关键字用于定义联合体。联合体是一种特殊的数据结构&#xff0c;它允许不同的数据类型共享同一段内存。所有联合体成员共享同一个内存位置&#xff0c;因此联合体的大小取决于其最大成员的大小。 定义和使用联合体 基本定义 定义一个联合体类型时…

SiCat:一款多功能漏洞利用管理与搜索工具

关于SiCat SiCat是一款多功能漏洞利用管理与搜索工具&#xff0c;该工具基于纯Python 3开发&#xff0c;旨在帮助广大研究人员有效地识别和收集来自开源和本地存储库的漏洞信息。 SiCat专注于网络安全管理方面的实践工作&#xff0c;允许研究人员快速实现在线搜索&#xff0c;…

2024亚太赛(中文赛)数学建模竞赛选题建议+初步分析

提示&#xff1a;DS C君认为的难度&#xff1a;B<C<A&#xff0c;开放度&#xff1a;C<A<B。 综合评价来看 A题适合有较强计算几何和优化能力的团队&#xff0c;难度较高&#xff0c;但适用面较窄。 B题数据处理和分析为主&#xff0c;适合数据科学背景的团队…

Android TextView的属性与用法

文本控件包括TextView、EditText、AutoCompleteTextView、CheckedTextView、MultiAutoCompleteTextView、TextInputLayout等&#xff0c;其中TextView、EditText是最基本最重要的文本控件&#xff0c;是必须要掌握的文本控件。 1.TextView TextView控件用于显示文本信息&…

自然语言处理学习--3

对自然语言处理领域相关文献进行梳理和总结&#xff0c;对学习的文献进行梳理和学习记录。希望和感兴趣的小伙伴们一起学习。欢迎大家在评论区进行学习交流&#xff01; 论文&#xff1a;《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》 下面…