搭建所用Hadoop java版本

hadoop-3.1.3.tar.gz

jdk-8u212-linux-x64.tar.gz

安装包链接:Hadoop及jdk安装包提取码:icn6

首先,我们先下载并且安装好虚拟机准备好三台机器

主机名 ip地址
master 192.168.45.110
salve1 192.168.45.111
salve2 192.168.45.112

集群按以下要求修改相应配置文件

master salve1 salve2
HDFS
NameNode

DataNode

DataNode
SecondNameNode

DataNode

YARN NodeManager
ResourceManger

NodeManager

NodeManger
#1、安装网络调试工具

yum install vim -y

yum install wget -y

yum install net-tools -y

#2、设置开机禁用防火墙

systemctl stop firewalld

systemctl disable firewalld

#3、分别修改主机名称

vim /etc/hostname

#主机1:master

#主机2:salve1

#主机3:salve2

#4、修改域名映射

vim /etc/hosts

192.168.45.110 haster

192.168.45.111 salve1

192.168.45.112 salve2

#5、创建student用户

useradd stu

passwd stu 密码设置为123456

为用户stu添加sudo权限

vim /etc/sudoers

在# %wheel ALL=(ALL) NOPASSWD: ALL下面添加

stu ALL=(ALL) NOPASSWD:ALL

#6、创建文件夹用来放置我们的安装包

cd /opt

mkdir module/ software/

ls一下查看创建是否成功

我们将hadoop-3.1.3.tar.gz jdk-8u212-linux-x64.tar.gz安装包上传至/opt/software目录

接下来解压hadoop以及java安装包至module下

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module

#7,添加java,Hadoop环境变量

cd /etc/profile.d

vim my_env.sh //创建java环境变量

#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile //重新加载profile 使配置生效

java -version // 查看java验证环境变量是否正确

同样在my_env.sh中添加hadoop环境变量

#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 //重新加载profile 使配置生效

hadoop version //验证环境变量是否正确

chown -R stu:stu /opt //给stu用户增加权限

切换至stu用户

su stu

#验证

echo $JAVA_HOME

echo $HADOOP_HOME

#8设置ssh免密登录

cd ~
mkdir .ssh # 创建ssh目录
chmod 700 .ssh # 设置ssh目录权限

# stu账号,非root账号
cd .ssh
ssh-keygen -t rsa # 生成rsa公钥和私钥
ssh-copy-id master
ssh-copy-id salve1
ssh-copy-id salve2

//互相验证一下是否配置成功

#9,hadoop配置文件

##使用stu用户登录

##配置dfs与yarn

## 修改配置文件

cd $HADOOP_HOME/etc/hadoop

# 核心配置文件,指定NameNode的地址、指定hadoop数据的存储目录、配置HDFS网页登录使用的静态用户

vim core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
</configuration>
# yarn配置文件,

vim yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>salve1</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>

<!-- 开启日志聚集功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://master:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为 7 天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>

#配置MapReduce配置文件

vim mapred-site.xml

<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>salve1:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>salve1:19888</value>
</property>

# HDFS配置文件,指定NodeNode的http访问端口与SecondaryNameNode的http访问端口

vim hdfs-site.xml

<configuration>
<!-- NameNode web端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>

<!-- SecondaryNameNode web端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>salve2:9868</value>
</property>
</configuration>
# 编辑workers文件

vim workers

master
salve1
salve2
到此我们的master主机已经配置完成。

#10,接下来我们写几个搭配集群的脚本

##创建xsync集群同步脚本、myhadoop.sh启动脚本、jpsall查看脚本(放到usr/local/bin目录下)

#xsync集群同步脚本

cd /usr/local/bin

sudo vim xsync

#!/bin/bash

if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi

for host in master salve1 salve2
do
echo =================== $host =======================


for file in $@
do
if [ -e $file ]
then
pdir=$(cd -P $(dirname $file);pwd)

fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exist!
fi
done
done

#集群启动/结束脚本

sudo vim myhadoop.sh

#!/bin/bash

if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi

case $1 in
"start")
echo " =================== 启动 hadoop 集群 ==================="

echo " --------------- 启动 hdfs "
ssh master "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn "
ssh salve1 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver "
ssh master "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop 集群 ==================="

echo " --------------- 关闭 historyserver "
ssh master "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn "
ssh salve1 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs "
ssh master "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error. "
;;
esac

#查看所有节点脚本

sudo vim jpsall

#!/bin/bash

for host in master salve1 salve2
do
echo =============== $host ===============
ssh $host jps
done
#到此脚本配置结束 。接下来我们利用xsync同步脚本 将master主机中所有的配置以及文件传至salve1 salve2

xsync ./ # 集群配置文件同步 (根目录下所有文件)

静等完成。然后我们查看下salve1 salve2 是否同步成功 先看下/optm目录下存放的jdk以及hadoop文件是否存在,在看下java版本和hadoop版本。然后hadoop的配置文件依次都查看下。

在salve1以及salve2分别都查看下

java -version

我的显示不存在 这里我们去看一下java的环境变量是否配置

cd /etc/profile.d/

vim my_env.sh

发现没有配置java,Hadoop环境变量,添加路径

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
source my_env.sh

再来查看下是否成功

所有配置都要检查一下 以防出现同步未及时。

接下来我们可以启动我们的集群了。

#11,集群启动~~~~~

# master上面操作

hdfs namenode -format # HDFS格式化

myhadoop.sh start 然后jpsall一下

显然我们所有节点都已经提起来了。接下来打开浏览器输入自己的master主机IP后面加上:9870来验证一下是否搭建成功

————————————————
版权声明:本文为CSDN博主「^_^嘤嘤嘤^_^」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_67460232/article/details/123858630

搜索

复制

最新文章

  1. 日文xp系统中 日文键盘模式转英式键盘模式
  2. TextWatcher 编辑框监听器
  3. python 函数式编程工具
  4. 【Networking】Thrift and gRPC
  5. lucene索引文件格式
  6. “System.Threading.ThreadAbortException”类型的第一次机会异常在 mscorlib.dll 中发
  7. Delphi String 与wideString 的完美转换
  8. Linux学习之find命令
  9. 【一天一道LeetCode】#4 Median of Two Sorted Arrays
  10. vue iview UPload,但文件上传是,clearFiles的使用方法
  11. Spring 简单使用IoC与DI——XML配置
  12. TCP之种种连接异常
  13. Python虚拟环境工具-Virtualenv 介绍及部署记录
  14. 浏览器被hao123,hao524劫持的解决办法
  15. cuda并行编程之求解ConjugateGradient(共轭梯度迭代)丢失dll解决方式
  16. Django 发送html邮件
  17. easyui上次图片
  18. [ Openstack ] Openstack-Mitaka 高可用之 Dashboard
  19. ubuntu、linux更换pip源
  20. python基础16 ----面向对象程序设计二

热门文章

  1. 微信小程序分包
  2. MongoDB和Elasticsearch的各使用场景对比
  3. 一份随笔让你了解这个基于Raspberry Pi / 树莓派而设计的工业计算机
  4. JZOJ 2114. 【GDKOI2011】反恐任务
  5. C语言使用fopen出现C4996错误解决方法
  6. 深入解读.NET MAUI音乐播放器项目(三):界面交互
  7. 苹果iPhone 日历查询功能异常
  8. .Babylon格式的模型转化为glb模型,并使用ThreeJS加载显示
  9. 【FPGA学习】MATLAB与FPGA实现FIR滤波器
  10. Spring Security 5 ----默认的filter都有什么用?