温馨提示×

Linux如何支持Hadoop大数据处理

小樊
49
2025-09-25 09:05:32
栏目: 智能运维

1. 准备Linux基础环境
选择稳定的Linux发行版(如Ubuntu Server 20.04 LTS、CentOS 7),确保系统已更新至最新版本(sudo apt update && sudo apt upgrade)。安装必要工具(如wgetvim),用于下载和解压Hadoop安装包。

2. 安装Java运行环境(JRE/JDK)
Hadoop依赖Java环境,推荐安装OpenJDK 8或11(兼容性更好)。以Ubuntu为例,执行以下命令:

sudo apt install openjdk-11-jdk

验证安装:java -version(需显示Java版本信息)、javac -version(验证编译器是否可用)。

3. 下载并解压Hadoop
从Apache Hadoop官网下载最新稳定版本(如3.3.5),解压至指定目录(如/usr/local):

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
sudo tar -zxvf hadoop-3.3.5.tar.gz -C /usr/local/

为方便使用,可将Hadoop目录重命名:sudo mv hadoop-3.3.5 hadoop

4. 配置Hadoop环境变量
编辑用户家目录下的.bashrc文件(或全局配置文件/etc/profile),添加以下内容:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  # 根据实际Java安装路径调整

使配置生效:source ~/.bashrc

5. 配置Hadoop核心文件
进入$HADOOP_HOME/etc/hadoop目录,修改以下关键配置文件:

  • core-site.xml:设置HDFS的默认文件系统地址(单机模式为localhost,集群模式为NameNode IP/主机名):
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    
  • hdfs-site.xml:配置NameNode和DataNode的数据存储路径,以及副本数(单机模式设为1,集群模式根据节点数量调整):
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/usr/local/hadoop/data/dfs/namenode</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/usr/local/hadoop/data/dfs/datanode</value>
        </property>
    </configuration>
    
  • mapred-site.xml(若未存在,可复制mapred-site.xml.template生成):指定MapReduce运行框架为YARN:
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
  • yarn-site.xml:配置YARN的ResourceManager地址和Shuffle服务:
    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
    </configuration>
    ```。
    
    
    

6. 配置SSH免密登录(集群模式必需)
若搭建多节点集群,需配置NameNode与其他节点(DataNode、ResourceManager等)之间的SSH免密登录:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  # 生成密钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  # 将公钥添加至授权文件
ssh-copy-id hadoop@node2  # 复制公钥到其他节点(替换node2为实际主机名/IP)

测试免密登录:ssh hadoop@node2(无需输入密码)。

7. 格式化HDFS并启动集群
HDFS首次启动前需格式化NameNode(注意:格式化会清除HDFS中的所有数据,仅首次启动时执行):

hdfs namenode -format

启动HDFS(NameNode和DataNode)和YARN(ResourceManager和NodeManager)服务:

start-dfs.sh
start-yarn.sh

验证服务是否启动成功:

  • 使用jps命令查看进程(应包含NameNodeDataNodeResourceManagerNodeManager);
  • 访问Hadoop Web界面(HDFS:http://localhost:50070,YARN:http://localhost:8088)。

8. 运行Hadoop MapReduce作业
通过命令行操作HDFS,上传本地数据并运行示例作业(以WordCount为例):

  • 创建HDFS输入目录并上传本地文件:
    hdfs dfs -mkdir -p /user/hadoop/input
    hdfs dfs -put /local/path/to/input.txt /user/hadoop/input/
    
  • 运行MapReduce作业(需提前编译打包为JAR文件,如wordcount.jar):
    hadoop jar /path/to/wordcount.jar WordCount /user/hadoop/input /user/hadoop/output
    
  • 查看作业结果:
    hdfs dfs -cat /user/hadoop/output/part-r-00000
    ```。

0