在 Linux 上完成 HDFS(Hadoop Distributed File System)配置,通常分为 单机伪分布式 和 完全分布式 两种场景。下面以 Hadoop 3.x(如 3.3.x) 为例,说明最常见的 伪分布式配置流程(适合学习和开发),并简要说明完全分布式的区别。
Hadoop 依赖 JDK。
java -version
推荐:
如果没有安装:
sudo yum install java-1.8.0-openjdk-devel # CentOS
sudo apt install openjdk-8-jdk # Ubuntu
设置 JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
建议写入:
~/.bashrc
sudo useradd hadoop
sudo su - hadoop
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 /usr/local/hadoop
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
以下配置文件位于:
$HADOOP_HOME/etc/hadoop/
hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
core-site.xml<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value>
</property>
</configuration>
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
测试:
ssh localhost
hdfs namenode -format
start-dfs.sh
查看进程:
jps
应看到:
浏览器访问:
http://localhost:9870
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
hdfs dfs -ls /test
与伪分布式不同点:
core-site.xml:NameNode 主机名hdfs-site.xml:副本数 ≥ 3workers(Hadoop 3):node1
node2
node3
JAVA_HOME$HADOOP_LOG_DIR/hadoop-*-namenode-*.log
netstat -tunlp | grep 9000
chown -R hadoop:hadoop /usr/local/hadoop
| 文件 | 作用 |
|---|---|
| hadoop-env.sh | Java 环境 |
| core-site.xml | 默认文件系统 |
| hdfs-site.xml | HDFS 参数 |
| workers | DataNode 列表 |
如果你需要:
可以直接告诉我你的使用场景。