Hadoop集群搭建笔记
环境:window11家庭中文版 23H2
VMware16.1.2
镜像:CentOS-7-x86_64-DVD-2009.iso
jdk:jdk-8u202-linux-x64.tar.gz
hadoop:hadoop-3.3.5.tar.gz
集群分布
主机 | 角色 |
---|---|
node1(192.168.100.100) | NN DN RM NM |
node2(192.168.100.101) | SNN DN NM |
node3(192.168.100.102) | DN NM |
/export/servers 存放软件
/export/software 存放安装包
/export/data 存放数据
1.创建玩node1,完整复制2个后改IP和名字。
主机名修改:
vi /etc/hostname
vi /etc/hosts
2.修改IP
vi /etc/sysconfig/network-scripts/ifcfg-ens33
把IP改一下就行其他别动。
3.关防火墙和SSH免密
关闭防火墙
#关闭防火墙
systemctl stop firewalld.service
#关闭开机自启
systemctl disable firewalld.service
#查看防火墙状态
firewall-cmd --state
SSH免密
#node1生成公钥私钥 (一路回车)
ssh-keygen -t rsa
#node1配置免密登录到node1 node2 node3
cd /root/.ssh
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
时间同步
ntpdate ntp5.aliyun.com
4.安装JDK
/export/servers 存放软件
/export/software 存放安装包
/export/data 存放数据
创建目录
mkdir -p /export/servers
mkdir -p /export/software
mkdir -p /export/data
传送JDK和Hadoop安装包到software
解压JDK
tar -zxvf jdk-8u202-linux-x64.tar.gz -C /export/servers/
配置环境变量
#/etc/profile 存放环境变量
vi /etc/profile
#添加
export JAVA_HOME=/export/servers/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#重现加载环境变量
source /etc/profile
#查看JDK
java -version
分发JDK和环境变量
#分发JDK
scp -r /export/servers/jdk1.8.0_202 root@node2:/export/servers/
scp -r /export/servers/jdk1.8.0_202 root@node3:/export/servers/
#分发环境变量
scp -r /etc/profile root@node2:/etc
scp -r /etc/profile root@node3:/etc
#重现加载环境变量
source /etc/profile
#查看JDK
java -version
5.安装Hadoop
解压Hadoop
tar -zxvf /export/software/hadoop-3.3.5.tar.gz -C /export/servers/
配置系统变量
vi /etc/profile
#添加以下代码
export HADOOP_HOME=/export/servers/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#重启变量
source /etc/profile
#查看版本
hadoop version
重点:修改配置文件
1.配置Hadoop运行环境:修改:/export/servers/hadoop-3.3.5/etc/hadoop/hadoop-env.sh
cd /export/servers/hadoop-3.3.5/etc/hadoop/
vi hadoop-env.sh
#添加以下代码
export JAVA_HOME=/export/servers/jdk1.8.0_202
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
2.配置Hadoop:修改:/export/servers/hadoop-3.3.5/etc/hadoop/core-site.xml
vi core-site.xml
#添加到<configuration>
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property><name>fs.defaultFS</name><value>hdfs://node1:8020</value>
</property><!-- 设置Hadoop本地保存数据路径 -->
<property><name>hadoop.tmp.dir</name><value>/export/data/hadoop-3.3.5</value>
</property><!-- 设置HDFS web UI用户身份 -->
<property><name>hadoop.http.staticuser.user</name><value>root</value>
</property><!-- 整合hive 用户代理设置 -->
<property><name>hadoop.proxyuser.root.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.root.groups</name><value>*</value>
</property><!-- 文件系统垃圾桶保存时间 -->
<property><name>fs.trash.interval</name><value>1440</value>
</property>
3.配置HDFS:修改:/export/servers/hadoop-3.3.5/etc/hadoop/hdfs-site.xml
vi hdfs-site.xml
#添加到<configuration>
<!-- 设置HDFS的副本为2 -->
<property><name>dfs.replication</name><value>2</value>
</property>
<!-- 设置SNN进程运行机器位置信息 -->
<property><name>dfs.namenode.secondary.http-address</name><value>node2:9868</value>
</property>
4.配置MapReduce:修改:/export/servers/hadoop-3.3.5/etc/hadoop/mapred-site.xml
vi mapred-site.xml
#添加到<configuration>
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property><!-- MR程序历史服务地址 -->
<property><name>mapreduce.jobhistory.address</name><value>node1:10020</value>
</property><!-- MR程序历史服务器web端地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value>
</property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
5.配置YARN:修改:/export/servers/hadoop-3.3.5/etc/hadoop/yarn-site.xml
vi yarn-site.xml
#添加到<configuration>
<!-- 设置YARN集群主角色运行机器位置 -->
<property><name>yarn.resourcemanager.hostname</name><value>node1</value>
</property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property><!-- 是否将对容器实施物理内存限制 -->
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property><!-- 是否将对容器实施虚拟内存限制。 -->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property><!-- 开启日志聚集 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property><!-- 设置yarn历史服务器地址 -->
<property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value>
</property><!-- 历史日志保存的时间 7天 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>
6.配置Hadoop的从节点:修改:/export/servers/hadoop-3.3.5/etc/hadoop/workers
vi workers
#删除完,改为:
node1
node2
node3
7.分发Hadoop
scp -r /export/servers/hadoop-3.3.5 root@node2:/export/servers/
scp -r /export/servers/hadoop-3.3.5 root@node3:/export/servers/
8.分发环境变量:
scp -r /etc/profile root@node2:/etc
scp -r /etc/profile root@node3:/etc
#重现加载环境变量
source /etc/profile
6.格式HDFS
1.只格式一次,不然前功尽弃
2.在node1格式,不然前功尽弃
3.建议打快照。
hdfs namenode -format
发现这个就成功了
7.基础命令
#HDFS集群start-dfs.sh stop-dfs.sh #YARN集群start-yarn.shstop-yarn.sh#Hadoop集群start-all.shstop-all.sh
#查看进程
jps
Hadoop启动日志路径:/export/server/hadoop-3.3.0/logs/