Hadoop Linux 单机部署全攻略:从环境配置到集群模拟

Hadoop Linux 单机部署全攻略:从环境准备到集群模拟

在大数据处理领域,Hadoop作为开源的分布式计算框架,以其高可扩展性、容错性和经济性成为众多企业的首选。对于初学者或需要快速验证Hadoop功能的开发者而言,单机部署是一个理想的起点。本文将详细阐述如何在Linux系统上完成Hadoop的单机部署,包括环境准备、安装配置、启动验证及简单应用示例,旨在为读者提供一套完整、可操作的部署指南。

一、环境准备:奠定坚实基础

1.1 选择合适的Linux发行版

Linux作为Hadoop的底层操作系统,其稳定性和性能直接影响Hadoop的运行效率。常见的Linux发行版如Ubuntu、CentOS、Red Hat等均支持Hadoop部署。对于初学者,推荐使用Ubuntu,因其拥有丰富的社区资源和易于使用的包管理工具。

1.2 安装Java开发环境

Hadoop是基于Java开发的,因此安装Java开发环境是部署的前提。推荐安装OpenJDK或Oracle JDK,版本需与Hadoop兼容。以Ubuntu为例,可通过以下命令安装OpenJDK:

  1. sudo apt update
  2. sudo apt install openjdk-8-jdk # 根据Hadoop版本选择合适的JDK版本

安装完成后,验证Java版本:

  1. java -version

1.3 配置SSH免密登录

Hadoop集群中的节点间通信依赖SSH协议。单机部署时,为简化操作,需配置本地SSH免密登录。生成SSH密钥对并添加到授权列表:

  1. ssh-keygen -t rsa # 生成密钥对
  2. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 将公钥添加到授权列表
  3. chmod 600 ~/.ssh/authorized_keys # 设置权限

验证SSH免密登录:

  1. ssh localhost

二、Hadoop安装与配置

2.1 下载Hadoop安装包

访问Apache Hadoop官网,下载与系统兼容的Hadoop版本。推荐使用稳定版,如Hadoop 3.x系列。

2.2 解压并配置环境变量

将下载的Hadoop安装包解压至指定目录,如/usr/local/hadoop,并配置环境变量。编辑~/.bashrc/etc/profile文件,添加以下内容:

  1. export HADOOP_HOME=/usr/local/hadoop
  2. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使环境变量生效:

  1. source ~/.bashrc # 或 source /etc/profile

2.3 配置Hadoop核心文件

Hadoop的核心配置文件位于$HADOOP_HOME/etc/hadoop目录下,主要包括hadoop-env.shcore-site.xmlhdfs-site.xmlmapred-site.xml

  • hadoop-env.sh:配置Java环境变量路径,如export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  • core-site.xml:配置HDFS的默认名称节点和数据目录,示例如下:
  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://localhost:9000</value>
  5. </property>
  6. <property>
  7. <name>hadoop.tmp.dir</name>
  8. <value>/usr/local/hadoop/tmp</value>
  9. </property>
  10. </configuration>
  • hdfs-site.xml:配置HDFS的副本数和数据目录,示例如下:
  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value> # 单机部署时副本数为1
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>/usr/local/hadoop/hdfs/namenode</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>/usr/local/hadoop/hdfs/datanode</value>
  13. </property>
  14. </configuration>
  • mapred-site.xml:配置MapReduce框架,示例如下(需先复制mapred-site.xml.templatemapred-site.xml):
  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. </configuration>

2.4 格式化HDFS并启动服务

执行以下命令格式化HDFS:

  1. hdfs namenode -format

启动HDFS和YARN服务:

  1. start-dfs.sh # 启动HDFS
  2. start-yarn.sh # 启动YARN

验证服务状态:

  1. jps # 查看Java进程,应包含NameNode、DataNode、ResourceManager和NodeManager

三、验证与应用示例

3.1 创建HDFS目录并上传文件

使用HDFS命令创建目录并上传本地文件:

  1. hdfs dfs -mkdir /input
  2. hdfs dfs -put /path/to/local/file /input

3.2 运行MapReduce示例

Hadoop自带了一些MapReduce示例程序,如WordCount。运行示例程序验证Hadoop功能:

  1. hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output

查看输出结果:

  1. hdfs dfs -cat /output/part-r-00000

四、总结与展望

通过本文的详细步骤,读者已成功在Linux系统上完成了Hadoop的单机部署,并验证了其基本功能。单机部署不仅为初学者提供了学习Hadoop的便捷途径,也为开发者在正式集群部署前提供了功能测试和性能调优的平台。未来,随着数据量的增长和业务需求的复杂化,读者可进一步探索Hadoop集群的扩展、优化及与其他大数据技术的集成应用。