Hadoop 集群环境搭建
复制和安装 hadoop
- 将本地
hadoop-3.3.6.tar.gz
复制进master
容器中root
目录中
1
| docker cp /path/to/hadoop-3.3.6.tar.gz master:/root
|
- 将
hadoop-3.3.6.tar.gz
解压进/opt/module
目录下
1
| tar zxvf /root/hadoop-3.3.6.tar.gz -C /opt/module/
|
- 将解压后的目录改名为
hadoop
1
| mv /opt/module/hadoop-3.3.6 /opt/module/hadoop
|
- 创建存储
tmp
namenode
datanode
数据的目录
1
| mkdir -p /opt/module/hadoop/tmp /opt/module/hadoop/dfs/{name,data}
|
配置 hadoop
hadoop
的配置文件都存放在${HADOOP_HOME}/etc/hadoop
中
1
| cd /opt/module/hadoop/etc/hadoop/
|
- 在
hadoop-env.sh
第一行添加以下内容
- 该文件类似 bashrc、profile,用于配置 Hadoop 的环境变量的
1 2 3 4 5 6
| export JAVA_HOME=/opt/module/jdk export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_NODEMANAGER_USER=root export YARN_RESOURCEMANAGER_USER=root
|
- 指定
JAVA_HOME
路径
- 指定
HDFS_NAMENODE_USER
服务的用户为root
- 指定
HDFS_DATANODE_USER
服务的用户为root
- 指定
HDFS_SECONDARYNAMENODE_USER
服务的用户为root
- 指定
YARN_NODEMANAGER_USER
服务的用户为root
- 指定
YARN_RESOURCEMANAGER_USER
服务的用户为root
- 配置
core-site.xml
- 该文件是 Hadoop 的核心配置文件,其目的是配置 HDFS 地址、端口号,以及临时文件目录
1 2 3 4 5 6 7 8 9 10
| <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop/tmp</value> </property> </configuration>
|
fs.defaultFS
: 文件系统的默认 URI 地址
hadoop.tmp.dir
: 确定临时文件的存储路径
- 配置
hdfs-site.xml
- 该文件用于设置 HDFS 的 NameNode 和 DataNode 两大进程。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/module/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/module/hadoop/dfs/data</value> </property> </configuration>
|
dfs.replication
: 创建文件时指定实际的复制数
dfs.namenode.name.dir
: 确定 namenode 在本地文件系统上存储位置
dfs.datanode.data.dir
: 确定 datanode 在本地文件系统上存储位置
- 配置
mapred-site.xml
- 该文件是 MapReduce 的核心配置文件,用于指定 MapReduce 运行时框架。
1 2 3 4 5 6
| <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
|
mapreduce.framework.name
: 用于执行 MapReduce 作业的运行时框架。可以是local
classic
或yarn
。
- 配置
yarn-site.xml
- 本文件是 Yarn 框架的核心配置文件,配置 ResourceManager 和 NodeManager。
1 2 3 4 5 6 7 8 9 10
| <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
|
yarn.resourcemanager.hostname
: resourcemanager 的主机名
yarn.nodemanager.aux-services
: NodeManager 上运行的附属服务。需配置成 mapreduce_shuffle,才可运行 MapReduce 程序
- 配置
workers
分发文件
- 分发
hadoop
到slave1
slave2
1 2
| scp -r /opt/module/hadoop/ slave1:/opt/module/ scp -r /opt/module/hadoop/ slave2:/opt/module/
|
启动群集
- 在
master
容器中格式化namenode
(仅需执行一次)
1
| /opt/module/hadoop/bin/hdfs namenode -format
|
1
| /opt/module/hadoop/sbin/start-dfs.sh
|
1
| /opt/module/hadoop/sbin/start-yarn.sh
|
测试集群
- 查看
HDFS
的根目录
- 输入
hdfs dfs -ls /
指令来查看根目录,一般来说都是空的
1
| /opt/module/hadoop/bin/hdfs dfs -ls /
|
- 使用
jps
命令查看hadoop
进程:
1 2 3 4 5 6
| 6257 SecondaryNameNode 6549 ResourceManager 5990 DataNode 7641 Jps 6718 NodeManager 5823 NameNode
|
1 2 3
| 165 DataNode 441 Jps 271 NodeManager
|
1 2 3
| 247 NodeManager 397 Jps 141 DataNode
|
参考文章
Hadoop Cluster Setup
Hadoop YARN 配置参数剖析
Hadoop 学习(二) Hadoop 配置文件参数详解
【Hadoop】集群配置之主要配置文件(hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml…)