前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据环境搭建-Linux基础环境配置

大数据环境搭建-Linux基础环境配置

作者头像
码客说
发布2022-06-04 17:21:51
1.2K0
发布2022-06-04 17:21:51
举报
文章被收录于专栏:码客码客

版本准备

一定要注意各个版本的匹配

名称

版本

JDK

1.8.0_221

Scala

2.12.15

Spark

3.1.3

Hadoop

2.7.7

HBase

1.5.0

注意

一定要保证开发环境和部署的环境保持一致!否则运行时会报各种错误。

服务器环境

服务器准备至少3台

代码语言:javascript
复制
192.168.160.130(master)
192.168.160.131(slave1)
192.168.160.132(slave2)

虚拟机设置

固定服务器IP

进入到系统的IP地址保存文件所在目录

代码语言:javascript
复制
cd /etc/sysconfig/network-scripts

修改保存IP信息的文件

你机器上的名字有可能不是这个,但是是以ifcfg-e开头的文件

代码语言:javascript
复制
vi ifcfg-ens33

修改

代码语言:javascript
复制
ONBOOT=yes

重启

代码语言:javascript
复制
service network restart

安装

代码语言:javascript
复制
yum install -y net-tools

修改

代码语言:javascript
复制
BOOTPROTO=dhcp

代码语言:javascript
复制
BOOTPROTO=static

添加IP配置

代码语言:javascript
复制
IPADDR=192.168.160.130
NETMASK=255.255.255.0
GATEWAY=192.168.160.2
DNS1=223.5.5.5

保存:wq

注意网关地址怎么获取

编辑=>虚拟网络编辑器

image-20220412170616613
image-20220412170616613

也可以在服务器中查看

代码语言:javascript
复制
route -n

可以看到

image-20220411110559529
image-20220411110559529

重启网络

代码语言:javascript
复制
service network restart

查看网络状态

代码语言:javascript
复制
systemctl status network

查看IP地址

代码语言:javascript
复制
ip addr

禁用NetworkManager

代码语言:javascript
复制
systemctl stop NetworkManager
systemctl disable NetworkManager

设置DNS

代码语言:javascript
复制
vi /etc/resolv.conf

设置

代码语言:javascript
复制
search localdomain
nameserver 192.168.160.2

注意

这里DNS服务器可以设置为网关的地址,也可以是公网的DNS服务器IP

关闭防火墙

查看防火墙状态

代码语言:javascript
复制
systemctl status firewalld

查看开机是否启动防火墙服务

代码语言:javascript
复制
systemctl status firewalld

关闭防火墙

代码语言:javascript
复制
systemctl stop firewalld
systemctl disable firewalld

再次查看防火墙状态和开机防火墙是否启动

代码语言:javascript
复制
systemctl status firewalld
systemctl is-enabled firewalld

关闭selinux

临时关闭selinux(立即生效,重启服务器失效)

代码语言:javascript
复制
setenforce 0 #临时关闭

永久生效

代码语言:javascript
复制
vi /etc/selinux/config

代码语言:javascript
复制
SELINUX=enforcing

改为

代码语言:javascript
复制
SELINUX=disabled

查看selinux状态

代码语言:javascript
复制
getenforce

状态

disabled为永久关闭,permissive为临时关闭,enforcing为开启

关闭THP服务

关闭每台服务器的THP服务

代码语言:javascript
复制
vi /etc/rc.local

添加

代码语言:javascript
复制
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
  echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
exit 0

临时禁用THP服务

代码语言:javascript
复制
echo never > /sys/kernel/mm/transparent_hugepage/enabled

查看

代码语言:javascript
复制
cat /sys/kernel/mm/transparent_hugepage/enabled

同步时间

注意

分布式部署必须设置。

配置

代码语言:javascript
复制
yum install ntp -y

添加任务

代码语言:javascript
复制
crontab -e

内容

代码语言:javascript
复制
0 * * * * /usr/sbin/ntpdate cn.pool.ntp.org

在 slave1和 slave2上分别添加(ip为主节点的IP)

代码语言:javascript
复制
vi /etc/ntp.conf

配置为

代码语言:javascript
复制
server 192.168.160.130

修改主机名和hosts文件

1、修改主机名(注意主机的hostname修改为不包含着. / _等非法字符。)

代码语言:javascript
复制
hostnamectl set-hostname master

另两台

代码语言:javascript
复制
hostnamectl set-hostname slave1

代码语言:javascript
复制
hostnamectl set-hostname slave2

可以通过以下命令查看

代码语言:javascript
复制
vi /etc/hostname

2、修改hosts文件

代码语言:javascript
复制
vi /etc/hosts

配置为

代码语言:javascript
复制
192.168.160.130 master
192.168.160.131 slave1
192.168.160.132 slave2

测试

代码语言:javascript
复制
ping master

3、修改/etc/sysconfig/network

代码语言:javascript
复制
vi /etc/sysconfig/network

内容

代码语言:javascript
复制
NETWORKING=yes
HOSTNAME=master

4、设置最大打开文件数

代码语言:javascript
复制
ulimit -n 10000

(也可以弄个永久设置)

5、重新生效网络

代码语言:javascript
复制
service network restart

免密登陆

生成密钥对

代码语言:javascript
复制
mkdir ~/.ssh
cd ~/.ssh
#生成秘钥,之后一路回车即可,不需要输入任何内容。我之前已经生成过,所以提示是否overwrite。如果是第一次生成,不会有这个提示。
ssh-keygen -t rsa
#将公钥复制到制定文件
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 
#测试ssh连接,首次连接需要输入yes,但不需要输入密码,之后不需要输入yes,如果能不输入密码连接,就配置成功了
ssh master

登录 slave1,将公钥拷贝到 master的authorized_keys中

代码语言:javascript
复制
ssh-copy-id -i master

登录 slave2,将公钥拷贝到 master的authorized_keys中

代码语言:javascript
复制
ssh-copy-id -i master

在 master上修改文件权限

代码语言:javascript
复制
chmod 700 ~/.ssh
chmod 600 authorized_keys

在 master上将authorized_keys文件复制到其他机器

代码语言:javascript
复制
scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/authorized_keys

在 master上验证免密登陆,可以看到时间信息

代码语言:javascript
复制
ssh master date
ssh slave1 date
ssh slave2 date

如果不配置的话,后来启动Hadoop的每个服务的时候会让输入密码。

如果Connection refused,可以执行

代码语言:javascript
复制
sudo systemsetup -f -setremotelogin on
# 执行
ssh master

安装JDK

官方下载JDK 网址

或者 链接:https://pan.baidu.com/s/1JdPCMMEq178hXV5V4Ild3Q 密码:03l1

比如下载的文件为jdk-8u221-linux-x64.rpm

更改文件权限

代码语言:javascript
复制
chmod 755 jdk-8u221-linux-x64.rpm

安装

代码语言:javascript
复制
rpm -ivh jdk-8u221-linux-x64.rpm

安装后的路径为/usr/java/jdk1.8.0_221-amd64

删除文件

代码语言:javascript
复制
rm -rf jdk-8u221-linux-x64.rpm

查询Java版本

代码语言:javascript
复制
java -version

查看JAVA_HOME

代码语言:javascript
复制
echo $JAVA_HOME

打开文件/etc/profile

代码语言:javascript
复制
vi /etc/profile

profile文件末尾加入:

代码语言:javascript
复制
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64 
export PATH=$JAVA_HOME/bin:$PATH   
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

配置立即生效

代码语言:javascript
复制
source /etc/profile

查看

代码语言:javascript
复制
echo $JAVA_HOME

复制到另两台服务器

代码语言:javascript
复制
scp -r /usr/java/jdk1.8.0_221-amd64 root@ slave1:/usr/java
scp -r /usr/java/jdk1.8.0_221-amd64 root@ slave2:/usr/java

小知识

/etc/profile.d 目录中存放的是一些应用程序所需的启动脚本。

这些脚本文件之所以能够 被自动执行,是因为在/etc/profile 中使用一个for循环语句来调用这些脚本。

而这些脚本文件是用来设置一些变量和运行一些初始化过程的。

Linux 环境下/etc/profile/etc/profile.d 的区别

  1. 两个文件都是设置环境变量文件的,两者都是永久性的环境变量,是全局变量,对所有用户生效
  2. /etc/profile.d//etc/profile好维护,不想要什么变量直接删除/etc/profile.d/下对应的shell脚本即可, 不用像/etc/profile需要改动此文件
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 版本准备
  • 服务器环境
  • 虚拟机设置
    • 固定服务器IP
      • 设置DNS
        • 关闭防火墙
          • 关闭selinux
            • 关闭THP服务
              • 同步时间
                • 修改主机名和hosts文件
                  • 免密登陆
                  • 安装JDK
                  • 小知识
                  相关产品与服务
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档