准备系统运行的先决条件

知识点

大数据基础环境准备

重 点

SSH免密码连接

安装配置JDK

安装配置Scala

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

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

配置虚拟机的主机名称和网络

此步骤为了确保各主机之间可以通过主机名和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

  • 注意所有节点都要按上面的内容配置hosts文件。

  • 在每一个节点上使用ping命令,分别去ping其它节点的主机名,测试是否可以ping通,例如:

ping node2

按ctrl+c结束进程即可。

配置SSH免密码连接

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

  • 输入命令【ssh-keygen -t rsa】生成key,一直回车,都不输入密码,/root就会生成.ssh文件夹,注意,每台服务器都要设置,例如:
  • 在client节点服务器,合并公钥到authorized_keys文件,进入/root/.ssh目录,使用SSH命令合并,如下所示:

    cd /root/.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命令连接其它节点,例如:
  • 使用【exit】命令退出SSH连接。

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

Hadoop 2.6需要JDK 1.6及以上版本,如果系统自带Open JDK,强烈建议使用JDK 1.8替换系统自带的Open JDK。

  • 步骤一:查询系统是否以安装jdk
  • 步骤二:如果没有安装过jdk,则跳过此步骤,如果安装过jdk,则可以使用【rpm -e --nodeps 软件包名】命令卸载已安装的jdk
  • 步骤三:验证一下是否还有jdk
  • 步骤四:在node1节点上,直接解压下载的JDK并配置变量即可。具体的步骤如下:

输入【cd /opt/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拷贝到其它服务器

复制代码
[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】使环境变量生效。

相关推荐
---学无止境---7 分钟前
Linux内存回收与TLB管理:高效释放与缓存刷新的精密协作
linux
硬核子牙9 分钟前
硬盘第一关:MBR VS GPT
linux
TDengine (老段)14 分钟前
从“数据堆场”到“智能底座”:TDengine IDMP如何统一数据语言
大数据·数据库·物联网·时序数据库·tdengine
LCG元16 分钟前
Linux 日志分析全攻略:快速从海量日志中定位问题
linux
_Power_Y18 分钟前
Linux&git入门&设计模式(常考点)
linux·git·设计模式
liuyunshengsir19 分钟前
让 Elasticsearch Delete By Query 请求立即生效
大数据·elasticsearch·jenkins
海蓝可知天湛22 分钟前
Ubuntu24.10禁用该源...+vmware无法复制黏贴“天坑闭环”——从 DNS 诡异解析到 Ubuntu EOL 引发的 apt 404排除折腾记
linux·服务器·安全·ubuntu·aigc·bug
vvw&23 分钟前
如何在 Ubuntu 24.04 上安装和使用 AdGuard
linux·运维·服务器·ubuntu·adguard
武子康40 分钟前
大数据-148 Flink 写入 Kudu 实战:自定义 Sink 全流程(Flink 1.11/Kudu 1.17/Java 11)
大数据·后端·nosql
ZEERO~40 分钟前
夏普比率和最大回撤公式推导及代码实现
大数据·人工智能·机器学习·金融