如何通过Ubuntu Hadoop测试,轻松掌握大数据处理技能,成为行业顶尖高手?
- 内容介绍
- 文章标签
- 相关推荐
至于痛点直击。为什么你的Hadoop测试总是“差一步”?按理说,
很多开发者在Ubuntu上部署Hadoop时都会遭遇同一个噩梦:环境变量配置反复报错、SSH免密登录不通、NameNode格式化后启动失败、jps命令看不到进程、WordCount跑不通。文档看了一堆,博客抄了无数遍,却始终跑不通一个完整的流程。
一、 环境与前置检查:打好地基,拒绝“依赖地狱”
1.1 程序版本与网络互通性确认
痛点: 虚拟机/云主机网络不通、主机名解析失败导致集群节点找不到彼此。
- 操作程序: 推荐 Ubuntu 20.04 / 22.04 LTS。
- 检查命令:
# 查看版本
lsb_release -a
# 检查网络连通性
ping www.baidu.com
ping <其他节点IP>
ping <当前主机名>
关键动作: 修改 /etc/hostname 和 /etc/hosts确保主机名与IP映射正确,并关闭防火墙或开放Hadoop端口。
1.2 Java环境:Hadoop的生命线
痛点: JDK版本不匹配,或JA_HOME未生效导致启动脚本报错。
# 安装OpenJDK 11
sudo apt update && sudo apt install -y openjdk-11-jdk
# 验证
java -version
javac -version
# 设置环境变量
export JA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JA_HOME/bin:$PATH
source ~/.bashrc
1.3 SSH免密登录 & 专用使用者:安全与权限的基石
痛点: Root使用者启动风险高、SSH交互输入密码导致脚本自动化失败。
# 建议创建专用使用者 hadoop
sudo adduser hadoop
sudo usermod -aG sudo hadoop
su - hadoop
# 安装SSH Server & 生成密钥对
sudo apt install -y openssh-server
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 测试免密登录
ssh localhost
exit
# 若为集群模式,需将公钥分发至所有节点 authorized_keys
ssh-copy-id hadoop@<其他节点IP>
2.1 下载与解压:版本选型避坑教程
痛点: 官网下载慢、版本对应关系混乱。
# 建议使用清华/阿里云镜像加速下载 Hadoop 3.3.x
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
# 解压至 /opt/module 或 ~/app
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/module/
sudo chown -R hadoop:hadoop /opt/module/hadoop-3.3.6
ln -s /opt/module/hadoop-3.3.6 /opt/module/hadoop # 软链接方便升级切换
export HADOOP_HOME=/opt/module/hadoop>> ~/.bashrc && source ~/.bashrc >>>>>>>
bash
bash
bash
bash
bash
sudo chown...
...
echo 'export HADOOP_HOME=/opt/module/hadoop'>> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin'>> ~/.bashrc
source ~/.bashrc
hdfs --version # 验证命令是否生效
python
c:\users\xiaomi\\appdata\local\programs\python\\python\\python\\python\\python\\python\\python\\python\\python\\python\\python\\python\\python\\
python\\
python\\
python\\
python\\
python\\
python\\
python\\
python\\
python \\
python \\
data = pd.read_csv
data.head
print)
ython>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>
" role="button" aria-expanded="false" aria-label="Toggle navigation">Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation...
-
" role="button" aria-expanded="false">Toggle Dropdown ... ...
...
三大主要配置文件详解<\/h3>
\u70b9\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: ,...

$ cd $HADOOP_HOME/etc/hadoop$ vim core-site.xml$ vim hdfs-site.xml$ vim mapred-site.xml$ vim yarn-site.xml$ vim hadoop-env.sh
$ cd $HADOOP_HOME/etc/hadowebsitexmlcore-site.xmlmapred-site.xmlyarn-site.xmlvim hdfs-site.xmlvim mapred-site.xmlvim yarn-site.xmlvim hadoop-env.sh
$ cd $HADOOP_HOME/etc/hadowebsitexmlcore-site.xmlmapred-site.xmlyarn-site.xmlvim hdfs-site.xmlvim mapred-site.xmlvim yarn-site.xmlvim hadoop-env.sh
$ cd $HADOOP_HOME/etc/hadowebsitexmlcore-site.xmlmapred-site.xmlyarn-site.xmlvim hdfs-site.xmlvim mapred-site.xmlvim yarn-site.xmlvim hadoop-env.sh
$ cd $HADOOP_HOME/etc/hadowebsitexmlcore-site.xmlmapred-sitelinkssitemapyarn-sitelinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinks...
$ vim core_site_xml$ vim hdfs_site_xml$ vim mapred_site_xml$ vim yarn_site_xml$ vim hadoop_env_sh
--- core_site_xml ---fs.defaultFS:hdfs://localhost:9000io.file.buffer.size:
--- hdfs_site_xml ---dfs.replication:namenode.name.dir:/home/data/dfs/namenodedatanode.data.dir:/home/data/dfs/datanode--- mapred_site_xml ---framework_name:yarn--- yarn_site_xml ---resourcemanager.address:nodemanager.addressresourcemanager.scheduler.addressresourcemanager.resource-tracker.addressaux_services_yarn.nodemanager.mixed-services_shuffle--- java_home_in_hadoopenvshJAHOME=${JAHOME}
<\/blockquote><\/blockquote><\/blockquote><\/blockquote><\/blockquote><\/blockquote>`echo export JA_HOME=$|sed \"s:/bin/java::\")`
mkdir-p ~/data/dfs/namenode mkdir-p ~/data/dfs/datanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p ~/data/dfs/namenodemkdir-p ~/data/dfs/datanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p ~/data/namenodemkdir-p ~/data/datanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p ~/datasnamenodemkdir-p ~/datasdatanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p datasnamenodemkdir-p datasdatanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p datasnamenodemkdir-p datasdatanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
<\/center>`echo export JAHOME=$|sed \"s:/bin/java::\":`<\/center>`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R useruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodedivclassrowcolmdcolsmcolxscolxlgguttersguttersguttersguttersguttersguttersguttersgutters...
三大主要配置文件详解<\/h2>
配置项<\/th> 关键配置内容及说明<\/th><\/tr>
${{values.hive_conf_dir}}/
// core site xml HDFS NameNode RPC 地址 port 默认 port localhost port port localhost port localhost port localhost port localhost port localhost port localhost port localhost port localhost port locality locality locality locality locality locality locality locality locality locality locality localities localities localities localities localities localities localities localities localities localities localities localities localites localites localites localites localites localites localites localites localites localitessite site site site site site site sitesite sitesite sitesite sitesite sitesite sitesite sitesite site ...
// core site xml configuration property name fs default FS name value hdfs ////localhost :port property name io file buffer size name value property configuration configuration configuration configuration configuration configuration configuration ...
// core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below ...
configuration property name fs default FS value hdfs :////localhost :port property name io file buffer size value property configuration property name fs default FS value hdfs :////localhost :port property name io file buffer size value property configuration ...
configurationpropertynamevalueconfigurationpropertynamevalueconfigurationpropertynamevalueconfigurationpropertynamevalue...
...
// 清理后最终有效配置片段:
// $ cat $HADOOP\_HOME/etc/haddlephadddlephadddlephadddlephaddlephpadddlephaddlephpadddlephaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpadddlephadddlephadddlephadddlephadddlephadddlephadddlephadddlephadddlpehhddlepphlepphlepphlepphlepphlepphlepphlepphlepphlepphlepphl...
...
cat < EOF | sudo tee \$${values.hadoop_conf_dir}/core\-site\.xml | grep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrepgrepvgrepgrepgrepgrepgrepgrepgrepgrepgrep...
EOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFOEFOEFOEFOEFOEFOEFOEFOEF...
// 恢复人工可读格式:
cat < 'CORE_EOF' | tee \$${values.hadoop_conf_dir}/core\-site\.xml CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF ...
COREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOf...
>?,?>,?,>?,?>,?,>?,?
>,?,>?,?>,?,>?,?>,?,->->->->->->->->->-
****
痛点场景虚拟机克隆后MAC/IP冲突、JA_HOME失效导致启动脚本空指针、hostname解析失败报 java.netUnknownHostException。其实,
检查项
命令/操作
通过标准
OS版本
lsb_release-a
Ubuntu / LTS
主机名/IP映射
cat /etc/hosts
包含 IP hostname 本机行。严禁只靠回环
网络互通
ping hostname && ssh localhost date
无需密码返回时间戳
JDK版本
java-version && echo $JE\_HOME
输出 .或. + 方法指向 /usr/lib/jvm/..
⚡ 一键修复脚本片段 bash # 自动探测并写死 JE_HOME if;n EXPORT JACOME$))) ECHO 'exprot JACOME='$JACOME'~/.basrc fi source ~./basrc
二、主要组件安装与配置最小化可运行集群
. 下载校验
bash wget https://dlcdn.apache.org/hadoophadoops/-tar.gz.sha \
&& sha-sucm-shaha--tar.gzsha \
&& tar-zxfhadoops-.targz-C~/app/
. 四大主要 XML 模板
..
``
``es.daultFSmame`
``hdflocalhsot:` ``
``
``
``
``
``
`
.. `ml
`ml
`ml
. .sh
xporJAEOM${JAEOM} # 若上游已设则沿用;否则手写绝对方法防变更失效
. 首次格式化
bash hdfsnamenodefrmt-clusteIDcid-auto-geneate-force # 强制覆盖脏数据
三、启动验证黄金法则看到这四个进程才算活着
bash start-dfshstaryarshstart-all.sh # 一键拉起 HDFS + YARN jps-l # 必须出现:NameNode DataNode ResourceManager NodeManager SecondaryNameNode
❌ 常见卡住排查表:
异常现象
排查入口
jps只有 Jps 自身
$HDPOLOGSDIR/*.log搜索ERROR/FATAL]
NameNode起不来
检查 `/tmp/hadoophdpid.lock残留或目录权限
DataNode挂起
防火墙/Iptable屏蔽端口 OR磁盘满
四、功能性测试闭环从HelloWorld到生产级校验
. HDFS 基础读写
bash echllowrldBigDataSkillMaster~/test.txt dfspte~/test.txt/input/test.txt dfscatlinput/test.txt # 控制台打印 hello world BigData Skill Master → ✅ 写入读取链路通
. MapReduce WordCount
bash setEXAMPLE_JARSHARE/HDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHDPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPDPPDPPDPPDPPDPPDPPDPPDPPDPPDPPDDP...
bash YARNEXAMPLEJARS=$HDPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOMOE/mapreduces.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduces.jarddfscatloutput/* # 查看单词计数结果 → ✅ 分布式计算链路通
. Web UI 健康巡检
-
NameNode http://localhost:**
-
ResourceManager http://localhost:**
-
至于必看指标,Live Nodes = Dead Nodes = Apps Running = Apps Pending = *
五、性能基线与压测从“跑通”到“跑快”
. TestDFSI/O
bash dfstestDFIO-write-rfiles-filesizeMBdfstestDFIO-read-rfiles-filesizeMB grepThroughputtest_out.log # 写入应 ≥ MB/s;读取 ≥ MB/s
. Terasort
bash YARNEAPLESJARSTERASORTINOUTTERASORTINTERASORTOUTTERASORTVALIDATEOUTTERASORTVALIDATEOUTVALIDATERESULTSCASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECAPCAPCAPCAPCAPCAPCAP...
TB级数据单节点伪分布通常 - min集群线性
六、高频避坑教程从报错日志逆向定位根因
| 报错关键词 | %概率原因 秒级定位动作 |
| ------------------------------- ------------------------------------------------------------ ------------------------------------------------------------ |
| Connection refused host loclhostort***** || NamenDown OR端口占用 netstat-tlnpor;telnet loclhost |
| Incompatible clusterIDs* || DataDir残留旧元数据 rm-rfnameDir/datadir/hefoamte-clusteIDcid-auto-geneate |
| Unable to load native-hdooplirary* || so库缺失 LDLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATH/$HDPEHME/lib/native |
进阶成长路线图:从会搭建→懂原理→能调优→成专家
graph LR A B C源码阅读NameNode切换逻辑 DSQLonHadoppHiSparkFlik E治理血缘质量 F架构师级容量规划安全合规 A-->B-->C-->D-->E-->Fstyle Astroke:#ffstroke-widthpxstyle Fstroke:#ffstroke-widthpxclassDef level fill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#ffebee;
💡 给学习者的一封信
不要只满足于 “WordCount 跑通”。真正顶尖的高手,每一行日志都读得懂每一个参数都敢动刀每一次故障都能在分钟级定位。其实,把这份清单存下来每周末在云主机上从零走一遍三个月后回头看——你已经甩开 % 的同龄人。
- " role="button" aria-expanded="false">Toggle Dropdown ... ...
<\/blockquote><\/blockquote><\/blockquote><\/blockquote><\/blockquote><\/blockquote>`echo export JA_HOME=$|sed \"s:/bin/java::\")`mkdir-p ~/data/dfs/namenode mkdir-p ~/data/dfs/datanode
`echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p ~/data/dfs/namenodemkdir-p ~/data/dfs/datanode `echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p ~/data/namenodemkdir-p ~/data/datanode `echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p ~/datasnamenodemkdir-p ~/datasdatanode `echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p datasnamenodemkdir-p datasdatanode `echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p datasnamenodemkdir-p datasdatanode `echo export JAHOME=$|sed \"s:/bin/java::\":`<\/center>`echo export JAHOME=$|sed \"s:/bin/java::\":` <\/center>`echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R useruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodedivclassrowcolmdcolsmcolxscolxlgguttersguttersguttersguttersguttersguttersguttersgutters...
三大主要配置文件详解<\/h2>
配置项<\/th> 关键配置内容及说明<\/th><\/tr> ${{values.hive_conf_dir}}/ // core site xml HDFS NameNode RPC 地址 port 默认 port localhost port port localhost port localhost port localhost port localhost port localhost port localhost port localhost port localhost port locality locality locality locality locality locality locality locality locality locality locality localities localities localities localities localities localities localities localities localities localities localities localities localites localites localites localites localites localites localites localites localites localitessite site site site site site site sitesite sitesite sitesite sitesite sitesite sitesite sitesite site ... // core site xml configuration property name fs default FS name value hdfs ////localhost :port property name io file buffer size name value property configuration configuration configuration configuration configuration configuration configuration ... // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below ... configuration property name fs default FS value hdfs :////localhost :port property name io file buffer size value property configuration property name fs default FS value hdfs :////localhost :port property name io file buffer size value property configuration ... configurationpropertynamevalueconfigurationpropertynamevalueconfigurationpropertynamevalueconfigurationpropertynamevalue... ... // 清理后最终有效配置片段: // $ cat $HADOOP\_HOME/etc/haddlephadddlephadddlephadddlephaddlephpadddlephaddlephpadddlephaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpadddlephadddlephadddlephadddlephadddlephadddlephadddlephadddlephadddlpehhddlepphlepphlepphlepphlepphlepphlepphlepphlepphlepphlepphl... ... cat < EOF | sudo tee \$${values.hadoop_conf_dir}/core\-site\.xml | grep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrepgrepvgrepgrepgrepgrepgrepgrepgrepgrepgrep... EOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFOEFOEFOEFOEFOEFOEFOEFOEF... // 恢复人工可读格式: cat < 'CORE_EOF' | tee \$${values.hadoop_conf_dir}/core\-site\.xml CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF ... COREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOf...
>?,?>,?,>?,?>,?,>?,? >,?,>?,?>,?,>?,?>,?,->->->->->->->->->- ****
痛点场景虚拟机克隆后MAC/IP冲突、
JA_HOME失效导致启动脚本空指针、hostname解析失败报java.netUnknownHostException。其实,
检查项 命令/操作 通过标准 OS版本 lsb_release-aUbuntu / LTS 主机名/IP映射 cat /etc/hosts包含 IP hostname本机行。严禁只靠回环网络互通 ping hostname && ssh localhost date无需密码返回时间戳 JDK版本 java-version && echo $JE\_HOME输出 .或.+ 方法指向/usr/lib/jvm/..⚡ 一键修复脚本片段 bash # 自动探测并写死 JE_HOME if;n EXPORT JACOME$))) ECHO 'exprot JACOME='$JACOME'~/.basrc fi source ~./basrc
二、主要组件安装与配置最小化可运行集群
. 下载校验
bash wget https://dlcdn.apache.org/hadoophadoops/-tar.gz.sha \ && sha-sucm-shaha--tar.gzsha \ && tar-zxfhadoops-.targz-C~/app/
. 四大主要 XML 模板
..
`` ` `es.daultFSmame` ` `hdflocalhsot:` ` ` ` ` ` ` ` ` ` ` ` ` `
.. `
ml`ml `ml.
.shxporJAEOM${JAEOM} # 若上游已设则沿用;否则手写绝对方法防变更失效
. 首次格式化
bash hdfsnamenodefrmt-clusteIDcid-auto-geneate-force # 强制覆盖脏数据
三、启动验证黄金法则看到这四个进程才算活着
bash start-dfshstaryarshstart-all.sh # 一键拉起 HDFS + YARN jps-l # 必须出现:NameNode DataNode ResourceManager NodeManager SecondaryNameNode
❌ 常见卡住排查表:
异常现象 排查入口 jps只有 Jps 自身$HDPOLOGSDIR/*.log搜索ERROR/FATAL]NameNode起不来 检查 `/tmp/hadoophdpid.lock残留或目录权限 DataNode挂起 防火墙/Iptable屏蔽端口 OR磁盘满
四、功能性测试闭环从HelloWorld到生产级校验
. HDFS 基础读写
bash echllowrldBigDataSkillMaster~/test.txt dfspte~/test.txt/input/test.txt dfscatlinput/test.txt # 控制台打印 hello world BigData Skill Master → ✅ 写入读取链路通
. MapReduce WordCount
bash setEXAMPLE_JARSHARE/HDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHDPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPDPPDPPDPPDPPDPPDPPDPPDPPDPPDPPDDP...
bash YARNEXAMPLEJARS=$HDPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOMOE/mapreduces.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduces.jarddfscatloutput/* # 查看单词计数结果 → ✅ 分布式计算链路通
. Web UI 健康巡检
- NameNode http://localhost:**
- ResourceManager http://localhost:**
- 至于必看指标,Live Nodes = Dead Nodes = Apps Running = Apps Pending = *
五、性能基线与压测从“跑通”到“跑快”
. TestDFSI/O
bash dfstestDFIO-write-rfiles-filesizeMBdfstestDFIO-read-rfiles-filesizeMB grepThroughputtest_out.log # 写入应 ≥ MB/s;读取 ≥ MB/s
. Terasort
bash YARNEAPLESJARSTERASORTINOUTTERASORTINTERASORTOUTTERASORTVALIDATEOUTTERASORTVALIDATEOUTVALIDATERESULTSCASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECAPCAPCAPCAPCAPCAPCAP...
TB级数据单节点伪分布通常 - min集群线性
六、高频避坑教程从报错日志逆向定位根因
| 报错关键词 | %概率原因 秒级定位动作 | | ------------------------------- ------------------------------------------------------------ ------------------------------------------------------------ | |
Connection refused host loclhostort*****|| NamenDown OR端口占用 netstat-tlnpor;telnet loclhost | |Incompatible clusterIDs*|| DataDir残留旧元数据 rm-rfnameDir/datadir/hefoamte-clusteIDcid-auto-geneate | |Unable to load native-hdooplirary*|| so库缺失 LDLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATH/$HDPEHME/lib/native |
进阶成长路线图:从会搭建→懂原理→能调优→成专家
graph LR A B C源码阅读NameNode切换逻辑 DSQLonHadoppHiSparkFlik E治理血缘质量 F架构师级容量规划安全合规 A-->B-->C-->D-->E-->Fstyle Astroke:#ffstroke-widthpxstyle Fstroke:#ffstroke-widthpxclassDef level fill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#ffebee;
💡 给学习者的一封信 不要只满足于 “WordCount 跑通”。真正顶尖的高手,每一行日志都读得懂每一个参数都敢动刀每一次故障都能在分钟级定位。其实,把这份清单存下来每周末在云主机上从零走一遍三个月后回头看——你已经甩开 % 的同龄人。
至于痛点直击。为什么你的Hadoop测试总是“差一步”?按理说,
很多开发者在Ubuntu上部署Hadoop时都会遭遇同一个噩梦:环境变量配置反复报错、SSH免密登录不通、NameNode格式化后启动失败、jps命令看不到进程、WordCount跑不通。文档看了一堆,博客抄了无数遍,却始终跑不通一个完整的流程。
一、 环境与前置检查:打好地基,拒绝“依赖地狱”
1.1 程序版本与网络互通性确认
痛点: 虚拟机/云主机网络不通、主机名解析失败导致集群节点找不到彼此。
- 操作程序: 推荐 Ubuntu 20.04 / 22.04 LTS。
- 检查命令:
# 查看版本
lsb_release -a
# 检查网络连通性
ping www.baidu.com
ping <其他节点IP>
ping <当前主机名>
关键动作: 修改 /etc/hostname 和 /etc/hosts确保主机名与IP映射正确,并关闭防火墙或开放Hadoop端口。
1.2 Java环境:Hadoop的生命线
痛点: JDK版本不匹配,或JA_HOME未生效导致启动脚本报错。
# 安装OpenJDK 11
sudo apt update && sudo apt install -y openjdk-11-jdk
# 验证
java -version
javac -version
# 设置环境变量
export JA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$JA_HOME/bin:$PATH
source ~/.bashrc
1.3 SSH免密登录 & 专用使用者:安全与权限的基石
痛点: Root使用者启动风险高、SSH交互输入密码导致脚本自动化失败。
# 建议创建专用使用者 hadoop
sudo adduser hadoop
sudo usermod -aG sudo hadoop
su - hadoop
# 安装SSH Server & 生成密钥对
sudo apt install -y openssh-server
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
# 测试免密登录
ssh localhost
exit
# 若为集群模式,需将公钥分发至所有节点 authorized_keys
ssh-copy-id hadoop@<其他节点IP>
2.1 下载与解压:版本选型避坑教程
痛点: 官网下载慢、版本对应关系混乱。
# 建议使用清华/阿里云镜像加速下载 Hadoop 3.3.x
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
# 解压至 /opt/module 或 ~/app
tar -zxvf hadoop-3.3.6.tar.gz -C /opt/module/
sudo chown -R hadoop:hadoop /opt/module/hadoop-3.3.6
ln -s /opt/module/hadoop-3.3.6 /opt/module/hadoop # 软链接方便升级切换
export HADOOP_HOME=/opt/module/hadoop>> ~/.bashrc && source ~/.bashrc >>>>>>>
bash
bash
bash
bash
bash
sudo chown...
...
echo 'export HADOOP_HOME=/opt/module/hadoop'>> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin'>> ~/.bashrc
source ~/.bashrc
hdfs --version # 验证命令是否生效
python
c:\users\xiaomi\\appdata\local\programs\python\\python\\python\\python\\python\\python\\python\\python\\python\\python\\python\\python\\python\\
python\\
python\\
python\\
python\\
python\\
python\\
python\\
python\\
python \\
python \\
data = pd.read_csv
data.head
print)
ython>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>
" role="button" aria-expanded="false" aria-label="Toggle navigation">Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation Toggle navigation...
-
" role="button" aria-expanded="false">Toggle Dropdown ... ...
...
三大主要配置文件详解<\/h3>
\u70b9\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: \u5e94\u7edf: ,...

$ cd $HADOOP_HOME/etc/hadoop$ vim core-site.xml$ vim hdfs-site.xml$ vim mapred-site.xml$ vim yarn-site.xml$ vim hadoop-env.sh
$ cd $HADOOP_HOME/etc/hadowebsitexmlcore-site.xmlmapred-site.xmlyarn-site.xmlvim hdfs-site.xmlvim mapred-site.xmlvim yarn-site.xmlvim hadoop-env.sh
$ cd $HADOOP_HOME/etc/hadowebsitexmlcore-site.xmlmapred-site.xmlyarn-site.xmlvim hdfs-site.xmlvim mapred-site.xmlvim yarn-site.xmlvim hadoop-env.sh
$ cd $HADOOP_HOME/etc/hadowebsitexmlcore-site.xmlmapred-site.xmlyarn-site.xmlvim hdfs-site.xmlvim mapred-site.xmlvim yarn-site.xmlvim hadoop-env.sh
$ cd $HADOOP_HOME/etc/hadowebsitexmlcore-site.xmlmapred-sitelinkssitemapyarn-sitelinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinkssitemaplinks...
$ vim core_site_xml$ vim hdfs_site_xml$ vim mapred_site_xml$ vim yarn_site_xml$ vim hadoop_env_sh
--- core_site_xml ---fs.defaultFS:hdfs://localhost:9000io.file.buffer.size:
--- hdfs_site_xml ---dfs.replication:namenode.name.dir:/home/data/dfs/namenodedatanode.data.dir:/home/data/dfs/datanode--- mapred_site_xml ---framework_name:yarn--- yarn_site_xml ---resourcemanager.address:nodemanager.addressresourcemanager.scheduler.addressresourcemanager.resource-tracker.addressaux_services_yarn.nodemanager.mixed-services_shuffle--- java_home_in_hadoopenvshJAHOME=${JAHOME}
<\/blockquote><\/blockquote><\/blockquote><\/blockquote><\/blockquote><\/blockquote>`echo export JA_HOME=$|sed \"s:/bin/java::\")`
mkdir-p ~/data/dfs/namenode mkdir-p ~/data/dfs/datanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p ~/data/dfs/namenodemkdir-p ~/data/dfs/datanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p ~/data/namenodemkdir-p ~/data/datanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p ~/datasnamenodemkdir-p ~/datasdatanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p datasnamenodemkdir-p datasdatanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir-p datasnamenodemkdir-p datasdatanode
`echo export JAHOME=$|sed \"s:/bin/java::\":`
<\/center>`echo export JAHOME=$|sed \"s:/bin/java::\":`<\/center>`echo export JAHOME=$|sed \"s:/bin/java::\":`
mkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R useruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodedivclassrowcolmdcolsmcolxscolxlgguttersguttersguttersguttersguttersguttersguttersgutters...
三大主要配置文件详解<\/h2>
配置项<\/th> 关键配置内容及说明<\/th><\/tr>
${{values.hive_conf_dir}}/
// core site xml HDFS NameNode RPC 地址 port 默认 port localhost port port localhost port localhost port localhost port localhost port localhost port localhost port localhost port localhost port locality locality locality locality locality locality locality locality locality locality locality localities localities localities localities localities localities localities localities localities localities localities localities localites localites localites localites localites localites localites localites localites localitessite site site site site site site sitesite sitesite sitesite sitesite sitesite sitesite sitesite site ...
// core site xml configuration property name fs default FS name value hdfs ////localhost :port property name io file buffer size name value property configuration configuration configuration configuration configuration configuration configuration ...
// core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below ...
configuration property name fs default FS value hdfs :////localhost :port property name io file buffer size value property configuration property name fs default FS value hdfs :////localhost :port property name io file buffer size value property configuration ...
configurationpropertynamevalueconfigurationpropertynamevalueconfigurationpropertynamevalueconfigurationpropertynamevalue...
...
// 清理后最终有效配置片段:
// $ cat $HADOOP\_HOME/etc/haddlephadddlephadddlephadddlephaddlephpadddlephaddlephpadddlephaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpadddlephadddlephadddlephadddlephadddlephadddlephadddlephadddlephadddlpehhddlepphlepphlepphlepphlepphlepphlepphlepphlepphlepphlepphl...
...
cat < EOF | sudo tee \$${values.hadoop_conf_dir}/core\-site\.xml | grep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrepgrepvgrepgrepgrepgrepgrepgrepgrepgrepgrep...
EOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFOEFOEFOEFOEFOEFOEFOEFOEF...
// 恢复人工可读格式:
cat < 'CORE_EOF' | tee \$${values.hadoop_conf_dir}/core\-site\.xml CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF ...
COREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOf...
>?,?>,?,>?,?>,?,>?,?
>,?,>?,?>,?,>?,?>,?,->->->->->->->->->-
****
痛点场景虚拟机克隆后MAC/IP冲突、JA_HOME失效导致启动脚本空指针、hostname解析失败报 java.netUnknownHostException。其实,
检查项
命令/操作
通过标准
OS版本
lsb_release-a
Ubuntu / LTS
主机名/IP映射
cat /etc/hosts
包含 IP hostname 本机行。严禁只靠回环
网络互通
ping hostname && ssh localhost date
无需密码返回时间戳
JDK版本
java-version && echo $JE\_HOME
输出 .或. + 方法指向 /usr/lib/jvm/..
⚡ 一键修复脚本片段 bash # 自动探测并写死 JE_HOME if;n EXPORT JACOME$))) ECHO 'exprot JACOME='$JACOME'~/.basrc fi source ~./basrc
二、主要组件安装与配置最小化可运行集群
. 下载校验
bash wget https://dlcdn.apache.org/hadoophadoops/-tar.gz.sha \
&& sha-sucm-shaha--tar.gzsha \
&& tar-zxfhadoops-.targz-C~/app/
. 四大主要 XML 模板
..
``
``es.daultFSmame`
``hdflocalhsot:` ``
``
``
``
``
``
`
.. `ml
`ml
`ml
. .sh
xporJAEOM${JAEOM} # 若上游已设则沿用;否则手写绝对方法防变更失效
. 首次格式化
bash hdfsnamenodefrmt-clusteIDcid-auto-geneate-force # 强制覆盖脏数据
三、启动验证黄金法则看到这四个进程才算活着
bash start-dfshstaryarshstart-all.sh # 一键拉起 HDFS + YARN jps-l # 必须出现:NameNode DataNode ResourceManager NodeManager SecondaryNameNode
❌ 常见卡住排查表:
异常现象
排查入口
jps只有 Jps 自身
$HDPOLOGSDIR/*.log搜索ERROR/FATAL]
NameNode起不来
检查 `/tmp/hadoophdpid.lock残留或目录权限
DataNode挂起
防火墙/Iptable屏蔽端口 OR磁盘满
四、功能性测试闭环从HelloWorld到生产级校验
. HDFS 基础读写
bash echllowrldBigDataSkillMaster~/test.txt dfspte~/test.txt/input/test.txt dfscatlinput/test.txt # 控制台打印 hello world BigData Skill Master → ✅ 写入读取链路通
. MapReduce WordCount
bash setEXAMPLE_JARSHARE/HDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHDPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPDPPDPPDPPDPPDPPDPPDPPDPPDPPDPPDDP...
bash YARNEXAMPLEJARS=$HDPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOMOE/mapreduces.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduces.jarddfscatloutput/* # 查看单词计数结果 → ✅ 分布式计算链路通
. Web UI 健康巡检
-
NameNode http://localhost:**
-
ResourceManager http://localhost:**
-
至于必看指标,Live Nodes = Dead Nodes = Apps Running = Apps Pending = *
五、性能基线与压测从“跑通”到“跑快”
. TestDFSI/O
bash dfstestDFIO-write-rfiles-filesizeMBdfstestDFIO-read-rfiles-filesizeMB grepThroughputtest_out.log # 写入应 ≥ MB/s;读取 ≥ MB/s
. Terasort
bash YARNEAPLESJARSTERASORTINOUTTERASORTINTERASORTOUTTERASORTVALIDATEOUTTERASORTVALIDATEOUTVALIDATERESULTSCASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECAPCAPCAPCAPCAPCAPCAP...
TB级数据单节点伪分布通常 - min集群线性
六、高频避坑教程从报错日志逆向定位根因
| 报错关键词 | %概率原因 秒级定位动作 |
| ------------------------------- ------------------------------------------------------------ ------------------------------------------------------------ |
| Connection refused host loclhostort***** || NamenDown OR端口占用 netstat-tlnpor;telnet loclhost |
| Incompatible clusterIDs* || DataDir残留旧元数据 rm-rfnameDir/datadir/hefoamte-clusteIDcid-auto-geneate |
| Unable to load native-hdooplirary* || so库缺失 LDLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATH/$HDPEHME/lib/native |
进阶成长路线图:从会搭建→懂原理→能调优→成专家
graph LR A B C源码阅读NameNode切换逻辑 DSQLonHadoppHiSparkFlik E治理血缘质量 F架构师级容量规划安全合规 A-->B-->C-->D-->E-->Fstyle Astroke:#ffstroke-widthpxstyle Fstroke:#ffstroke-widthpxclassDef level fill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#ffebee;
💡 给学习者的一封信
不要只满足于 “WordCount 跑通”。真正顶尖的高手,每一行日志都读得懂每一个参数都敢动刀每一次故障都能在分钟级定位。其实,把这份清单存下来每周末在云主机上从零走一遍三个月后回头看——你已经甩开 % 的同龄人。
- " role="button" aria-expanded="false">Toggle Dropdown ... ...
<\/blockquote><\/blockquote><\/blockquote><\/blockquote><\/blockquote><\/blockquote>`echo export JA_HOME=$|sed \"s:/bin/java::\")`mkdir-p ~/data/dfs/namenode mkdir-p ~/data/dfs/datanode
`echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p ~/data/dfs/namenodemkdir-p ~/data/dfs/datanode `echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p ~/data/namenodemkdir-p ~/data/datanode `echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p ~/datasnamenodemkdir-p ~/datasdatanode `echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p datasnamenodemkdir-p datasdatanode `echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir-p datasnamenodemkdir-p datasdatanode `echo export JAHOME=$|sed \"s:/bin/java::\":`<\/center>`echo export JAHOME=$|sed \"s:/bin/java::\":` <\/center>`echo export JAHOME=$|sed \"s:/bin/java::\":` mkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenode mkdir p home data dfs datanode echo export javahome read link f which javased s bin javamkdir p home data dfs namenodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R user user homedatadfsnamenodesudo chown R user user homedatadfsdatanodesudo chown R useruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodesudochownRuseruserhomeddatasdatanodesudochownRuseruserhomeddatasnamenodedivclassrowcolmdcolsmcolxscolxlgguttersguttersguttersguttersguttersguttersguttersgutters...
三大主要配置文件详解<\/h2>
配置项<\/th> 关键配置内容及说明<\/th><\/tr> ${{values.hive_conf_dir}}/ // core site xml HDFS NameNode RPC 地址 port 默认 port localhost port port localhost port localhost port localhost port localhost port localhost port localhost port localhost port localhost port locality locality locality locality locality locality locality locality locality locality locality localities localities localities localities localities localities localities localities localities localities localities localities localites localites localites localites localites localites localites localites localites localitessite site site site site site site sitesite sitesite sitesite sitesite sitesite sitesite sitesite site ... // core site xml configuration property name fs default FS name value hdfs ////localhost :port property name io file buffer size name value property configuration configuration configuration configuration configuration configuration configuration ... // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below // core site xml corrected format below ... configuration property name fs default FS value hdfs :////localhost :port property name io file buffer size value property configuration property name fs default FS value hdfs :////localhost :port property name io file buffer size value property configuration ... configurationpropertynamevalueconfigurationpropertynamevalueconfigurationpropertynamevalueconfigurationpropertynamevalue... ... // 清理后最终有效配置片段: // $ cat $HADOOP\_HOME/etc/haddlephadddlephadddlephadddlephaddlephpadddlephaddlephpadddlephaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpaddlephpadddlephadddlephadddlephadddlephadddlephadddlephadddlephadddlephadddlpehhddlepphlepphlepphlepphlepphlepphlepphlepphlepphlepphlepphl... ... cat < EOF | sudo tee \$${values.hadoop_conf_dir}/core\-site\.xml | grep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrep vgrepgrepvgrepgrepgrepgrepgrepgrepgrepgrepgrep... EOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFEOFOEFOEFOEFOEFOEFOEFOEFOEF... // 恢复人工可读格式: cat < 'CORE_EOF' | tee \$${values.hadoop_conf_dir}/core\-site\.xml CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF CORE_EOF ... COREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOFCOREEOf...
>?,?>,?,>?,?>,?,>?,? >,?,>?,?>,?,>?,?>,?,->->->->->->->->->- ****
痛点场景虚拟机克隆后MAC/IP冲突、
JA_HOME失效导致启动脚本空指针、hostname解析失败报java.netUnknownHostException。其实,
检查项 命令/操作 通过标准 OS版本 lsb_release-aUbuntu / LTS 主机名/IP映射 cat /etc/hosts包含 IP hostname本机行。严禁只靠回环网络互通 ping hostname && ssh localhost date无需密码返回时间戳 JDK版本 java-version && echo $JE\_HOME输出 .或.+ 方法指向/usr/lib/jvm/..⚡ 一键修复脚本片段 bash # 自动探测并写死 JE_HOME if;n EXPORT JACOME$))) ECHO 'exprot JACOME='$JACOME'~/.basrc fi source ~./basrc
二、主要组件安装与配置最小化可运行集群
. 下载校验
bash wget https://dlcdn.apache.org/hadoophadoops/-tar.gz.sha \ && sha-sucm-shaha--tar.gzsha \ && tar-zxfhadoops-.targz-C~/app/
. 四大主要 XML 模板
..
`` ` `es.daultFSmame` ` `hdflocalhsot:` ` ` ` ` ` ` ` ` ` ` ` ` `
.. `
ml`ml `ml.
.shxporJAEOM${JAEOM} # 若上游已设则沿用;否则手写绝对方法防变更失效
. 首次格式化
bash hdfsnamenodefrmt-clusteIDcid-auto-geneate-force # 强制覆盖脏数据
三、启动验证黄金法则看到这四个进程才算活着
bash start-dfshstaryarshstart-all.sh # 一键拉起 HDFS + YARN jps-l # 必须出现:NameNode DataNode ResourceManager NodeManager SecondaryNameNode
❌ 常见卡住排查表:
异常现象 排查入口 jps只有 Jps 自身$HDPOLOGSDIR/*.log搜索ERROR/FATAL]NameNode起不来 检查 `/tmp/hadoophdpid.lock残留或目录权限 DataNode挂起 防火墙/Iptable屏蔽端口 OR磁盘满
四、功能性测试闭环从HelloWorld到生产级校验
. HDFS 基础读写
bash echllowrldBigDataSkillMaster~/test.txt dfspte~/test.txt/input/test.txt dfscatlinput/test.txt # 控制台打印 hello world BigData Skill Master → ✅ 写入读取链路通
. MapReduce WordCount
bash setEXAMPLE_JARSHARE/HDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOOHDOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHOODHDPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPPMAPREDUCEDOOPDPPDPPDPPDPPDPPDPPDPPDPPDPPDPPDDP...
bash YARNEXAMPLEJARS=$HDPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOME/share/HDPPOPHOMOE/mapreduces.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduce-examples.jarwordcountinputoutputYARNEXAMPLEJARS=$HDPOPHOMOE/share/mapreduce/mapreduces.jarddfscatloutput/* # 查看单词计数结果 → ✅ 分布式计算链路通
. Web UI 健康巡检
- NameNode http://localhost:**
- ResourceManager http://localhost:**
- 至于必看指标,Live Nodes = Dead Nodes = Apps Running = Apps Pending = *
五、性能基线与压测从“跑通”到“跑快”
. TestDFSI/O
bash dfstestDFIO-write-rfiles-filesizeMBdfstestDFIO-read-rfiles-filesizeMB grepThroughputtest_out.log # 写入应 ≥ MB/s;读取 ≥ MB/s
. Terasort
bash YARNEAPLESJARSTERASORTINOUTTERASORTINTERASORTOUTTERASORTVALIDATEOUTTERASORTVALIDATEOUTVALIDATERESULTSCASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECASEINSENSITIVECAPCAPCAPCAPCAPCAPCAP...
TB级数据单节点伪分布通常 - min集群线性
六、高频避坑教程从报错日志逆向定位根因
| 报错关键词 | %概率原因 秒级定位动作 | | ------------------------------- ------------------------------------------------------------ ------------------------------------------------------------ | |
Connection refused host loclhostort*****|| NamenDown OR端口占用 netstat-tlnpor;telnet loclhost | |Incompatible clusterIDs*|| DataDir残留旧元数据 rm-rfnameDir/datadir/hefoamte-clusteIDcid-auto-geneate | |Unable to load native-hdooplirary*|| so库缺失 LDLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATHLIBRAYPATH/$HDPEHME/lib/native |
进阶成长路线图:从会搭建→懂原理→能调优→成专家
graph LR A B C源码阅读NameNode切换逻辑 DSQLonHadoppHiSparkFlik E治理血缘质量 F架构师级容量规划安全合规 A-->B-->C-->D-->E-->Fstyle Astroke:#ffstroke-widthpxstyle Fstroke:#ffstroke-widthpxclassDef level fill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#fffbfill:#ffebee;
💡 给学习者的一封信 不要只满足于 “WordCount 跑通”。真正顶尖的高手,每一行日志都读得懂每一个参数都敢动刀每一次故障都能在分钟级定位。其实,把这份清单存下来每周末在云主机上从零走一遍三个月后回头看——你已经甩开 % 的同龄人。

