温馨提示×

如何在 Ubuntu 上使用 Hadoop 文件系统

小樊
50
2025-09-29 21:32:31
栏目: 智能运维

1. 环境准备:安装Java与SSH Hadoop依赖Java环境,首先安装OpenJDK 8(兼容性最佳):

sudo apt update && sudo apt install -y openjdk-8-jdk
java -version  # 验证安装(需显示Java版本信息)

若需远程访问集群,安装OpenSSH服务器并配置本地免密登录(单机模式可选):

sudo apt install -y openssh-server
ssh-keygen -t rsa  # 生成密钥对(直接回车)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  # 添加公钥到授权列表
ssh localhost  # 测试本地连接(无需密码)

2. 下载并解压Hadoop 从Apache官网下载稳定版本(如3.3.4),解压至/usr/local/(系统级目录):

wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/

为简化命令,可重命名目录:

sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop

3. 配置Hadoop环境变量 编辑~/.bashrc(用户级)或/etc/profile(全局),添加Hadoop路径:

echo "export HADOOP_HOME=/usr/local/hadoop" >> ~/.bashrc
echo "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> ~/.bashrc
source ~/.bashrc  # 立即生效

验证环境变量:

echo \$HADOOP_HOME  # 应输出/usr/local/hadoop

4. 配置Hadoop核心文件 进入Hadoop配置目录($HADOOP_HOME/etc/hadoop),修改以下文件:

  • core-site.xml(定义HDFS默认文件系统):
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>  <!-- 单机模式地址 -->
        </property>
    </configuration>
    
  • hdfs-site.xml(配置NameNode/Datanode目录及副本数):
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>  <!-- 单机模式副本数为1 -->
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/usr/local/hadoop/data/namenode</value>  <!-- NameNode数据目录 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/usr/local/hadoop/data/datanode</value>  <!-- DataNode数据目录 -->
        </property>
    </configuration>
    
  • mapred-site.xml(可选,默认模板即可):
    cp mapred-site.xml.template mapred-site.xml
    
  • yarn-site.xml(若启用YARN,需配置资源管理):
    <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>
    

5. 创建HDFS数据目录并格式化 创建NameNode和DataNode的存储目录:

sudo mkdir -p /usr/local/hadoop/data/namenode
sudo mkdir -p /usr/local/hadoop/data/datanode
sudo chown -R \$USER:\$USER /usr/local/hadoop/data  # 修改目录所有者(避免权限问题)

首次启动前必须格式化NameNode(初始化元数据):

hdfs namenode -format

(注:格式化会清除所有HDFS数据,仅首次启动需执行)

6. 启动HDFS服务 使用以下命令启动HDFS(包含NameNode和DataNode):

start-dfs.sh

验证服务是否启动成功:

jps  # 应显示NameNode、DataNode进程

访问HDFS Web界面(默认端口50070):

http://localhost:50070  # 查看HDFS状态

7. 常用HDFS操作命令

  • 创建目录
    hdfs dfs -mkdir -p /user/\$USER/input  # 创建/user/当前用户/input目录
    
  • 上传本地文件到HDFS
    hdfs dfs -put ~/test.txt /user/\$USER/input/  # 将本地test.txt上传至HDFS
    
  • 列出HDFS目录内容
    hdfs dfs -ls /user/\$USER/input  # 查看input目录下的文件
    
  • 下载HDFS文件到本地
    hdfs dfs -get /user/\$USER/input/test.txt ~/download_test.txt  # 下载至本地
    
  • 删除HDFS文件/目录
    hdfs dfs -rm /user/\$USER/input/test.txt  # 删除文件
    hdfs dfs -rmdir /user/\$USER/input  # 删除空目录
    

8. 停止HDFS服务 使用以下命令停止HDFS:

stop-dfs.sh

0