下面按**“Linux 上安装并配置 HDFS,并让客户端/应用集成使用”**的思路,给你一个清晰、可落地的说明。
HDFS 由两类核心角色组成:
单机也可伪分布式运行(开发/测试常用)。
java -version
ssh localhost
生成 SSH key(如未配置):
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
etc/hadoop/hadoop-env.shexport JAVA_HOME=/usr/java/jdk1.8.0_xxx
etc/hadoop/core-site.xml<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/datanode</value>
</property>
</configuration>
hdfs namenode -format
start-dfs.sh
jps
应看到:
Web UI:
http://localhost:9870
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
hdfs dfs -ls /test
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.3.6</version>
</dependency>
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000");
FileSystem fs = FileSystem.get(conf);
hadoop-clientfs.defaultFSFileSystemyum install hadoop-hdfs-fuse
hadoop-fuse-dfs dfs://localhost:9000 /mnt/hdfs
| 场景 | 集成方式 |
|---|---|
| 日志存储 | Flume / Logstash → HDFS |
| 大数据计算 | Spark / MapReduce |
| 数据仓库 | Hive on HDFS |
| 文件共享 | HDFS + NFS Gateway |
hdfs dfs -chmoddata.dir 权限如果你愿意,我可以:
你现在是 学习 / 开发 / 生产 场景?