第二章:数据基石——Linux基础命令、SSH免密登录、网络配置、JDK安装与环境变量、Hadoop集群角色与架构
各位同学,欢迎来到第二章。
说实话,很多做大数据的人,最后翻车都翻在基础环境上。代码写得再漂亮,集群起不来,一切白搭。这一章,咱们就把地基打牢。我会带着大家把Linux操作、网络配置、JDK安装、SSH免密登录,以及Hadoop的集群角色,一个一个啃下来。
2.1 Linux基础命令:你每天都会用的那些
大数据环境,99%跑在Linux上。你想想看,连个文件都不会操作,后面怎么配集群?我个人习惯,把常用命令分成几类,记牢就行。
文件与目录操作
ls -l:查看文件详情。我刚开始总记不住参数,后来发现-l就是 long 的意思,好记多了。cd /path:切换目录。没什么好说的,肌肉记忆。mkdir -p a/b/c:递归创建目录。这个-p参数很实用,省得一层层建。rm -rf:删除文件或目录。嗯,这里要注意,-rf是递归强制删除,用之前一定确认路径。我曾经手滑删错过,那感觉……不提了。
文件编辑与查看
vi / vim:编辑器。大数据工程师必备技能。记住三个模式:命令模式、插入模式、末行模式。cat / less / tail -f:查看文件内容。tail -f用来实时监控日志,排查问题利器。
权限与用户
chmod 755 file:修改权限。7=读+写+执行,5=读+执行。chown user:group file:修改文件所属用户和组。Hadoop启动时经常因为权限报错,这个命令要熟。
~/.bashrc 里。比如 alias ll='ls -lh',能省不少事。
2.2 SSH免密登录:集群通信的钥匙
Hadoop集群里,NameNode要远程启动DataNode,没有密码怎么行?SSH免密登录就是干这个的。
说白了,就是把你本机的公钥放到目标机器的授权列表里。这样你访问它时,它一比对,嗯,是自己人,放行。
配置步骤
- 生成密钥对:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa。一路回车,不要设密码。 - 复制公钥到目标机器:
ssh-copy-id user@hostname。输入一次密码,以后就不用再输了。 - 验证:
ssh hostname。如果直接登录成功,没提示输入密码,就成了。
~/.ssh 目录权限不对。记住,~/.ssh 权限必须是700,authorized_keys 必须是600。否则SSH会认为不安全,直接拒绝。
2.3 网络配置:让机器互相认识
集群里的机器要通信,首先得知道对方是谁。网络配置就是干这个的。
主机名与IP映射
修改 /etc/hostname 设置主机名。然后修改 /etc/hosts,把集群里所有机器的IP和主机名对应关系写进去。比如:
192.168.1.10 node1
192.168.1.11 node2
192.168.1.12 node3
这样,你在任何一台机器上,直接 ssh node2 就能访问,不用记IP。
网络接口配置
修改 /etc/sysconfig/network-scripts/ifcfg-eth0(不同系统文件名可能不同)。确保 ONBOOT=yes,BOOTPROTO=static,并设置好IP、网关、DNS。
ping 命令测试连通性。如果ping不通,先检查防火墙:systemctl stop firewalld。很多新手在这卡住。
2.4 JDK安装与环境变量:Java是Hadoop的基石
Hadoop是用Java写的,所以JDK必须装。版本要注意,Hadoop 3.x 一般要求 JDK 8 或 11。
安装步骤
- 下载JDK,解压到指定目录,比如
/usr/local/jdk1.8.0_202。 - 配置环境变量。编辑
/etc/profile,在末尾添加:
export JAVA_HOME=/usr/local/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 使配置生效:
source /etc/profile。 - 验证:
java -version。如果显示版本信息,说明安装成功。
2.5 Hadoop集群角色与架构:一张图看懂
Hadoop集群不是一台机器单打独斗,而是多台机器分工协作。核心角色就这几个:
- NameNode:老大,管元数据。它知道文件被切成了几块,每块存在哪台机器上。一旦它挂了,整个集群就废了。
- DataNode:小弟,管数据存储。真正存数据块的地方。定期向NameNode汇报自己存了哪些块。
- Secondary NameNode:辅助角色,帮NameNode合并编辑日志,减轻压力。注意,它不是NameNode的热备。
- ResourceManager:资源调度官,管计算资源的分配。
- NodeManager:每台机器上的执行者,跑具体任务的。
下面这张图,是我自己画的,把核心关系理清楚了:
你看,NameNode 管着所有 DataNode,ResourceManager 管着所有 NodeManager。数据存储和计算调度是两条线,互不干扰。这就是 Hadoop 的设计哲学——分工明确,各司其职。
好了,这一章的内容就这些。Linux命令、SSH免密、网络配置、JDK安装、Hadoop架构,每一步都是后面实战的基础。别急,慢慢来,把这些操作练熟了,后面搭建集群就是水到渠成的事。