hadoop 3.1.3集群搭建 ubuntu20

相关

hyper-v安装ubuntu-20-server
hyper-v建立快照
hyper-v快速创建虚拟机-导入导出虚拟机

准备

虚拟机设置

采用hyper-v方式安装ubuntu-20虚拟机和koolshare

hostnameip
h01192.168.66.20
h02192.168.66.21
h03192.168.66.22

静态IP

所有机器都需要按需设置

sudo vim /etc/netplan/00-installer-config.yaml
sudo netplan apply

00-installer-config.yaml
addresses中192.168.66.10是机器的IP地址
gateway4是koolshare的地址

network:ethernets:eth0:dhcp4: noaddresses: [192.168.66.20/24]optional: truegateway4: 192.168.66.1nameservers:addresses: [223.5.5.5,223.6.6.6]version: 2

更改hostname

hostnamectl set-hostname h01
hostnamectl set-hostname h02
hostnamectl set-hostname h03

配置hosts

每台机器都要操作

sudo vim /etc/hosts
# 注意,注释掉或更好名称
127.0.0.1 h01/h02/h03
# 添加一下内容
192.168.66.20 h01
192.168.66.21 h02
192.168.66.22 h03

新增mybigdata用户

每台机器都要操作

# 添加mybigdata用户 (用户名)》密码是必须设置的,其它可选
sudo adduser mybigdata
# 用户加入sudo组,a(append),G(不要将用户从其它组移除)
sudo usermod -aG sudo mybigdata
# 补充,删除用户和文件
# sudo deluser --remove-home mybigdata

ssh登录

ssh -p 22 mybigdata@192.168.66.20
ssh -p 22 mybigdata@192.168.66.21
ssh -p 22 mybigdata@192.168.66.22

免密登录

每台机器都需要设置

# 秘钥生成
ssh-keygen -t rsa
# 秘钥拷贝
ssh-copy-id h01
ssh-copy-id h02
ssh-copy-id h03
# 测试
ssh h01
ssh h02
ssh h03

rsync分发

在h01执行

cd /home/mybigdata
# 创建xsync 分发脚本
vim xsync
# xsync增加可执行权限
chmod +x xsync
# 运行示例
# xsync test.txt

xsync 分发脚本

#!/bin/bash
pcount=$#
if [ $pcount -lt 1 ]
thenecho Not Enough Arguement!exit;
fifor host in h01 h02 h03
doecho ====$host====for file in $@doif [ -e $file ]thenpdir=$(cd -P $(dirname $file); pwd)echo pdir=$pdirfname=$(basename $file)echo fname=$fnamessh $host "mkdir -p $pdir"rsync -av $pdir/$fname $USER@$host:$pdirelseecho $file does not exists!fidone
done

jdk

在h01执行

cd /home/mybigdata
# windows上传linux h01
scp -P 22 -r D:\00garbage\jdk-8u321-linux-x64.tar.gz mybigdata@192.168.66.20:/home/mybigdata/
# 解压
tar -zxvf jdk-8u321-linux-x64.tar.gz
# 配置环境变量
vim .bashrc
# 刷新环境变量
source .bashrc
# 测试
java -version
javac -help

.bashrc

#JAVA_HOME
export JAVA_HOME=/home/mybigdata/jdk1.8.0_321
export JRE_HOME=/home/mybigdata/jdk1.8.0_321/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

安装hadoop

在h01操作

cd /home/mybigdata
# windows上传linux h01
scp -P 22 -r D:\00garbage\hadoop-3.1.3.tar.gz mybigdata@192.168.66.20:/home/mybigdata/
# 解压
tar -zxvf hadoop-3.1.3.tar.gz
# 配置环境变量
vim .bashrc
# 刷新环境变量
source .bashrc
# 测试
scp -P 22 -r D:\00garbage\hadoop-mapreduce-examples-3.1.3.jar mybigdata@192.168.66.20:/home/mybigdata/
mkdir input
vim input/word.txt
hadoop jar ./hadoop-mapreduce-examples-3.1.3.jar wordcount input/ ./output
cd output
vim part-r-00000

.bashrc

#HADOOP_HOME
export HADOOP_HOME=/home/mybigdata/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

配置hadoop集群

组件地址介绍
hdfs namenodehdfs://h01:9000
hdfs secondary namenodeh02:50090
hdfs datanode所有结点都有
mapred/yarn JobHistoryServeru01
yarn resourcemanagerh01
yarn nodemanager所有结点都有
配置文件地址介绍
core-site.xml/fs.defaultFShdfs://h01:9000namenode 地址,client与namenode通信地址
hdfs-site.xml/dfs.namenode.secondary.http-addressh02:50090secondary namenode 地址
yarn-site.xml/yarn.resourcemanager.hostnameh01yarn resourcemanager 地址
yarn-site.xml/yarn.log.server.urlhttp://h01:19888/jobhistory/logsyarn日志服务端地址
mapred-site.xml/mapreduce.jobhistory.addressh01:10020mapreduce jobhistory 地址
mapred-site.xml/mapreduce.jobhistory.webapp.addressh01:19888mapreduce jobhistory web端地址

现在h01执行,再分发

cd /home/mybigdata/hadoop-3.1.3/etc/hadoop/
vim hadoop-env.sh
vim workers
# hdfs namenode
vim core-site.xml
# hdfs secondary namenode
vim hdfs-site.xml
# mapred
vim mapred-site.xml
# yarn resourcemanager
vim yarn-site.xml

hadoop-env.sh

添加

export JAVA_HOME=/home/mybigdata/jdk1.8.0_321

workers

删除localhost
添加

h01
h02
h03

core-site.xml

<configuration><property><name>fs.defaultFS</name><!--namenode 地址,client与namenode通信地址--><value>hdfs://h01:9000</value></property><!--Hadoop的临时目录,默认/tem/hadoop-${user.name}--><property><name>hadoop.tmp.dir</name><value>/home/mybigdata/hadoop-3.1.3/tmp</value></property>
</configuration>

hdfs-site.xml

<configuration><property><!--副本数量--><name>dfs.replication</name><value>3</value></property><!--secondary namenode 地址--><property><name>dfs.namenode.secondary.http-address</name><value>h02:50090</value></property>
</configuration>

mapred-site.xml

<configuration><!--指定MapReduce运行时的调度框架,这里指定在Yarn上,默认在local--><property><name>mapreduce.framework.name</name><value>yarn</value></property><!--mapreduce jobhistory 地址--><property><name>mapreduce.jobhistory.address</name><value>h01:10020</value></property><!--mapreduce jobhistory web端地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>h01: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>
</configuration>

yarn-site.xml

<configuration><!--ResourceManager地址--><property><name>yarn.resourcemanager.hostname</name><value>h01</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!--yarn日志服务端地址,mapred-site.xml已配置--><property><name>yarn.log.server.url</name><value>http://h01:19888/jobhistory/logs</value></property><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value><description>Whether virtual memory limits will be enforced for containers</description></property><property><name>yarn.nodemanager.vmem-pmem-ratio</name><value>4</value><description>Ratio between virtual memory to physical memory when setting memory limits for containers</description></property>
</configuration>

分发

在h01执行

# 环境变量 .bashrc
./xsync .bashrc
# jdk
./xsync jdk1.8.0_321
# hadoop
./xsync hadoop-3.1.3# 在每个虚拟机上执行,激活环境变量
source .bashrc

脚本

在h01执行

# 启动 停止脚本;hse.sh start/stop
vim hse
# 修改权限
chmod +x hse# 每个虚拟机执行,jps软连接
ln -s -f /home/mybigdata/jdk1.8.0_321/bin/jps /usr/bin/jps# hjps
vim hjps
# 修改权限
chmod +x hjps

hse.sh

#!/bin/bash 
if [ $# -lt 1 ] 
then echo "请输入start/stop" exit ; 
fi case $1 in 
"start") echo "===启动hadoop集群 ===" echo "---启动hdfs---" ssh h01 "/home/mybigdata/hadoop-3.1.3/sbin/start-dfs.sh" echo "---启动yarn---" ssh h01 "/home/mybigdata/hadoop-3.1.3/sbin/start-yarn.sh" echo " ---启动historyserver---" ssh h01 "/home/mybigdata/hadoop-3.1.3/bin/mapred --daemon start historyserver" 
;; 
"stop") echo "===关闭hadoop集群===" echo "---关闭historyserver---" ssh h01 "/home/mybigdata/hadoop-3.1.3/bin/mapred --daemon stop historyserver" echo "---关闭yarn---" ssh h01 "/home/mybigdata/hadoop-3.1.3/sbin/stop-yarn.sh" #若yarn在u02机器上则 ssh h02echo "---关闭hdfs---" ssh h01 "/home/mybigdata/hadoop-3.1.3/sbin/stop-dfs.sh" 
;; 
*) echo "请输入start/stop" 
;; 
esac

hjps

#!/bin/bash
for host in h01 h02 h03
doecho ===$host===ssh $host jps
done

windows配置

hosts 位置 C:\windows\system32\drivers\etc\

192.168.66.20 h01
192.168.66.21 h02
192.168.66.22 h03

测试

在h01执行

cd /home/mybigdata
# namenode 格式化
hdfs namenode -format
# 启动
./hse start
# 检查jps
./hjps# 执行
hadoop dfs -mkdir /wordin
vim word.txt
hadoop dfs -moveFromLocal ./word.txt /wordin
hadoop jar ./hadoop-mapreduce-examples-3.1.3.jar wordcount /wordin /wordout# hdfs web地址
http://u01:9870
# yarn web地址
http://u01:8088

./hjps 执行结果


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言技巧 ----------调试----------程序员必备技能

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; &#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382;…

【css】nth-child选择器实现表格的斑马纹效果

nth-child() 选择器可以实现为所有偶数&#xff08;或奇数&#xff09;的表格行添加css样式&#xff0c;even&#xff1a;偶数&#xff0c;odd&#xff1a;奇数。 代码&#xff1a; <style> table {border-collapse: collapse;width: 100%; }th, td {text-align: cente…

MySQL 判断字段是否包含数字或者纯数字

使用mysql原生函数FIND_IN_SET查询包含某个数字 select * from text where find_in_set(1,name) 使用regexp正则匹配纯数字 select * from text where (name REGEXP [^0-9.])0; 当 REGEXP ‘[^0-9.]’ 结果为 0 ,代表为纯数字 当 REGEXP ‘[^0-9.]’ 结果为1 ,代表不为纯数…

kube-state-metrics暴露k8s中的监控指标

kube-state-metrics 是一个用于从 Kubernetes 集群中生成各种资源对象状态指标的工具。 通过Deployment等配置完成安装 https://github.com/kubernetes/kube-state-metrics/tree/main/examples/standard 根据官方给定的配置添加至k8s上 注意需要RBAC授权 启动项 要使 kube…

在C语言中内嵌汇编语言

在C语言中内嵌的汇编指令包含大部分的ARM和Thumb指令&#xff0c;不过其使用与汇编文件中的指令有些不同&#xff0c;存在一些限制&#xff0c;主要有以下几个方面&#xff1a; &#xff08;1&#xff09;不能直接向PC寄存器赋值&#xff0c;程序跳转要使用B或者BL指令&#x…

Promise用法

学习了promise之后&#xff0c;有点懂但让我说又说不出来&#xff0c;参考别人的记录一下。 1.什么是promise&#xff1f; 2.promise解决了什么问题 3.es6 promise语法 &#xff08;1&#xff09;then链式操作语法 &#xff08;2&#xff09;catch的语法 &#xff08;3&#xf…

Git Bash 教程!【不是所有人都会用Git】

我不太会用github...... 写这篇文章希望能顺利...... 【写在前面】介绍一下git bash的复制粘贴的快捷键&#xff0c;以防后续不会&#xff1a; 开始&#xff1a; 首先下一个windows&#xff1a;git for windows(地址&#xff1a;Git - Downloading Package (git-scm.com)) &a…

P3957 [NOIP2017 普及组] 跳房子

[NOIP2017 普及组] 跳房子 题目背景 NOIP2017 普及组 T4 题目描述 跳房子&#xff0c;也叫跳飞机&#xff0c;是一种世界性的儿童游戏&#xff0c;也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下&#xff1a; 在地面上确定一个起点&#xff0c;然后在起点右侧画…

基于遗传算法的试题组卷(二)

实例讲解 一、准备工作 1、问题实体 问题实体包含编号、类型&#xff08;类型即题型&#xff0c;分为五种&#xff1a;单选&#xff0c;多选&#xff0c;判断&#xff0c;填空&#xff0c;问答&#xff0c; 分别用1、2、3、4、5表示&#xff09;、分数、难度系数、知识点。一…

【MySQL】触发器 (十二)

🚗MySQL学习第十二站~ 🚩本文已收录至专栏:MySQL通关路 ❤️文末附全文思维导图,感谢各位点赞收藏支持~ 一.引入 触发器是与表有关的数据库对象,作用在insert/update/delete语句执行之前(BEFORE)或之后(AFTER),自动触发并执行触发器中定义的SQL语句集合。它可以协助应…

解决Win11右键菜单问题

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; 程序日常 ✨特色专栏&…

【MyBatis】 框架原理

目录 10.3【MyBatis】 框架原理 10.3.1 【MyBatis】 整体架构 10.3.2 【MyBatis】 运行原理 10.4 【MyBatis】 核心组件的生命周期 10.4.1 SqlSessionFactoryBuilder 10.4.2 SqlSessionFactory 10.4.3 SqlSession 10.4.4 Mapper Instances 与 Hibernate 框架相比&#…

【HAL库】STM32CubeMX开发----STM32F407----LAN8720A----移植FreeModbus实现ModbusTCP

前言 本次实验以 STM32F407VET6 芯片为MCU&#xff0c;使用 25MHz 外部时钟源。 以太网PHY层芯片为 LAN8720A&#xff0c;移植FreeModbus实现ModbusTCP网口通信。 具体内容参考文章&#xff1a;【HAL库】STM32CubeMX开发----STM32F407----ETHLAN8720ALWIP----ping通 本次移植…

零基础强化学习入门分享

&#xff08;一&#xff09;前言&#xff1a;强化学习入门顺序。 以前主要学习硬件PCB单片机等知识&#xff0c;后来接触的项目也大多与电气相关&#xff0c;从一窍不通到稍微找到点门道&#xff0c;中间走过不少弯路&#xff0c;误打误撞中&#xff0c;也留下了一些经验。 我的…

微服务——elasticsearch

初识ES——什么是elasticsearch elasticsearch的发展 初识ES——正向索引和倒排索引 初识ES——es与mysql的概念对比 类比到mysql中是表结构约束 概念对比 初始ES——安装es和kibana 1.部署单点es 1.1创建网络 要安装es容器和kibana容器并让他们之间相连&#xff0c;这里…

RabbitMQ-API

这里写目录标题 Hello word 模式添加依赖生产者消费者获取信道工具类 Work Queues模式消费者代码 C1开启多线程运行启动 消费者代码 C2生产者代码 消息应答自动应答消息应答的方法Multiple 的解释消息自动重新入队消息手动应答代码消费者API 队列持久化消息持久化不公平分发消息…

redis 高级篇 redis 源码的读取分析

一 redis源码分析 1.1 源码分析 1每一个kv键值对应有一个dictEntry。 2.底层数据结构

zabbix简易入门:基本的网络监控、WEB监控

我们越来越发现&#xff1a;网络越来越复杂&#xff0c;网络、应用、云端……故障点随时可能发生&#xff0c;而我们不能人工盯着所有的问题&#xff0c;所以&#xff0c;网管软件是必须的。那么没有预算的情况下&#xff0c;我们只好自己布署简单的网管软件了。 zabbix网站上可…

笔记汇总 | 斯坦福 CS229 机器学习

文章目录 前言课程参考文章推荐阅读 前言 本文为斯坦福大学 CS229 机器学习课程学习笔记 本文主体部分转载自黄海广博士&#xff0c;文末已给出链接&#xff0c;大家有兴趣可以直接访问笔记首页&#xff0c;下载对应课程资料及作业代码 课程官网&#xff1a;CS229: Machine …

mysql数据库迁移

目录 背景迁移数据库 背景 公司有个项目&#xff0c;刚开始数据量不是大的时候&#xff0c;数据库和服务上的所有应用数据都放在一个旧小盘中&#xff0c;随着项目数据的增长&#xff0c;旧的磁盘被占满了&#xff0c;导致系统无法写入数据&#xff0c;我和同事排查了很长时间…