目录
1. 安装依赖
sudo yum install -y epel-release
sudo yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git
2. 修改主机名称(可选)
修改主机名称是为了方便让我们在命令行工具中快速判断当前是哪一台机器
sudo hostnamectl --static set-hostname 主机名称
3. 配置hosts(主机名称映射)
参考:https://blog.csdn.net/mengxianglong123/article/details/118887693?spm=1001.2014.3001.5501
4. 配置SSH免密登录
参考:https://blog.csdn.net/mengxianglong123/article/details/118887721?spm=1001.2014.3001.5501
5. 安装配置JDK
不再详细介绍,只给出关键步骤
- 下载压缩包并在指定目录下解压(建议解压在
/opt/module
目录下,方便配置) - 配置环境变量
vim /etc/profile
添加
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
令其生效
source /etc/profile
注意:不建议使用
yum
方式安装,因为Hadoop
需要在环境变量中去寻找JAVA_HOME
变量
6. Hadoop安装配置
6.1 下载Hadoop
下载地址:https://archive.apache.org/dist/hadoop/common/
选择所需版本下载即可
6.2 解压到指定目录
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
6.3 配置环境变量
vim /etc/profile
添加
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
令其生效
source /etc/profile
6.4 测试配置是否成功
hadoop version
出现
Hadoop 3.1.3
6.5 重启(如果Hadoop命令不能用再重启)
[atguigu@ hadoop101 hadoop-3.1.3]$ sync
[atguigu@ hadoop101 hadoop-3.1.3]$ sudo reboot
7. Hadoop集群配置
7.1 配置同步
在集群配置过程中,我们只需要在一台服务器上修改配置文件即可,然后通过同步工具将修改的配置文件同步到其他服务器上
详情参考:https://blog.csdn.net/mengxianglong123/article/details/118888070?spm=1001.2014.3001.5501
7.2 集群部署规划
注意:
NameNode
和SecondaryNameNode
不要安装在同一台服务器ResourceManager
也很消耗内存,不要和NameNode
、SecondaryNameNode
配置在同一台机器上。- Hadoop的组成详解:https://blog.csdn.net/mengxianglong123/article/details/118436351?spm=1001.2014.3001.5501
名称 | hadoop101 | hadoop102 | hadoop103 |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
7.3 修改配置文件(在Hadoop的etc/hadoop
目录下)
- 核心配置文件
vim core-site.xml
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:8020</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.4/data</value>
</property>
</configuration>
- HDFS配置文件
vim hdfs-site.xml
<configuration>
<!-- 指定Hadoop辅助名称节点(2NN)主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop103:9868</value>
</property>
</configuration>
- YARN配置文件
vim yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop102</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>
- MapReduce配置文件
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 分发配置文件
xsync /opt/module/hadoop-3.1.3/etc/hadoop/
xsync
为自定义脚本,详情参考上文
8. 群起集群
8.1 配置workers
vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
添加
hadoop101
hadoop102
hadoop103
同步
xsync /opt/module/hadoop-3.1.3/etc
8.2 启动
- 格式化
如果集群是第一次启动,需要在
hadoop101
节点格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
hdfs namenode -format
- 启动HDFS
sbin/start-dfs.sh
- 在配置了
ResourceManager
的节点(hadoop102
)启动YARN
sbin/start-yarn.sh
检查启动后状态
jps
在WebUI界面查看,地址为http://hadoop101:9870/
(要想通过域名访问,需要在Win10配置hosts,也可以直接通过IP访问)
9. 集群启动/停止方式总结
9.1 各个服务组件逐一启动/停止
(1)分别启动/停止HDFS组件
hdfs --daemon start/stop namenode/datanode/secondarynamenode
(2)启动/停止YARN
yarn --daemon start/stop resourcemanager/nodemanager
9.2 各个模块分开启动/停止(配置ssh是前提)常用
(1)整体启动/停止HDFS
start-dfs.sh/stop-dfs.sh
(2)整体启动/停止YARN
start-yarn.sh/stop-yarn.sh
10. 问题总结
- 启动hadoop,报错Error JAVA_HOME is not set and could not be found:https://blog.csdn.net/chun19920827/article/details/74924434
- Attempting to operate on hdfs namenode as root:https://blog.csdn.net/chun19920827/article/details/74924434
- there is no HDFS_NAMENODE_USER defined:https://blog.csdn.net/qq_44172732/article/details/104468784