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+(较新) |
| 适合场景 | 生产环境、集群部署 | 开发测试、单机学习 |
| 大数据组件兼容性 | 极好 | 良好 |
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
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
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
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基础核心脉络。你照着这个思路学,不会乱。
嗯,这张图基本把这一章的核心脉络讲清楚了。你照着这个结构去学,先装系统,再配SSH,然后练命令。别跳着学,基础不牢地动山摇。
公众号:蓝海资料掘金营,微信deep3321