大数据基础设施搭建 - Linux环境

文章目录

  • 一、阿里云服务器购买
  • 二、阿里云服务器Linux环境配置
      • 2.1.1 关闭防火墙
      • 2.1.2 配置静态内网ip
      • 2.1.3 配置SSH免密登陆(免密登陆远程机器普通用户)
      • 2.1.4 文件分发工具
      • 2.1.5 命令同步执行工具

一、阿里云服务器购买

默认安全组除linux/windows远程连接端口开放外,其他端口不开放
硬件配置:cpu:2核 内存:8g 硬盘:40g
主机名称:hadoop102、hadoop103、hadoop104

二、阿里云服务器Linux环境配置

检验标准:静态内网ip、三台服务器互相可以ssh免密通信、hadoop102可向其他两台机器同步文件

2.1.1 关闭防火墙

目的: 防止hadoop各个节点间通信出现问题,只是内网间关闭了,阿里云服务器有安全组会限制外网的访问,所以不会出现安全问题
命令:(永久关闭)

systemctl disable firewalld

验证:systemctl status firewalld

2.1.2 配置静态内网ip

目的: linux系统默认ip地址是动态获取的,如果不配置ip,每次重启服务器,ip都会改变,这对于访问系统中的项目是很不友好的
步骤1: 编辑/etc/cloud/cloud.cfg配置文件

vim /etc/cloud/cloud.cfg

目的: 按i键切换至编辑模式,在# Example datasource config内容上增加以下配置,关闭cloud-init中的自动配置网络的参数,避免网卡配置文件内容被覆盖。

network:
    config: disabled

图示:在这里插入图片描述

步骤2: 查看并记录Linux实例的网卡信息

ifconfig

目的:查看实例的IP地址、子网掩码
图示:
在这里插入图片描述

route -n

目的:查看实例的网关信息
图示:
在这里插入图片描述
步骤3: 编辑/etc/sysconfig/network-scripts/ifcfg-eth0配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

描述:按i键切换至编辑模式,将BOOTPROTO的值修改为static,并将以上步骤中记录的IP地址、网关信息、子网掩码填写到该配置文件中,修改之后的内容如下所示。

BOOTPROTO=static
DEVICE=eth0
ONBOOT=yes
STARTMODE=auto
TYPE=Ethernet
USERCTL=no
IPADDR=172.28.76.217
NETMASK=255.255.240.0
GATEWAY=172.28.79.253

图示:在这里插入图片描述
验证:重启服务器后观察内网ip是否发生改变;或重启网络,systemctl restart network重启网络后需重新进行连接,如果ip没变的话就成功了;

2.1.3 配置SSH免密登陆(免密登陆远程机器普通用户)

目的:
1、配置免密后,执行ssh或者scp时不需要输密码,方便快捷。这点不是必要的原因
2、安装hadoop集群完成后,通常在master侧执行start-all.sh脚本来启动整个集群,脚本会ssh到各个slave来执行启动命令。如果没有配置免密,那么启停集群时要手动输入很多密码,这是致命的

使用root用户配置存在的问题,会将root账号对应的公钥发送到远程机器,不安全。

步骤1: 添加普通用户

三台需要都添加相同的普通用户,因为向远端发送公钥时,默认发送的是和当前登陆账号相同的远端账号

[root@hadoop102 ~]# useradd <用户名>
[root@hadoop102 ~]# passwd <用户名>
[root@hadoop103 ~]# useradd <用户名>
[root@hadoop103 ~]# passwd <用户名>
[root@hadoop104 ~]# useradd <用户名>
[root@hadoop104 ~]# passwd <用户名>

验证:[root@hadoop102 ~]# su - <用户名>

步骤2: 给普通用户添加sudo权限

[root@hadoop102 ~]# vim /etc/sudoers
[root@hadoop103 ~]# vim /etc/sudoers
[root@hadoop104 ~]# vim /etc/sudoers
#在“root ALL=(ALL)ALL”这一行下面,加一行(用户名 ALL=(ALL) ALL),并强制保存

步骤3: 在普通用户登陆的情况下配置SSH免密登陆

#0、从root用户切换导普通用户
[root@hadoop102 ~]# su - hadoop
#1、修改hosts文件
[hadoop@hadoop102 ~]$ sudo vim /etc/hosts
172.23.11.149   hadoop102       hadoop102
172.23.11.150   hadoop103       hadoop103
172.23.11.151   hadoop104       hadoop104
#2、生成公钥和私钥
#然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
[hadoop@hadoop102 ~]$ ssh-keygen -t rsa
#3、将公钥拷贝到要免密登录的目标机器上
[hadoop@hadoop102 ~]$ ssh-copy-id hadoop102
[hadoop@hadoop102 ~]$ ssh-copy-id hadoop103
[hadoop@hadoop102 ~]$ ssh-copy-id hadoop104
#4、其他节点相同

2.1.4 文件分发工具

需要在root用户下

步骤1: 脚本编写

[root@hadoop102 ~]# vim /usr/bin/mytools_rsync

脚本:

#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送,即 执行脚本后链接目录 
    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)
                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done

步骤2: 安装rsync

[root@hadoop102 ~]# yum install rsync

步骤3: 赋予该脚本以可执行权限

[root@hadoop102 ~]# chmod +x /usr/bin/mytools_rsync

步骤4: 测试脚本

2.1.5 命令同步执行工具

需要在root用户下

步骤1: 脚本编写

[root@hadoop102 ~]# vim /usr/bin/mytools_call

脚本:

#!/bin/bash
 
# 1.获取参数个数,小于1个参数报错
if [ $# -lt 1 ]
then
    echo "No Args command Input..."
    exit ;
fi
 
# 2.获取当前机器的路径
currDir=$pwd
 
# 3.ssh到每一台机器,切换到执行脚本机器的当前目录并执行相应命令,这里执行的命令只支持3个参数,可自己根据实际情况扩展,一般用于查看路径或文件内容
for host in hadoop102 hadoop103 hadoop104
do
        echo =============== $host ===============
        ssh $host "cd $currDir;$1 $2 $3;" 
done

步骤2: 赋予该脚本以可执行权限

[root@hadoop102 ~]# chmod +x /usr/bin/mytools_call

步骤3: 测试脚本

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

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

相关文章

如何避免在Flask中使用Response对象

在Flask框架中&#xff0c;Response对象的__bool__和__nonzero__方法被重载&#xff0c;以便返回一个表示HTTP响应状态是否为’OK’的布尔值。然而&#xff0c;这可能会导致一些预期之外的行为。 解决方案 对于上述问题&#xff0c;可以通过直接检查Response对象的ok属性来避…

[sqlserver]在count(*)末尾增加单位(sql语句中的类型转换函数convert())

背景&#xff1a;在查询登录总数后面增加“人次” 解决&#xff1a;使用convert()函数转换为varchar类型即可 原语句&#xff1a; select count(*) 登录次数 from login 更改后&#xff1a; select convert(varchar,count(*))人次 登陆次数 from login 关于convert()函数的…

交换机堆叠 配置(H3C)堆叠中一台故障如何替换

交换机堆叠 配置&#xff08;H3C&#xff09;堆叠中一台故障如何替换 堆叠用来干什么&#xff1f;配置两台成员设备的 IRF&#xff08;堆叠&#xff09;Switch01配置Switch02配置 如何替换堆叠中坏掉的一台交换机 堆叠用来干什么&#xff1f; 一台交换机网口有限&#xff0c;无…

机器视觉兄弟们,职场要不要王自如,如果你打工了,你就是被“包养”,就不要谈什么独立人格!

打工是什么意思&#xff1f; 从字面来看&#xff0c;词语中的“打”&#xff0c;意思是从事&#xff0c;进行&#xff1a;“”指工作。所以打工就是从事工作。那为什么不叫上班呢&#xff1f;打工多指农村人背井离乡到经济发达地方去工作。打工者经受了身心的艰难困苦&#xf…

nginx基本配置-基于nuc980开发板的笔记

一、介绍 前面的文章<nginx交叉编译移植-基于nuc980开发板的笔记>,介绍了如何移植nginx到开发板&#xff0c;打开的网页面是默认的网页。下面介绍如何输入网址变为指定的网页。 二、配置 ①将编写的网页&#xff0c;放到html文件夹下&#xff0c;如下图&#xff1a; ②打…

小红书x-s、x-s-common算法研究与分析(仅供学习)

文章目录 1. 写在前面2. 参数分析2.1. x-s、x-t、x-s-common 1. 写在前面 最近花时间分析了一下xhs&#xff0c;研究的不深&#xff0c;也参考了网上许多开源出来的案例。简单记录一下&#xff0c;感兴趣的将就看一下吧&#xff01; 之前也研究过一段时间的某音&#xff0c;下…

Redis分布式锁(中)

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 我们在不久前介绍了Spr…

【GitLab】-HTTP 500 curl 22 The requested URL returned error: 500~SSH解决

写在前面 本文主要介绍通过SSH的方式拉取GitLab代码。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.生成秘钥3.GitLab添加秘钥4.验证SSH方式4.更改原有HTTP方式为SSH 三、参考资料写在后面系列文章 一、场景描述 之前笔者是通过 HTTP Personal access token 的方式拉取…

基于JavaWeb+SSM+微信小程序基金优选系统的设计和实现

基于JavaWebSSM微信小程序基金优选系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 基金优选是金融机构的核心&#xff0c;是必不可少的一个部分。在金融机构的整个服务行业中…

关于CISSP中文版计算机化自适应考试(CAT),你需要知道的!

进入ISC2宣布CISSP简体中文的线性考试(Linear Test)被取消&#xff0c;逐步实行CISSP中文版计算机化自适应考试&#xff08;CAT&#xff09;。接下来我根据ISC2官网和互联网中关于CAT相关信息&#xff0c;给大家对CISSP认证CAT进行介绍。 一、什么是CISSP认证线性考试&#xf…

wpf devexpress 排序、分组、过滤数据

这个教程示范在GridControl如何排序数据&#xff0c;分组数据给一个行创建一个过滤。这个教程基于前一个教程。 排序数据 可以使用GridControl 排序数据。这个例子如下过滤数据对于Order Date 和 Customer Id 行&#xff1a; 1、对于Order Date 和 Customer Id 行指定Colum…

全平台自动去水印源码系统 一键下载高清无水印视频 支持全平台 带完整搭建部署教程

大家好啊&#xff0c;今天源码小编要来给大家分享一款超级好用的全平台自动去水印源码系统 。这款去水印的源码系统&#xff0c;支持全平台&#xff0c;可以帮你一键下载高清无水印视频。 以下是部分核心代码示例&#xff1a; 系统特色功能一览&#xff1a; 全平台支持&#…

requests 技术问题与解决方案:解决字典值中列表在URL编码时的问题

本文将探讨 issue 80 中提出的技术问题及其解决方案。该问题主要涉及如何在模型的 _encode_params 方法中处理列表作为字典值的情况。 问题背景 在处理用户提交的数据时&#xff0c;有时需要将字典序列化为 URL 编码字符串。在 requests 库中&#xff0c;这个过程通常通过 par…

从座舱到行泊一体,亿咖通科技做对了什么?

行泊一体赛道又迎来了一个重磅玩家。 据了解&#xff0c;亿咖通科技旗下基于两颗华山二号A1000芯片打造的亿咖通天穹Pro行泊一体智能驾驶计算平台&#xff0c;目前已经正式在领克08上面实现规模化量产交付。 亿咖通天穹Pro智能驾驶计算平台 值得一提的是&#xff0c;该行泊一…

快速入门ESP32——开发环境配置PlatformIO IDE

相关文章 快速入门ESP32——开发环境配置Arduino IDE 快速入门ESP32——开发环境配置PlatformIO IDE 一、下载安装二、验证 一、下载安装 下载安装 vscode 安装PlatformIO插件 创建工程 二、验证 写一个简单的函数来验证一下功能 void setup() {// put your setup cod…

如何优化谷歌商店里应用的评分评论1

低的评分和评论会引起的连锁反应&#xff0c;会对搜索和浏览可见性产生负面影响&#xff0c;同时拖累我们围绕应用商店优化所做的一切。所以解决负面评论的问题并提高应用的评分&#xff0c;对于提高应用商店的知名度至关重要。 1、分析应用评论。 我们需要分析应用程序当前获…

C++ 形参传值和传指针的误解

#include <stdio.h>void swap(int *x, int *y);main(){ int a 5, b 9;int *pp &a;int *kk &b;swap(pp, kk);printf("a%d\nb%d\n", *pp, *kk);return 0; } void swap(int *x, int *y) {int *t;t x;x y;y t; } 会发现&#xff0c;输出结果并没有…

05.智慧商城——路由前置守卫、首页动态渲染

01. 登录访问拦截 - 路由前置守卫 目标&#xff1a;基于全局前置守卫&#xff0c;进行页面访问拦截处理 说明&#xff1a;智慧商城项目&#xff0c;大部分页面&#xff0c;游客都可以直接访问, 如遇到需要登录才能进行的操作&#xff0c;提示并跳转到登录 但是&#xff1a;对…

大数据-之LibrA数据库系统告警处理(ALM-12047 网络读包错误率超过阈值)

告警解释 系统每30秒周期性检测网络读包错误率&#xff0c;并把实际错误率和阈值&#xff08;系统默认阈值0.5%&#xff09;进行比较&#xff0c;当检测到网络读包错误率连续多次&#xff08;默认值为5&#xff09;超过阈值时产生该告警。 用户可通过“系统设置 > 阈值配置…

从数据图表引入到最终效果呈现:全面解析JVS智能BI图表配置流程

在现今数据驱动的时代&#xff0c;图表是直观展现数据、洞察业务运行态势的重要工具。JVS智能BI的图表配置&#xff0c;具备丰富的组件类型和强大的配置功能&#xff0c;可以轻松实现数据的可视化和分析。 图表配置 组件的引入 1、点击新增组件按钮 2、在弹出的组件窗&#x…