温馨提示×

Hadoop文件系统Linux上怎么用

小樊
59
2025-08-31 20:19:39
栏目: 智能运维

1. 准备Linux环境
在Linux上使用Hadoop文件系统(HDFS)前,需完成基础环境配置:

  • 安装Java JDK:Hadoop依赖Java,推荐使用OpenJDK 8/11。通过java -version验证安装(如未安装,用sudo apt install openjdk-11-jdk或对应包管理器安装)。
  • 安装SSH:Hadoop通过SSH实现节点间通信。执行sudo apt install openssh-client openssh-server安装,启动服务sudo service ssh start并检查状态sudo service ssh status
  • 创建专用用户(可选但推荐):为安全起见,创建专门用户(如hadoopuser),并加入sudo组:sudo adduser hadoopusersudo usermod -aG sudo hadoopuser

2. 下载与安装Hadoop

  • 从Apache官网下载Hadoop发行版(如3.3.1版本):wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
  • 解压至/usr/local目录:tar -xzvf hadoop-3.3.1.tar.gzsudo mv hadoop-3.3.1 /usr/local/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使配置生效。

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

  • core-site.xml:定义HDFS的默认访问地址和临时目录:
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>  <!-- 单机模式用localhost,集群需替换为NameNode主机名 -->
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/tmp/hadoop-${user.name}</value>  <!-- 临时文件目录 -->
        </property>
    </configuration>
    
  • hdfs-site.xml:配置HDFS副本数(单机模式设为1,集群根据节点数调整):
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </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>
    
  • (可选)yarn-site.xml:若启用YARN资源管理,需配置ResourceManager主机和shuffle服务:
    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>localhost</value>  <!-- 集群模式需替换为ResourceManager主机名 -->
        </property>
    </configuration>
    

4. 启动HDFS服务

  • 格式化NameNode:首次启动前需格式化HDFS(会清除所有数据,仅第一次需要):
    hdfs namenode -format
    
  • 启动HDFS:执行start-dfs.sh启动NameNode和DataNode服务。
  • 验证状态
    • jps命令查看进程(应出现NameNodeDataNode);
    • 通过Web界面查看(默认端口9870):http://localhost:9870

5. 使用HDFS命令行工具
Hadoop提供hadoop fs(通用文件系统命令)和hdfs dfs(HDFS专用命令,推荐)操作HDFS,常见操作如下:

  • 上传本地文件到HDFShdfs dfs -put /local/path/file.txt /hdfs/destination/
  • 下载HDFS文件到本地hdfs dfs -get /hdfs/source/file.txt /local/path/
  • 列出HDFS目录内容hdfs dfs -ls /hdfs/path/(加-h参数可显示文件大小人类可读格式,如-ls -h
  • 查看文件内容hdfs dfs -cat /hdfs/path/file.txt(大文件用| less分页:hdfs dfs -cat /hdfs/path/file.txt | less
  • 删除HDFS文件/目录hdfs dfs -rm /hdfs/path/file.txt(删除目录加-r参数:hdfs dfs -rm -r /hdfs/path/dir/
  • 创建HDFS目录hdfs dfs -mkdir -p /hdfs/path/newdir/-p参数递归创建父目录)
  • 修改文件权限/所有者hdfs dfs -chmod 755 /hdfs/path/file.txt(权限设置)、hdfs dfs -chown user:group /hdfs/path/file.txt(所有者修改)

6. 可选:挂载HDFS到Linux文件系统
若需将HDFS像本地目录一样访问,可使用fuse-dfs工具(需安装hadoop-fuse包):

sudo fuse-dfs dfs://localhost:9000 /mnt/hdfs -o nonempty

挂载后,可通过/mnt/hdfs路径直接访问HDFS文件(如ls /mnt/hdfs)。

0