资讯动态

大数据实验入门:Linux命令与Hadoop伪分布式环境搭建

发布时间:2026/10/22 6:39:18 来源:尧图企业网站定制
简介这份实验报告面向大数据初学者与高校实验课程学生聚焦 Hadoop 入门中的环境搭建与基础命令操作。内容围绕 Linux 虚拟机安装、常用 Shell 命令练习以及 Hadoop 3.1.3 伪分布式环境配置展开通过 VirtualBox 安装 Ubuntu 18.04/16.04 的完整流程帮助读者在单机条件下模拟集群运行为后续数据分析与开发打好基础。资源为 1 个 docx 文档压缩包大小约 289KB包含实验目的、实验平台说明、具体操作要求与知识点总结结构清晰便于对照练习和撰写实验报告。目前已有 977 人学习下载适合正在完成大数据课程实验或准备自己搭建 Hadoop 环境的读者参考。借助该实验文档读者可以快速掌握 cd、ls、mkdir、cp、mv、rm、cat、tar 等 Linux 常用命令并学会下载配置 Hadoop、运行自带的 WordCount 实例验证环境整体覆盖从建虚拟机到 HDFS 基础操作的关键步骤。1. 大数据实验第一课为什么我建议你先把 Linux 和 Hadoop 命令练熟拿到这份大数据实验材料时我第一反应是实验一居然不是写代码而是安装虚拟机、敲 Linux 命令、搭 Hadoop 伪分布式。但回头看这一步恰恰是大数据实验里最容易劝退人的门槛。Hadoop 在 Linux 上运行才能发挥最佳性能而多数读者手里的机器是 Windows所以实验一的核心任务就是在 Windows 上搭一台 Linux 虚拟机再在这台虚拟机上把 Hadoop 跑起来。整个实验拆成四块装虚拟机、练熟 17 组 Linux 命令、完成 Hadoop 3.1.3 伪分布式安装、用 HDFS 命令做一轮文件上传下载。适合刚接触大数据、想在单机环境里把 Hadoop 真正跑一遍的入门者也适合后续要做课程实验却总在环境上卡壳的人。2. 搭好实验底座VirtualBox 加 Ubuntu 18.04 虚拟机的安装与网络配置2.1 为什么选 VirtualBox 而不是 VMware实验平台推荐的是 VirtualBox理由很实际它是开源免费的虚拟机软件功能足够支撑 Hadoop 伪分布式环境而且在 Windows、macOS、Linux 宿主上都有对应版本安装包小、上手快。很多读者电脑里装的是 VMware也能用但 VirtualBox 的资源和配置习惯与实验步骤贴合得更紧密遇到问题网上的解决方案也多。我在实际带实验时遇到过一种情况某同学用 VMware 装 Ubuntu结果虚拟机网络模式配置不对导致 Hadoop 集群起来了但外部浏览器打不开 9870 端口页面。换 VirtualBox 按实验步骤重走一遍就通了。不是 VMware 不行而是实验步骤按 VirtualBox 写的跟着材料走省去很多自行排查的功夫。Ubuntu 版本建议选 18.04 LTS 或 16.04 LTS。LTS 是长期支持版本软件源稳定Hadoop 3.1.3 在这两个版本上都有大量验证记录。不建议追新装 22.04因为部分依赖库的默认行为变了个别命令的输出格式和权限策略有差异新手容易被这些细枝末节带偏。2.2 创建虚拟机的关键参数安装过程不复杂但有几个参数值得提前规划避免装完发现磁盘不够或内存不足。在 VirtualBox 里新建虚拟机时我一般这样分配资源内存4096 MB 起步。Hadoop 伪分布式启动后NameNode、DataNode、SecondaryNameNode 加上 ResourceManager 常驻内存2 GB 会卡到鼠标都挪不动4 GB 是比较舒服的起点。硬盘动态分配 20 GB。Hadoop 的日志和临时文件会吃掉不少空间20 GB 理论上够完成整本实验书的练习如果要跑更多数据集建议直接给 30 GB。CPU2 核即可Hadoop 伪分布式对 CPU 要求不高。显存默认值即可Ubuntu 桌面版的图形界面用默认显存就能流畅显示。创建虚拟机时硬盘格式选 VDI动态分配这样实际占用宿主机空间会从很小开始增长不至于一步就切走 20 GB。装完 Ubuntu 桌面版后第一件事是安装增强功能。增强功能不是 Ubuntu 必需的但它解决两个实际问题一是虚拟机窗口可以自适应分辨率不用再忍受 800x600 的小屏幕二是启用共享剪贴板Windows 和 Linux 之间可以互相复制文本这对后面复制命令有实际帮助。提示安装增强功能后需要重启虚拟机才能生效。如果插入增强功能光盘后没有自动弹出安装窗口可以手动打开光盘目录执行./autorun.sh。2.3 网络模式与 SSH 连接的坑VirtualBox 的默认网络模式是 NAT。NAT 模式下虚拟机可以正常访问外网也就是能下载软件包、访问 Hadoop 官网但从宿主机访问虚拟机里的服务会受限。在伪分布式实验中有一个场景需要打开http://localhost:9870查看 NameNode 的 Web 页面。如果你用 NAT 模式在 Windows 浏览器里直接访问虚拟机的 localhost 是不通的因为 NAT 模式下虚拟机和宿主机各自维护独立的网络栈。解决方式有两种。第一种是改用桥接模式让虚拟机在局域网里获得独立 IP然后在宿主机用这个 IP 访问 9870 页面。第二种是保持 NAT 模式在 VirtualBox 的网络设置里配置端口转发规则把宿主机的 9870 端口转发到虚拟机的 9870 端口这样宿主访问http://localhost:9870就能跳到虚拟机里的 NameNode 页面。另外如果后续实验打算用 SSH 客户端连接虚拟机需要先在 Ubuntu 里安装 OpenSSH Server。Ubuntu 桌面版默认不装 SSH 服务直接ssh localhost会提示连接拒绝。执行下面两行sudo apt update sudo apt install -y openssh-server安装后通过service ssh status确认服务在运行。这一步不是实验正文明确要求的但 Hadoop 的伪分布式启动脚本会通过 SSH 免密登录连接本机提前装好能让后面少踩一个坑。3. 把 Linux 命令练成肌肉记忆17 组命令的实战用法与细节3.1 目录切换与查看cd、ls实验要求的命令里cd和ls是出现频率最高的组合。先看cd的三种典型路径cd /usr/local # 绝对路径直接跳到 /usr/local cd .. # 回到上一级目录 cd ~ # 回到当前用户的 home 目录注意cd ..和cd ../..的区别前者回退一级后者回退两级。在 Hadoop 实验里经常需要在/usr/local/hadoop和它的上级目录之间来回切换这个操作会反复用到。还有一个容易混淆的点cd不带任何参数时等价于cd ~而不是停留在原地初学者常常在这里搞混。ls命令的常用参数是-l和-als /usr ls -l /usr ls -a ~ls -l会列出文件的权限、所有者、大小和修改时间这是后续用chown、chmod时判断生效与否的重要依据。ls -a显示隐藏文件.bashrc这类以点开头的配置文件必须加-a才能看到。实际使用中我习惯写ls -la一次性拿到全部信息。3.2 新建与删除目录mkdir、rmdir实验要求里有一个典型的多级目录创建场景cd /tmp mkdir a mkdir -p a1/a2/a3/a4第一条命令创建单层目录a这个没有任何悬念。第二条命令里-p是关键参数它的作用是递归创建父目录。如果不加-p当a1/a2/a3还不存在时内核会直接报错 No such file or directory。所以mkdir -p是创建多层目录的标准写法。删除目录时实验要求用的是rmdirrmdir /tmp/a rmdir /tmp/a1/a2/a3/a4rmdir只能删除空目录。如果目录里残留文件它会报错 Directory not empty。很多新手在这里被卡住然后误以为必须用rm -rf才能删目录。其实rmdir的定位就是只删空目录遇到非空目录时应该先确认目录里的内容再用rm -r递归删除。实验题里a1/a2/a3/a4是空的所以rmdir能一路删下去。3.3 复制移动与删除cp、mv、rmcp命令的实验中有一条值得展开说说cp ~/.bashrc /usr/bashrc1 mkdir /tmp/test cp -r /tmp/test /usr/第一条命令把当前用户的.bashrc配置文件复制到/usr目录并重命名为bashrc1。注意复制到/usr目录通常需要 sudo 权限如果你用的是普通用户这里可能会提示 Permission denied需要sudo cp或者先切换到 root 用户。第三条命令里-r参数表示递归复制。目录和文件不一样直接cp /tmp/test /usr/会报错必须加-r才能把整个目录连同内容复制过去。这是新手最容易漏的参数。mv命令比cp简单但有一个值得记住的特性——它同时承担移动和重命名两个职责mv /usr/bashrc1 /usr/test/ mv /usr/test /usr/test2第一条是移动把文件从/usr移到/usr/test目录下第二条是重命名因为目标路径/usr/test2不存在所以mv会把整个目录改名。判断一条mv是在移动还是在重命名就看目标路径是否是一个已存在的目录存在就是移动进去不存在就是重命名。rm命令的用法不复杂但有一个被反复强调的坑rm /usr/test2/bashrc1 rm -r /usr/test2rm删除文件不需要额外参数删除目录必须加-r递归。我不建议在实验阶段用rm -rf-f会跳过确认直接删除一旦路径写错会连补救的机会都没有。在教学环境里见过太多因为rm -rf手滑删掉整个用户目录的案例先养成不加-f的习惯确认无误后用rm -r足够。3.4 文件内容查看cat、tac、more、head、tail这一组命令全是对.bashrc文件做内容查看但每种命令的定位不同cat ~/.bashrc tac ~/.bashrc more ~/.bashrc head -n 20 ~/.bashrc tail -n 20 ~/.bashrccat正序输出全部内容tac反序输出注意这里反序是按行反序不是把每个字符倒过来。more适合看长文件它以屏幕为单位分页按空格翻页、按 q 退出。head和tail是最实用的组合head -n 20显示前 20 行tail -n 20显示最后 20 行。实验里还有两个变体head -n -50 ~/.bashrc tail -n 50 ~/.bashrchead -n -50的含义是显示除了最后 50 行之外的所有内容tail -n 50的含义是从第 50 行开始显示到结束。这两个写法的记忆点在于符号方向head搭配负号表示从尾部减掉若干行tail搭配正号表示从头部跳过若干行。如果你在 Windows 上的模拟环境里试过类似命令会发现这组行为在 Git Bash 里同样生效因为它们底层都是 GNU coreutils。3.5 时间戳修改与权限变更touch、chowntouch命令的两种用途在这个实验里都覆盖到了touch /tmp/hello ls -l /tmp/hello touch -t 202001010000 /tmp/hello第一次touch创建空文件ls -l能看到文件的修改时间是当前时刻。第二次touch -t的作用是把文件时间改成指定值格式是[[CC]YY]MMDDhhmm[.ss]上面这条命令把文件时间改为 2020 年 1 月 1 日 00:00。这个参数在写自动化脚本时偶尔会用到比如想触发 Makefile 重新编译某文件时先改时间戳再执行 make。chown命令需要 sudo 权限sudo chown root /tmp/hello ls -l /tmp/hello改完之后ls -l输出里所有者从当前用户名变成了 root。Hadoop 实验里较少直接操作 chown但理解所有者概念有助于看懂ls -l输出也是后面理解 HDFS 文件权限的基础。3.6 查找与压缩find、tar、grepfind命令在实验里的场景是查找.bashrc文件find ~ -name .bashrc~指定查找范围是当前用户的 home 目录-name指定文件名匹配。如果你在别的目录下执行这条命令结果是空因为find默认只在给定路径下递归查找不会跨目录搜索。tar是实验里最贴近实际工程应用的命令sudo tar -zcvf /test.tar.gz /test sudo tar -zxvf /test.tar.gz -C /tmp第一行做打包压缩-z表示用 gzip 压缩-c创建归档-v显示处理过程-f后面跟归档文件名。这里注意必须先创建/test目录并放入一些文件否则打包出来是空归档。第二行做解压-x表示解压-C /tmp指定解压目标目录。我在执行这组命令时通常顺手看一眼tar输出里的文件路径确认解压后文件落在预期目录。grep命令比较简单grep examples ~/.bashrc在.bashrc文件里查找包含 examples 字符串的行。如果文件里没有匹配项命令不报错也不输出退出码为 1这个特性和后续在日志文件里排查报错时配合使用很有效。3.7 环境变量配置.bashrc 与 JAVA_HOME实验最后一组 Linux 操作是为 Hadoop 准备 Java 环境变量。这也是整个实验里和 Hadoop 安装衔接最紧密的部分vim ~/.bashrc export JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64 export PATH$PATH:$JAVA_HOME/bin source ~/.bashrc echo $JAVA_HOME.bashrc是当前用户的环境配置文件每次终端启动时自动加载。把export写在这里效果是所有新开的终端都直接拿到JAVA_HOME。如果你只是在终端里手动执行export一旦关闭当前窗口下次又要重新设置。source ~/.bashrc的作用是让改动立即生效而不用重新登录系统。最后用echo $JAVA_HOME验证是否设置成功。这里有一个容易翻车的地方JAVA_HOME 的路径必须和实际 JDK 安装位置一致。如果你用apt install openjdk-8-jdk安装先执行dpkg -L openjdk-8-jdk | grep bin/java确认路径再写进.bashrc避免出现目录写错导致 Hadoop 启动时找不到 Java 的尴尬。4. Hadoop 3.1.3 伪分布式安装从解压到 WordCount 跑通4.1 安装前的两个前提JDK 与 SSHHadoop 3.1.3 要求 Java 8这一点在官方文档里有明确说明。实验环境里用 OpenJDK 8 就可以不需要装 Oracle JDK。安装方式很直接sudo apt install -y openjdk-8-jdk java -versionjava -version输出里会看到 1.8.0_xxx确认是 Java 8 再继续。如果默认软件源里没有 openjdk-8可以检查是否误用了更新的 Ubuntu 版本这时需要先配置 openjdk-8 的 PPA 源。SSH 免密登录是 Hadoop 伪分布式启动时的隐藏依赖。start-dfs.sh脚本会通过 SSH 连接 localhost 来启动各个节点如果每次连接都要输密码脚本会卡在密码输入环节无法继续。配置免密的经典三步ssh-keygen -t rsa -P -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys生成密钥对时-P 表示空密码-f指定生成路径这样生成的私钥不需要输入 passphrasessh localhost自动完成认证。然后把公钥追加到authorized_keys最后用chmod 600收紧权限。完成后执行ssh localhost验证如果直接进入 shell 而不提示输密码说明配置成功。4.2 四个配置文件的修改core-site.xml 与 hdfs-site.xmlHadoop 3.1.3 的安装包下载解压后配置文件集中在/usr/local/hadoop/etc/hadoop/目录。刚解压时这些 XML 文件都是空模板需要手动填入伪分布式相关的配置项。伪分布式环境必须改四个地方我用表格列一下文件配置项推荐值作用core-site.xmlfs.defaultFShdfs://localhost:9000指定 NameNode 的 RPC 通信地址core-site.xmlhadoop.tmp.dir/usr/local/hadoop/tmp指定 Hadoop 临时数据存储根目录hdfs-site.xmldfs.replication1副本数设为 1伪分布式只有单节点hadoop-env.shJAVA_HOME实际 JDK 路径让 Hadoop 启动脚本能找到 Javacore-site.xml 的修改方式是在configuration标签内加 property 节点。fs.defaultFS 是核心它告诉 Hadoop 客户端去哪找 NameNode。在伪分布式模式下localhost:9000 就代表本机上的 NameNode 服务。hadoop.tmp.dir 这个配置容易被人忽略但它决定了 NameNode 和 DataNode 的数据落在哪个目录后面出现 Cluster-Id 不一致时要删的就是这个目录下的数据。hdfs-site.xml 里主要改两个地方一是 dfs.replication 设为 1集群只有一台机器副本数设大于 1 没有意义还浪费存储二是可以显式指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir让 name 和 data 目录分开存放。虽然不指定也能跑但指定了之后排查问题时路径更清晰。hadoop-env.sh 的修改更直接找到文件里 JAV_HOME 相关的行填上第 3 章验证过的JAVA_HOME值。这一步不做的话后面执行hadoop命令会报 JAVA_HOME is not set。4.3 格式化与启动namenode format 只能做一次配置写完后第一件事是格式化 NameNodehdfs namenode -format格式化的本质是在 hadoop.tmp.dir 指定的路径下初始化 NameNode 的元数据结构包括生成 VERSION 文件里面有一个唯一的 clusterID。整个文件系统后续所有节点的身份都以这个 clusterID 为纽带。这里有一条必须刻进脑子的规则格式化只能执行一次。第二次执行格式化会生成新的 clusterID但 DataNode 的 data 目录里还是旧的 clusterID启动时 DataNode 会认为自己是孤儿节点拒绝连接 NameNode表现就是 jps 里看不到 DataNode 进程、Web 页面里 LiveNode 数量为 0。这个坑在第 5 章会专门写排查过程。格式化成功后会输出 Successfully formatted 和一长串路径信息看到这些说明元数据初始化完成。接下来启动分布式文件系统start-dfs.sh jpsjps是 Java 进程查看工具伪分布式正常启动后应该看到三个进程NameNode、DataNode、SecondaryNameNode如果只看到前面两个或者一个都没有就需要回到配置文件和免密登录环节排查。提示Hadoop 3.x 版本还建议单独启动 YARN执行start-yarn.sh这样后面跑 WordCount 时资源调度不会被卡住。JPS 里会出现 ResourceManager 和 NodeManager加上前面三个进程总共五个。4.4 用 WordCount 验证安装环境启动后验证安装最直接的方式就是跑 Hadoop 自带的 WordCount 示例。整个流程分三步hdfs dfs -mkdir -p /input hdfs dfs -put ~/.bashrc /input/ hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output第一条命令在 HDFS 上创建/input目录第二条命令把本地.bashrc上传进去第三条命令运行 jar 包里的 WordCount。jar 包的路径需要根据实际解压位置调整如果 Hadoop 安装在/usr/local/hadoop这个路径是固定的。命令执行过程中终端会滚动输出 Map 和 Reduce 的进度日志包括 map 100% reduce 100% 这样的阶段进度。完成后查看结果hdfs dfs -cat /output/part-r-00000输出内容是.bashrc里每个单词及出现频次。这一步跑通意味着 Hadoop 伪分布式环境从 HDFS 存储到 MapReduce 计算链路全部正常。5. HDFS 操作与常见问题排查Datanode 启动失败的完整解决路径5.1 HDFS 常用命令实操实验要求的 HDFS 操作本质上是在文件系统层面做和 Linux 命令类似的事情只是操作对象变成了分布式文件系统。核心四条命令hdfs dfs -mkdir -p /user/hadoop hdfs dfs -mkdir -p /user/hadoop/test hdfs dfs -ls /user/hadoop/test hdfs dfs -put ~/.bashrc /user/hadoop/test第一条在 HDFS 根目录下创建用户目录/user/hadoop。注意这里需要先用hdfs dfs -ls /确认 HDFS 处于可写状态如果执行时报错 Permission denied说明当前 Linux 用户不是超级用户可以给 hadoop 用户目录先做授权或者改用hdfs dfs -chmod -R 777 /user临时放开权限。hdfs dfs -put对应 Linux 侧的复制上传把本地~/.bashrc上传到 HDFS。验证方式是用hdfs dfs -ls查看文件是否就位然后用hdfs dfs -cat读取内容确认没传错。实验还要求把 HDFS 里的文件下载回本地hdfs dfs -get /user/hadoop/test/.bashrc /usr/local/hadoop/-get是-put的逆向操作。本地路径要写明确如果/usr/local/hadoop/目录不存在或没有写权限命令会直接报错所以执行之前先检查目标目录状态。实验中我在这个环节见过不少失误文件名写错导致下载回来的是空文件或者本地目录没建好导致get到的是临时文件。5.2 重灾区Datanode 启动失败与 Cluster-Id 不一致在 Hadoop 伪分布式安装的反馈里遇到最多的问题就是实验报告里记录的这个场景执行start-dfs.sh后jps能看到 NameNode 和 SecondaryNameNode唯独没有 DataNode。打开 Web 页面http://localhost:9870LiveNode 数量显示为 0。排查步骤是这样走的。先看 DataNode 日志日志位置在 Hadoop 安装目录下的 logs 目录具体文件是logs/hadoop-用户-datanode-主机名.log。用 tail 看最后几十行会找到类似下面的关键报错2024-xx-xx **:**:** WARN datanode.DataNode: Problem connecting to server: localhost:9000如果看到 Incompatible clusterIDs说明问题就是 clusterID 不一致。这个场景的起因通常是你在实验过程中因为某些原因执行了多次hdfs namenode -format第一次格式化生成 clusterID 为 ADataNode 的 data 目录里记录的是 A第二次格式化生成 clusterID 为 BNameNode 端身份从 A 变成 B但 DataNode 的 data 目录仍旧记录 A。启动时 DataNode 拿 A 去匹配 NameNode 的 B匹配失败就拒绝注册。验证方法是对比两个 VERSION 文件里的 clusterIDcat /usr/local/hadoop/tmp/dfs/name/current/VERSION cat /usr/local/hadoop/tmp/dfs/data/current/VERSION注意这里的具体路径取决于 core-site.xml 里 hadoop.tmp.dir 的配置值以及 name 和 data 的目录设定。如果两个文件里的 clusterID 不一样就能确认问题根源。解决方案也明确删除 DataNode 的 data 目录然后重新格式化。注意是删 data 目录不是删整个 tmp 或 name 目录。操作序列如下rm -rf /usr/local/hadoop/tmp/dfs/data hdfs namenode -format start-dfs.sh jps删除 data 目录后DataNode 在下次启动时会重新向 NameNode 注册并生成新的 VERSIONclusterID 会和 NameNode 保持一致。重新格式化本质上是让 NameNode 重新生成一套集群身份DataNode 以全新状态加入。执行完这四步再jps应该能看到 NameNode、DataNode、SecondaryNameNode 三个进程同时在线。我在指导实验时反复强调过一句话格式化不是后悔药Format 只会让问题更复杂。正确习惯是在单次实验过程中只格式化一次如果环境已经乱了优先考虑删除 data 目录而不是再次格式化。5.3 其他常见问题9870 端口打不开、内存不足除了 Cluster-Id 不一致还有两个高频问题值得记一下。第一个是 9870 端口在宿主机浏览器打不开。Hadoop 3.x 的 NameNode Web 页面端口是 9870但 VirtualBox 默认 NAT 模式下宿主机和虚拟机不互通。表现是虚拟机里用curl http://localhost:9870能返回 HTMLWindows 浏览器却无法访问。解决方式是给虚拟机配置端口转发把宿主机 9870 端口映射到虚拟机 9870或者直接把虚拟机网络模式改成桥接。另外如果宿主机开了防火墙也会拦截访问需要在防火墙里放行 9870 端口。第二个是启动 WordCount 时进程被系统杀掉。伪分布式虽然只有一台机器但 MapReduce 任务启动时 YARN 会申请内存如果虚拟机只分配了 2 GB 内存NameNode、DataNode 再加一个 Container 很容易把内存打满系统 OOM 后杀死进程。表现是WordCount 运行到中途报 Container killed 或 Java heap space或者jps之后进程数量比预期少。解决方式是给虚拟机分配 4 GB 以上内存同时可以在yarn-site.xml里降低容器内存申请值比如把 yarn.scheduler.minimum-allocation-mb 调到 256让每个容器占用更少内存。6. 让实验环境更顺手快照备份与脚本化自检6.1 虚拟机快照环境崩了也能后悔搭建一套 Hadoop 伪分布式环境需要的时间不短从装系统、配免密、改配置到跑通 WordCount顺利也要一小时中间任何一个误操作都可能让环境报废。VirtualBox 的快照功能在这里就是后悔药。我建议在两个时间点打快照一是 Ubuntu 安装完成、增强功能装好之后这时系统干净作为基础镜像二是 Hadoop 伪分布式完全跑通、WordCount 验证通过之后作为可用环境。后续无论怎么折腾——改配置、跑实验、装新组件——只要环境出问题直接恢复到后一个快照几分钟回到稳定状态。6.2 脚本化启动告别每次手动敲五个命令伪分布式的启停操作其实很机械每次敲start-dfs.sh、start-yarn.sh再敲jps验证步骤固定但非常容易漏掉其中一步。常见做法是把这些操作写成一个脚本放到/home/hadoop/下#!/bin/bash echo Starting HDFS... /usr/local/hadoop/sbin/start-dfs.sh echo Starting YARN... /usr/local/hadoop/sbin/start-yarn.sh sleep 3 echo Checking Java processes... jps脚本里每段都有提示输出sleep 3给进程启动留出缓冲区避免 jps 执行时节点还没完全起来。给脚本加上执行权限后每次实验直接./start-hadoop.sh就能一次性完成启动和验证。检查输出里是否有 NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager 五个进程缺哪个就针对哪个排查不用再盲猜。6.3 环境自检三条命令判断环境是否可用环境是不是真正可用不用跑完整的 WordCount 来验证三条命令加一个页面就能快速判断jps hdfs dfs -ls /jps看五个 Java 进程是否都在hdfs dfs -ls /确认 HDFS 文件系统能正常响应。再打开http://localhost:9870看 LiveNode 个数是否为 1且页面显示容量大于 0。这三个检查全过环境基本就处于可用状态。从那以后我每次进实验机房第一件事就是执行这三条检查确认环境健康再开始做实验再也没出现过做到一半才发现 DataNode 没起来的窘况。如果你刚开始接触 Hadoop也建议把这三个检查养成肌肉记忆。希望这次对实验一的完整拆解能帮你把环境问题一次解决后面做 HDFS 和 MapReduce 实验时不再被环境反复折腾。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑