hadoop虚拟机环境搭建
安装yum后:
见:https://www.bilibili.com/video/BV1MzeJemEJU/?spm_id_from=333.880.my_history.page.click
yum不行后
yum install -y epel-release
yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git
关防火墙:
systemctl stop firewalld
ystemctl disable firewalld
配置hosts:
vim /etc/hosts:
本机地址:
"C:\Windows\System32\drivers\etc\hosts"
新建用户atyan:
useradd atyan
passwd atyan
修改atyan权限:
vim /etc/sudoers
atyan ALL=(ALL) NOPASSWD:ALL
创建修改目录
cd /opt
mkdir module
mkdir software
chown atyan:atyan module/ softwate
2、 clone 101
修改
hostname和ip地址
vim /etc/hostname
vi /etc/sysconfig/network-scripts/ifcfg-ens33
下载hadoop jdk到 opt/software
解压到/opt/module/
tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.4.0.tar.gz -C ../module
修改环境变量
新建my_env.sh
vim /etc/profile.d/my_env.sh
运行模式:
本地模式:
** 完全分布式**
准备:
1、修改ip 主机名
2、将jdk和 hadoop分发各主机
scp -r ./* atyan@hadoop104:/opt/module
自动分发脚本:
#!/bin/bash
#
if [ $# -lt 1 ]
then
echo "传入文件为空"
exit
fi
#遍历集群中得机器分发内容
for host in hadoop103 hadoop104
do
# 依次分发内容
for file in $@
do
# 判断当前文件是否存在
# 文件存在时
if [ -e $file ]
then
#1. 获取当前文件的目录结构
pdir=$(cd -P $(dirname $file);pwd)
#2. 获取当前的文件名
fname=$(basename $file)
#3. 登陆目标服务器,创建统一的目录结构
ssh $host "mkdir -p $pdir"
# 4. 依次把要分发的文件或目录进行分发
rsync -av $pdir/$fname $host:$pdir
else
# 文件不存在时
echo "$file 不存在"
exit
fi
done
done
完全分布式搭建
配置文件
core-site.xml
> <configuration>
> <!--指定namenode的地址-->
> <property>
> <name>fs.defaultFS</name>
> <value>hdfs://hadoop102:9820</value>
> </property>
> <!--用来指定使用hadoop时产生文件的存放目录-->
> <property>
> <name>hadoop.tmp.dir</name>
> <value>/opt/module/hadoop-3.4.0/data</value>
> </property>
> <!-- 配置HDFS网站登录使用的静态用户为atyan -->
> <property>
> <name>hadoop.http.staticuser.user</name>
> <value>atyan</value>
> </property>
> <!-- 配置该atyan(SuperUser)允许通过代理访问的主机节点 -->
> <property>
> <name>hadoop.proxyuser.atyan.hosts</name>
> <value>*</value>
> </property>
> <!--配置该atyan(SuperUser)允许通过该代理的用户所属组-->
> <property>
> <name>hadoop.proxyuser.atyan.groups</name>
> <value>*</value>
> </property>
> <!--配置该atyan(SuperUser)允许通过该代理的用户所属组-->
> <property>
> <name>hadoop.proxyuser.atyan.groups</name>
> <value>*</value>
> </property>
> </configuration>
hdfs-site.xml
<configuration>
<!--指定nn web访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!--指定2nn中 web访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>
yarn-site.xml配置文件
<!-- Site specific YARN configuration properties -->
<!--nomenodeManager获取数据的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定Yarn的老大(ResourceManager)的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</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>
<!-- Yarn允许的最大最小内存 -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
<!-- yarn允许管理的的内存大小 -->
<property>
<name>yarn.scheduler.resource.memory-mb</name>
<value>4096</value>
</property>
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
mapred
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
分发文件
myrsync.sh ./*
启动集群
关闭集群
102 namenode
首先进行格式化
hdfs namenode -format
单点启动
hdfs --daemon start namenode
三台机器都启动datanode
hdfs --daemon start datanode
启动2nn(在104机器)
hdfs --daemon start secondarynamenode
103机器
yarn --daemon start resourcemanager
本文来自博客园,作者:{yisone},转载请注明原文链接:https://www.cnblogs.com/yisone/p/18407299
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步