hadoop完全分布配置
目录
一、大数据平台的搭建
1. 架构设计
2 服务器集群的搭建
(1)bashrc文件重要性:
编辑
(2)配置HDFS操作系统 (配置hadoop之前先要将hdfs弄好,可以用第9步验证一下)
(3)配置hadoop(本文章重点)
一、大数据平台的搭建
1. 架构设计
本实验采用完全分布式集群架构,由三台 Linux 虚拟机组成大数据实验环境。集群采用主从架构模式,其中 master 节点作为集群主节点,承担 NameNode、ResourceManager、HMaster 等核心服务;slave1 和 slave2 节点作为从节点,承担 DataNode、NodeManager、HRegionServer 等数据存储与计算任务。
(2)服务器节点规划
主机名 IP地址 用户 主要角色 部署服务
master 192.168.1.121 QYX 主节点 NameNode、SecondaryNameNode、ResourceManager、HMaster、Hive、MySQL、Zookeeper(Leader)
slave1 192.168.1.122 QYX 从节点1 DataNode、NodeManager、HRegionServer、Zookeeper(Follower)
slave2 192.168.1.123 QYX 从节点2 DataNode、NodeManager、HRegionServer、Zookeeper(Follower)
2 服务器集群的搭建
(1)bashrc文件重要性:
在master上面创建QYX用户并配置bashrc文件
bashrc文件是全局的文件,不管你之后配置jdk,java,hadoop,hive,hbase,zookeeper等这些都要配置路径在里面,所以之后连接不成功,可能是因为这个里面的路径不正确

在弄之前可以先做ssh免密,比较方便
我的这些关于集群的这些都解压到在/usr/local下面(这样之后创建新用户需要改的配置就不多了)

(2)配置HDFS操作系统 (配置hadoop之前先要将hdfs弄好,可以用第9步验证一下)
弄HDFS顺序:
顺序 步骤 说明
1 配置 core-site.xml 设置 fs.defaultFS(HDFS 入口地址)、hadoop.tmp.dir
2 配置 hdfs-site.xml 设置 dfs.replication(副本数)、dfs.namenode.name.dir、dfs.datanode.data.dir
3 创建本地数据目录 创建 NameNode 和 DataNode 的本地存储目录
4 修改目录所有者 chown -R QYX:QYX 确保 QYX 用户有权限
5 格式化 NameNode hdfs namenode -format -force(只在 master 执行一次)
6 启动 HDFS start-dfs.sh 或 start-all.sh
7 验证 HDFS 进程 jps 查看 NameNode、DataNode、SecondaryNameNode
8 验证 HDFS 状态 hdfs dfsadmin -report
9 验证 HDFS 基本操作 hdfs dfs -ls /、hdfs dfs -mkdir、hdfs dfs -put
(3)配置hadoop(本文章重点)
我的hadoop版本3.4.1
jdk1.8
Hadoop 配置的正确顺序 (步骤前面有“#”的表示下面有图片)
顺序 步骤 说明
1 安装 Hadoop 解压到 /usr/local/hadoop
2 修改安装目录所有者 sudo chown -R QYX:QYX /usr/local/hadoop
(这一步是因为我新创建了用户,但是我的hadoop在/usr/local下面,所以可以通过修改目录所持有者,然后新用户就可以用之前的hadoop了)
#3 配置 ~/.bashrc 设置 HADOOP_HOME、JAVA_HOME、PATH
#4 配置 core-site.xml 设置 fs.defaultFS(master:8020)、hadoop.tmp.dir
#5 配置 hdfs-site.xml 设置 dfs.replication、dfs.namenode.name.dir、dfs.datanode.data.dir
#6 配置 yarn-site.xml 设置 yarn.resourcemanager.hostname(master)
#7 配置 mapred-site.xml 设置 mapreduce.framework.name(yarn)
#8 配置 workers(或 slaves) 写入 slave1、slave2
#9 配置 /etc/hosts 三台机器的 IP 与主机名映射
#10 同步配置到 slave1、slave2 复制 Hadoop 配置文件和 /etc/hosts
#11 格式化 NameNode hdfs namenode -format -force
#12 启动集群 start-all.sh
(如果单独的某个点,比如datanode没有启动成功,可以先将它单独启动一下,先验证hadoop是否可以成功,之后再解决不能自动启动的问题)
#13 验证集群 jps、hdfs dfsadmin -report、hdfs dfs -ls /
Master弄hadoop:
配置 workers 文件:



配置 /etc/hosts



创建文件hadoop_data相关文件:
Master:

Slave1:


Slave2:

配置hdfs-site.xml 中的副本数:

这个注意<value>file:/home/QYX/hadoop_data/hdfs/data</value> 要换成你们自己的,QYX是我的用户名,hadoop_data是我的hadoop存放数据的文件夹,你们要看看你们的是什么


改 core-site.xml: master

1.这个注意<value>/home/QYX/hadoop_data/tmp</value> 要换成你们自己的 QYX是我的用户名,hadoop_data是我的hadoop存放数据的文件夹,你们要看看你们的是什么
2.这里还有一个关键的点就是现在比较新的hadoop的master接口是 8020,不是 9000了,有时候发现用不了hadoop,这个接口错了,也是个比较容易忽略的点,但是又很关键

Slave1上面:

注意:接口是8020 和<value>的地址,改成你们自己的,下面的都是不再复述

Slave2上面:


之后的master,Slave1,slave2都是一样的仅展示master的:
配置 hdfs-site.xml:


配置yarn-site.xml:


配置mapred-site.xml:


查看 hadoop-env.sh 中的 配置内容:JAVA_HOME是一定要配置对的(需要指向你的java根目录)



进行格式化:


启动集群并查看jps:




下面这个很关键,有时候jps没问题,但实际上不能用,是因为hadoop没有真连接成功,可以用下面这个看是否真正的连接成功
hdfs dfsadmin -report
将结果复制给ai,他会告诉你是否真正的连接上了


验证一下hdfs基本操作:

对于配置来说,弄对地址很关键,很关键,很关键,重要的事说三遍
如果你也不了解你的地址,那就问ai你到底想知道什么地址,让ai将查询地址的代码指令给你,然后自己复制粘贴就可以找到了
如果需要hbase,zookeeper,hive等配置的步骤,请看我的其他文章
我的关于完全分布式的文章:
完全分布–配置hadoop:hadoop
完全分布–配置hbase:hbase
完全分布–配置zookeeper:zookeeper
完全分布–配置hive:hive