当前位置: 首页 > news >正文

软件工程学习日志2025.9.24

📝 2025年9月24日 - Hadoop/HBase环境搭建与排错日记

🌟 今日工作概览

今天主要完成了Hadoop和HBase集群的环境搭建,解决了多个连接和配置问题,成功实现了从IDEA远程连接虚拟机HBase数据库。

🔧 技术操作记录

  1. Hadoop环境修复

• 问题:HDFS启动时报SSH免密登录失败

• 解决:

生成SSH密钥对

ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

测试免密登录

ssh localhost

• 结果:成功配置SSH免密登录,HDFS正常启动

  1. HBase连接配置

• 关键配置修改hbase-site.xml:

hbase.zookeeper.quorum
192.168.1.100


hbase.cluster.distributed
true

  1. IDEA远程连接成功

• Java连接代码:
Configuration config = HBaseConfiguration.create();
config.set("hbase.zookeeper.quorum", "192.168.1.100");
config.set("hbase.zookeeper.property.clientPort", "2181");
Connection connection = ConnectionFactory.createConnection(config);

• 验证:成功获取HBase集群状态和表列表

🐛 遇到的坑与解决方案

坑1:HBase端口访问失败

• 现象:IDEA连接超时

• 原因:虚拟机防火墙阻挡

• 解决:
sudo ufw allow 2181/tcp # ZooKeeper
sudo ufw allow 16000/tcp # HMaster

坑2:SLF4J警告日志

• 现象:hadoop version输出警告信息

• 分析:缺少日志实现绑定,但不影响功能

• 决策:暂时忽略,生产环境再添加log4j依赖

坑3:Windows端口占用

• 技巧:快速结束占用端口的进程
netstat -ano | findstr :8080
taskkill /F /PID 1234

📚 知识点总结

环境变量配置要点

在~/.bashrc中添加

export HADOOP_HOME=/usr/local/hadoop
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HADOOP_HOME/bin:$HBASE_HOME/bin

服务启动顺序记忆口诀

"HDFS先起床,ZooKeeper再上班,HBase最后开工"

网络连接排查流程

  1. ping测试基础连通性
  2. telnet检查端口开放
  3. 查看防火墙规则
  4. 验证服务绑定地址

💡 经验收获

  1. 配置文档化:所有修改的配置项及时记录,便于回溯
  2. 分层验证:从网络→系统→服务→应用层层排查
  3. 日志利用:tail -f实时日志是排错利器
  4. 备份意识:修改重要配置前先备份

🚀 明日计划
完善HBase Java API封装类

测试HBase数据读写性能

研究HBase与Hive集成方案

编写项目使用文档

😊 今日感想

"踩坑越多,成长越快。每个错误信息都是系统在教你它的运行规则。"

大数据 #Hadoop #HBase #环境搭建 #排错经验


坚持每日总结,让成长有迹可循✨

http://www.hskmm.com/?act=detail&tid=16251

相关文章:

  • 大厂代码编写习惯简谈
  • 知识导航新体验:Perplexica+cpolar 24小时智能服务 - 教程
  • 《计算机算法设计与分析》系列--算法实现题1.1-统计数字问题
  • 银河麒麟系统root密码重置
  • 银河麒麟系统磁盘管理
  • 浅谈傅里叶级数
  • js遍历对象
  • day 10 (函数2 )
  • 入驻了爱发电
  • 奖励函数(双足)
  • 离线部署镜像仓库搭建
  • Temporal和Airflow有什么差别
  • lc1035-不相交的线
  • 自我介绍与未来规划
  • 解构React Server Components:服务端序列化与流式传输的底层逻辑
  • js里面的单引号、双引号及反引号的用法
  • 牛客刷题-Day4
  • Skinned Mesh Renderer与LOD系统蒙皮变形异常全解析
  • K8S (Containerd)初始化安装流程
  • ?模拟赛 赛后总结
  • 日志|动态规划|最长回文子串|最长公共子序列|HTML CSS
  • Java 字段命名避坑: success和isSuccess
  • OTA升级时软件异常复位问题分析
  • Atcoder Educational DP Contest 做题记录
  • 20250924
  • 跨端边云时序数据管理新范式:Apache IoTDB 的 DB+AI 融合之道 - 实践
  • 《Real-Time Rendering》第二章 图形渲染管线
  • 放弃Unity后,我为什么选择了Unigine?
  • PHP 与 Java 的终极对比:2025年,开发者该如何选择? - 详解
  • 题单63——流程控制