安装 HDFS
在本指南中,我将在 3 台机器上设置 HDFS,其中 1 台机器用于 namenode,其他 2 台机器用于 datanode。我参考了以下官方文档SingleCluster和ClusterSetup。我将安装 HDFS 版本 3.3.4,因此我需要 Java-8,因为这是推荐的 Java 版本。
首先,在 3 台机器上安装 Java。有很多安装 Java 的方法,但我将使用以下两个命令进行安装:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
接下来,我们需要下载一个 Hadoop 发行版,解压缩并进入该目录
$ curl -L -o hadoop-3.3.4.tar.gz https://dlcdn.apache.org/hadoop/common/stable/hadoop-3.3.4.tar.gz
$ tar xvf hadoop-3.3.4.tar.gz
$ ls
hadoop-3.3.4 hadoop-3.3.4.tar.gz
$ cd hadoop-3.3.4
然后,在该目录中,我们编辑文件etc/hadoop/hadoop-env.sh
以设置适当的环境。我需要取消注释并修改下面的行以设置一些变量。
export JAVA_HOME=/usr/lib/jvm/java-8-byteopenjdk-amd64
export HADOOP_HOME=/<your_directory>/hdfs/hadoop-3.3.4
export HADOOP_LOG_DIR=/<your_directory>/hdfs/logs
接下来,使用以下内容编辑文件etc/hadoop/core-site.xml
。请注意,“value”标签将是您的 namenode 地址的值
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://<your_name_node_ip_address>:12000</value>
</property>
</configuration>
现在我们已经完成了所有三台机器的通用设置。从现在开始,namenode 和 datanode 的设置是不同的。
在我们想要安装 namenode 的节点中,我们创建一个包含 datanode 列表的文件。例如,在我的情况下,我创建了datanodes_list.txt
,其内容如下
$ cat /root/user_xyz/hdfs/datanodes_list.txt
<datanode_1_address>
<datanode_2_address>
然后创建一个目录以存储 namenode 运行时数据
mkdir -p /<your_directory>/hdfs/root_data_path_for_namenode
接下来,使用以下内容编辑文件etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///<your_directory>/hdfs/root_data_path_for_namenode</value>
</property>
<property>
<name>dfs.hosts</name>
<value>/<your_directory>/hdfs/datanodes_list.txt</value>
</property>
</configuration>
这就是关于 namenode 的全部内容。现在对于那两个需要部署数据节点的节点,创建一个目录来存储数据节点的运行时数据。
mkdir -p /root/user_xyz/hdfs/root_data_path_for_datanode
接下来编辑文件etc/hadoop/hdfs-site.xml
,内容如下
<configuration>
<property>
<name>dfs.data.dir</name>
<value>file:///<your_directory>/hdfs/root_data_path_for_datanode</value>
</property>
</configuration>
我们已经完成了配置,现在转到 namenode 机器,进入 hadoop 目录 格式化文件系统并使用以下命令启动 namenode
bin/hdfs namenode -format
bin/hdfs --daemon start namenode
然后进入另外两个数据节点机器,进入 hadoop 目录并使用以下命令启动数据节点
bin/hdfs --daemon start datanode
我们已经完成了 HDFS 的设置。现在我们将必须创建一个目录来存储数据。 因此,进入 namenode 机器,在 hadoop 目录中执行以下命令
bin/hdfs dfs -mkdir -p /user/clickhouse/
bin/hdfs dfs -chown clickhouse /user/clickhouse
bin/hdfs dfs -chmod -R 775 /user/clickhouse