hadoop部署


准备

下载安装包

https://hadoop.apache.org/

解压安装包

1
tar -zxvf hadoop-x.x.x.tar.gz

配置

配置HDFS

创建目录

创建目录用于存储namenode和datanode的数据文件

1
2
3
mkdir -p /usr/local/hadoop_tmp/hdfs/namenode
mkdir -p /usr/local/hadoop_tmp/hdfs/datanode

配置目录

打开etc/hadoop/hdfs-site.xml,添加以下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop_tmp/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop_tmp/hdfs/datanode</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
  • dfs.namenode.name.dir指定nameNode的数据文件存储目录
  • dfs.datanode.name.dir指定dataNode的数据文件存储目录
  • dfs.replication指定数据副本数量

配置YARN

配置

打开etc/hadoop/yarn-site.xml文件,添加以下配置

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
  • yarn.nodemanager.aux-services 参数的值设置为 mapreduce_shuffle,以确保 MapReduce 应用程序可以正常运行。
  • yarn.nodemanager.env-whitelist 参数用于控制在 YARN 容器中可以覆盖的环境变量白名单

运行

格式化Hadoop目录

1
bin/hadoop namenode -format
  • 执行此命令后,NameNode将被格式化,并创建一个新的FsImage文件。之后,你可以重新启动NameNode和整个HDFS集群。

运行HDFS

1
sbin/start-dfs.sh

运行YARN

1
sbin/start-yarn.sh

操作

创建目录

1
hadoop fs -mkdir /temp

上传文件

1
hadoop fs -put /Users/chenlong/test.json /temp

查询目录

1
hadoop fs -ls /temp

下载文件

1
hadoop fs -get /temp/test.json /Users/chenlong

备注

NameNode

Hadoop的NameNode是HDFS的master节点,负责管理整个集群的元数据和集群管理功能。它维护了一个树形的目录结构,记录了文件和目录的层次关系,方便用户组织和管理大规模的数据集。NameNode还负责管理数据块,保存所有数据块的元数据,用于block管理,维护BlocksMap和接收来自DataNode的块汇报等。此外,它还负责管理DataNode,包含了decommission和activities的节点,用于接收DataNode注册,心跳等。NameNode还负责管理文件的租约,缓存管理器处理DataNode上的缓存。

DataNode

Hadoop的DataNode是HDFS的slave节点,负责存储实际的数据块并提供存储功能。它执行实际的数据读写操作,创建和删除数据块,并在集群中复制数据。DataNode还定期发送块报告和心跳,以保持与NameNode的联系。

dfs.replication

dfs.replication是Hadoop分布式文件系统(HDFS)中的一个重要参数,它代表了每个数据块的备份数量,也就是冗余系数。

在HDFS中,dfs.replication的值决定了数据块的冗余程度,也就是数据在集群中的副本数量。如果该值为3,那么每个数据块会有3个副本,分布在不同的DataNode上。这意味着即使部分DataNode发生故障,也可以从其他DataNode上获取到数据。


linux系统安装Chrome用于Selenium Next →