大二暑期第六周

这周复习hadoop相关内容

配置

安装包、源码包下载地址

https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/

为什么要重新编译Hadoop源码?

匹配不同操作系统本地库环境,Hadoop某些操作比如压缩、IO需要调用系统本地库(*.so|*.dll)

修改源码、重构源码

如何编译Hadoop

源码包根目录下文件:BUILDING.txt

角色规划的准则

根据软件工作特性和服务器硬件资源情况合理分配

比如依赖内存工作的NameNode是不是部署在大内存机器上?

角色规划注意事项

资源上有抢夺冲突的,尽量不要部署在一起

工作上需要互相配合的。尽量部署在一起

主机名(3台机器)

vim /etc/hostname
Hosts映射(3台机器)

vim /etc/hosts
防火墙关闭(3台机器)

systemctl stop firewalld.service #关闭防火墙

systemctl disable firewalld.service #禁止防火墙开启自启

ssh免密登录(node1执行->node1|node2|node3)

ssh-keygen #4个回车 生成公钥、私钥

ssh-copy-id node1、ssh-copy-id node2、ssh-copy-id node3 #

集群时间同步(3台机器)

yum -y install ntpdate

ntpdate ntp4.aliyun.com

Step2:服务器基础环境准备

创建统一工作目录(3台机器)

mkdir -p /export/server/ #软件安装路径

mkdir -p /export/data/ #数据存储路径

mkdir -p /export/software/ #安装包存放路径

JDK 1.8安装(3台机器)

上传、解压Hadoop安装包(node1

官网文档:https://hadoop.apache.org/docs/r3.3.0/

第一类1个:hadoop-env.sh

第二类4个:xxxx-site.xml ,site表示的是用户定义的配置,会覆盖default中的默认配置。

core-site.xml 核心模块配置

hdfs-site.xml hdfs文件系统模块配置

mapred-site.xml MapReduce模块配置

yarn-site.xml yarn模块配置

第三类1个:workers

所有的配置文件目录:/export/server/hadoop-3.3.0/etc/hadoop

export JAVA_HOME=/export/server/jdk1.8.0_241
#文件最后添加

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

<!-- 设置默认使用的文件系统 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.0</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>

<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property

<!-- 设置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>
<!-- 历史服务器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>

<!-- 设置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>

node1.itcast.cn
node2.itcast.cn
node3.itcast.cn

cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD

在node1上配置Hadoop环境变量

vim /etc/profile
export HADOOP_HOME=/export/server/hadoop-3.3.0

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

将修改后的环境变量同步其他机器

scp /etc/profile root@node2:/etc/

scp /etc/profile root@node3:/etc/

重新加载环境变量 验证是否生效(3台机器)

source /etc/profile
hadoop #验证环境变量是否生效
首次启动HDFS时,必须对其进行格式化操作。
format本质上是初始化工作,进行HDFS清理和准备工作
命令:
hdfs namenode -format

1. 首次启动之前需要format操作;

2. format只能进行一次 后续不再需要;

3. 如果多次format除了造成数据丢失外,还会导致

hdfs集群主从角色之间互不识别。通过删除所有机

器hadoop.tmp.dir目录重新format解决

每台机器上每次手动启动关闭一个角色进程,可以精准控制每个进程启停,避免群起群停。

HDFS集群
#hadoop2.x版本命令
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
#hadoop3.x版本命令
hdfs --daemon start|stop namenode|datanode|secondarynamenode
YARN集群
#hadoop2.x版本命令
yarn-daemon.sh start|stop resourcemanager|nodemanager
#hadoop3.x版本命令
yarn --daemon start|stop resourcemanager|nodemanag

在node1上,使用软件自带的shell脚本一键启动。前提:配置好机器之间的SSH免密登录和workers文件。
HDFS集群
start-dfs.sh
stop-dfs.sh
YARN集群
start-yarn.sh
stop-yarn.sh
Hadoop集群
start-all.sh
stop-all.sh

posted @ 2023-08-19 11:05  摆烂达人  阅读(6)  评论(0编辑  收藏  举报