4、Linux操作系统基础:CentOS/Ubuntu安装与配置,SSH远程连接,常用命令

说实话,很多做大数据的朋友,一开始都栽在Linux上。我自己带团队时,发现80%的部署问题,根源都是Linux基础不牢。环境大数据平台跑在Linux上,这是铁律。你想想看,Hadoop、Spark、Flink,哪个不是Linux的亲儿子?

这一章,我就带你过一遍最核心的内容。不扯虚的,全是实战干货。

4.1 CentOS vs Ubuntu:怎么选?

我个人习惯用CentOS做生产环境。为什么?稳定。我在项目中遇到过CentOS 7跑了三年没重启的节点,稳如老狗。Ubuntu呢?更适合开发测试,包管理方便,社区活跃。

对比项 CentOS 7/8 Ubuntu 20.04/22.04
包管理 yum / dnf apt
默认内核 3.10(较老但稳定) 5.4+(较新)
适合场景 生产环境、集群部署 开发测试、单机学习
大数据组件兼容性 极好 良好
我的建议: 如果你刚开始学,用Ubuntu。上手快,遇到问题好搜。但如果你要搭生产集群,老老实实CentOS。

4.2 安装与初始配置

安装过程我就不啰嗦了,图形界面下一步下一步就行。重点说说装完后的「三板斧」。

4.2.1 网络配置

装完系统第一件事,配网络。没有网络,你什么都干不了。

CentOS 7 配置静态IP:

# 编辑网卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33

# 修改内容如下
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8

# 重启网络服务
systemctl restart network

Ubuntu 20.04 配置静态IP:

# 编辑netplan配置
vi /etc/netplan/00-installer-config.yaml

# 修改内容
network:
  ethernets:
    ens33:
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 114.114.114.114]
  version: 2

# 应用配置
netplan apply
注意: 我曾经因为网卡名称不对,折腾了半小时。CentOS 7用ip addr查看,Ubuntu用ifconfig(需要先安装net-tools)。别搞混了。

4.2.2 关闭防火墙与SELinux

做大数据集群,防火墙和SELinux是最大的坑。我建议先关掉,等集群跑通了再按需开启。

# CentOS 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 关闭SELinux(临时)
setenforce 0

# 永久关闭SELinux
vi /etc/selinux/config
# 修改 SELINUX=disabled

# Ubuntu 关闭防火墙
ufw disable

为什么关? 大数据组件之间通信端口太多,HDFS有50070、YARN有8088、Zookeeper有2181...一个个配防火墙规则,你会疯的。

4.3 SSH远程连接

SSH是运维的命根子。没有SSH,你只能蹲在机房插键盘。我建议所有操作都通过SSH远程完成。

4.3.1 安装与启动SSH服务

# CentOS
yum install -y openssh-server
systemctl start sshd
systemctl enable sshd

# Ubuntu
apt install -y openssh-server
systemctl start ssh
systemctl enable ssh

4.3.2 配置免密登录

这是集群部署的必备技能。你想想看,每次scp文件都要输密码,30个节点你受得了?

# 在客户端生成密钥对
ssh-keygen -t rsa -b 4096
# 一路回车,不要设密码

# 将公钥复制到服务器
ssh-copy-id root@192.168.1.100

# 测试免密登录
ssh root@192.168.1.100
避坑指南: 我曾经因为.ssh目录权限不对,免密死活配不上。记住:~/.ssh目录权限必须是700,authorized_keys文件权限必须是600。少一个0都不行。

4.4 常用命令(实战精选)

Linux命令几百个,但大数据运维常用的就这些。我帮你筛出来了。

4.4.1 文件管理

命令 作用 实战场景
ls -lh 查看文件详情 检查日志文件大小
du -sh * 查看目录大小 排查磁盘空间不足
find / -name "*.log" 查找文件 找Hadoop日志
tar -zcvf / -zxvf 压缩/解压 打包部署包
scp -r 远程拷贝 分发配置文件

文件查看三板斧:

# 看前10行
head -n 10 /var/log/messages

# 看后10行(实时追踪用这个)
tail -n 10 /var/log/messages
tail -f /var/log/messages   # 实时监控,调试神器

# 翻页查看
less /var/log/messages
# 按q退出,按/搜索

4.4.2 进程管理

大数据集群里,进程就是你的命。进程挂了,服务就挂了。

# 查看所有Java进程(大数据组件基本都是Java)
ps -ef | grep java

# 更优雅的方式
ps aux | grep java

# 查看进程树
pstree -p

# 杀进程(慎用!)
kill -9 PID    # 强制杀死
kill -15 PID   # 优雅停止(推荐)

# 查看端口占用
netstat -tlnp | grep 8088
# 或者
lsof -i :8088
血的教训: 我曾经在集群上kill -9了NameNode进程,导致HDFS元数据损坏。记住:能kill -15就别用-9,给进程一个善终的机会。

4.4.3 网络配置与诊断

网络不通,集群就是一堆废铁。这些命令你得刻在脑子里。

# 测试连通性
ping -c 4 192.168.1.101

# 查看路由
route -n

# 查看DNS解析
nslookup hadoop-master
# 或者
dig hadoop-master

# 查看网络接口
ip addr show
# 或者(老系统)
ifconfig

# 抓包分析(高级技能)
tcpdump -i eth0 port 8088

网络排查口诀: 先ping看通不通,再telnet看端口通不通,最后看防火墙有没有拦。三步走,90%的网络问题都能定位。

4.5 本章知识体系

下面这张图,是我梳理的Linux基础核心脉络。你照着这个思路学,不会乱。

Linux操作系统基础 系统安装与配置 CentOS vs Ubuntu选型 网络配置(静态IP) 防火墙/SELinux关闭 SSH远程连接 SSH服务安装与启动 免密登录配置 权限管理(700/600) 文件管理命令 ls/du/find/tar/scp head/tail/less查看 进程与网络管理 ps/kill/netstat/lsof ping/telnet/tcpdump

嗯,这张图基本把这一章的核心脉络讲清楚了。你照着这个结构去学,先装系统,再配SSH,然后练命令。别跳着学,基础不牢地动山摇。

最后说一句: Linux这东西,光看没用。我建议你开两台虚拟机,一台CentOS一台Ubuntu,照着上面的命令敲一遍。敲完你会发现,原来就这么回事。

公众号:蓝海资料掘金营,微信deep3321