Hadoop 3.1.3 伪分布式环境深度实战从零构建到可视化监控的完整指南1. 环境准备与系统优化在Ubuntu 18.04上部署Hadoop伪分布式环境前需要完成以下基础配置# 更新系统并安装基础工具 sudo apt-get update sudo apt-get upgrade -y sudo apt-get install -y ssh pdsh vim git curl wget关键配置检查清单确保系统内存≥4GB建议8GB磁盘空间≥20GB已创建专用hadoop用户非root操作关闭防火墙sudo ufw disable注意生产环境请勿禁用防火墙本实验环境为简化操作临时关闭系统参数优化编辑/etc/sysctl.conf# 增加最大文件描述符数量 fs.file-max 65536 # 优化内存分配 vm.swappiness 10 # 提升网络性能 net.core.somaxconn 1024执行sudo sysctl -p使配置生效2. 核心组件安装与配置2.1 Java环境部署Hadoop 3.1.3需要Java 8或11推荐使用OpenJDK 11sudo apt-get install -y openjdk-11-jdk验证安装java -version # 应显示类似openjdk version 11.0.xx配置环境变量~/.bashrc末尾添加export JAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64 export PATH$PATH:$JAVA_HOME/bin2.2 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 # 首次需要输入yes之后应直接登录2.3 Hadoop安装与核心配置下载并解压Hadoop 3.1.3wget https://archive.apache.org/dist/hadoop/core/hadoop-3.1.3/hadoop-3.1.3.tar.gz tar -xzvf hadoop-3.1.3.tar.gz -C /opt/ sudo mv /opt/hadoop-3.1.3 /opt/hadoop配置环境变量~/.bashrcexport HADOOP_HOME/opt/hadoop export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_CONF_DIR$HADOOP_HOME/etc/hadoop关键配置文件修改core-site.xmlconfiguration property namefs.defaultFS/name valuehdfs://localhost:9000/value /property property namehadoop.tmp.dir/name value/opt/hadoop/tmp/value /property /configurationhdfs-site.xmlconfiguration property namedfs.replication/name value1/value /property property namedfs.namenode.name.dir/name value/opt/hadoop/dfs/name/value /property property namedfs.datanode.data.dir/name value/opt/hadoop/dfs/data/value /property /configurationmapred-site.xmlconfiguration property namemapreduce.framework.name/name valueyarn/value /property /configurationyarn-site.xmlconfiguration property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property property nameyarn.nodemanager.env-whitelist/name valueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME/value /property /configuration3. 集群启动与验证3.1 格式化HDFShdfs namenode -format成功标志看到Storage directory /opt/hadoop/dfs/name has been successfully formatted3.2 启动集群start-dfs.sh start-yarn.sh验证进程jps # 应包含 # NameNode # DataNode # ResourceManager # NodeManager # SecondaryNameNode3.3 Web UI访问服务访问地址默认端口NameNodehttp://localhost:98709870ResourceManagerhttp://localhost:80888088常见问题排查端口冲突检查netstat -tulnp | grep 端口号权限问题确保/opt/hadoop目录属主为hadoop用户日志查看tail -f $HADOOP_HOME/logs/*.log4. 实战操作与性能调优4.1 HDFS基础操作# 创建用户目录 hdfs dfs -mkdir -p /user/hadoop # 上传本地文件 hdfs dfs -put ~/.bashrc /user/hadoop/input # 查看文件 hdfs dfs -ls /user/hadoop/input # 运行WordCount示例 hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/hadoop/input /user/hadoop/output4.2 YARN资源调优编辑yarn-site.xml增加property nameyarn.nodemanager.resource.memory-mb/name value4096/value /property property nameyarn.scheduler.maximum-allocation-mb/name value2048/value /property property nameyarn.nodemanager.resource.cpu-vcores/name value2/value /property4.3 性能监控方案安装PrometheusGrafana监控# 安装Prometheus wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz tar -xzvf prometheus-*.tar.gz cd prometheus-*/ # 配置Hadoop JMX导出 在hadoop-env.sh添加 export HADOOP_OPTS$HADOOP_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port9010 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalseGrafana仪表盘导入ID12708Hadoop监控模板5. 开发环境集成与进阶实践5.1 Eclipse集成Hadoop开发环境安装Eclipse插件下载hadoop-eclipse-plugin-3.1.3.jar放置到Eclipse的plugins目录配置Map/Reduce LocationsHost: localhostPort: 9000 (HDFS)Port: 8088 (YARN)5.2 Python API开发示例安装hdfs3和pyarrowpip install hdfs3 pyarrow示例代码hdfs_operations.pyfrom hdfs3 import HDFileSystem hdfs HDFileSystem(hostlocalhost, port9000) # 列出目录 print(hdfs.ls(/user/hadoop)) # 读取文件 with hdfs.open(/user/hadoop/input/file.txt) as f: content f.read() print(content.decode(utf-8))5.3 容器化部署方案可选Docker Compose配置示例version: 3 services: hadoop: image: sequenceiq/hadoop-docker:3.1.3 ports: - 9870:9870 - 8088:8088 volumes: - ./data:/data environment: - HADOOP_HEAPSIZE1024