数据建设实践之大数据平台(三)
安装hadoop
上传安装文件到/opt/software目录并解压
[bigdata@node101 software]$ tar -zxvf hadoop-3.3.5.tar.gz -C /opt/services/
配置环境变量
[bigdata@node101 ~]$ sudo vim /etc/profile.d/bigdata_env.sh
export JAVA_HOME=/opt/services/jdk1.8.0_161
export ZK_HOME=/opt/services/zookeeper-3.5.7
export HADOOP_HOME=/opt/services/hadoop-3.3.5
export PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
分发环境变量
[bigdata@node101 bin]$ sudo ./bin/xsync /etc/profile.d/bigdata_env.sh
刷新环境变量,5台机器上执行
[bigdata@node101 ~]$ source /etc/profile
配置core-site.xml文件
<property><name>fs.defaultFS</name><value>hdfs://mycluster</value>
</property>
<property><name>hadoop.tmp.dir</name><value>/opt/services/hadoop-3.3.5/data</value>
</property>
<property><name>hadoop.http.staticuser.user</name><value>bigdata</value>
</property>
<property> <name>fs.trash.interval</name> <value>1440</value>
</property>
<property> <name>fs.trash.checkpoint.interval</name> <value>1440</value>
</property>
<property> <name>ha.zookeeper.quorum</name> <value>node101:2181,node102:2181,node103:2181</value>
</property>
<property><name>hadoop.proxyuser.bigdata.hosts</name><value>*</value>
</property>
<property><name>hadoop.proxyuser.bigdata.groups</name><value>*</value>
</property>
<property><name>hadoop.proxyuser.bigdata.users</name><value>*</value>
</property>
配置hdfs-site.xml文件
<property><name>dfs.namenode.data.dir</name><value>file://${hadoop.tmp.dir}/name</value>
</property>
<property><name>dfs.datanode.data.dir</name><value>file://${hadoop.tmp.dir}/data1,file://${hadoop.tmp.dir}/data2</value>
</property>
<property><name>dfs.journalnode.edits.dir</name><value>${hadoop.tmp.dir}/journal/</value>
</property>
<property><name>dfs.nameservices</name><value>mycluster</value>
</property>
<property><name>dfs.ha.namenodes.mycluster</name><value>nn1,nn2</value>
</property>
<property><name>dfs.namenode.rpc-address.mycluster.nn1</name><value>node101:8020</value>
</property>
<property><name>dfs.namenode.rpc-address.mycluster.nn2</name><value>node102:8020</value>
</property>
<property><name>dfs.namenode.http-address.mycluster.nn1</name><value>node101:9870</value>
</property>
<property><name>dfs.namenode.http-address.mycluster.nn2</name><value>node102:9870</value>
</property>
<property><name>dfs.namenode.shared.edits.dir</name><value>qjournal://node101:8485;node102:8485/mycluster</value>
</property>
<property><name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property><name>dfs.ha.fencing.methods</name><value>sshfence
shell(/bin/true)</value>
</property>
<property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/home/bigdata/.ssh/id_rsa</value>
</property>
<property><name>dfs.ha.automatic-failover.enabled</name><value>true</value>
</property>
<property><name>dfs.replication</name><value>3</value>
</property>
<property><name>dfs.namenode.handler.count</name><value>21</value>
</property>
<property><name>dfs.hosts</name><value>/opt/services/hadoop-3.3.5/etc/hadoop/whitelist</value>
</property>
<property><name>dfs.hosts.exclude</name><value>/opt/services/hadoop-3.3.5/etc/hadoop/blacklist</value>
</property>
配置mapred-site.xml文件
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
<property><name>mapreduce.jobhistory.address</name><value>node102:10020</value>
</property>
<property><name>mapreduce.jobhistory.webapp.address</name><value>node102:19888</value>
</property>
配置yarn-site.xml文件
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle,spark_shuffle</value>
</property>
<property><name>yarn.nodemanager.aux-services.spark_shuffle.class</name><value>org.apache.spark.network.yarn.YarnShuffleService</value>
</property>
<property><name>yarn.resourcemanager.ha.enabled</name><value>true</value>
</property>
<property><name>yarn.resourcemanager.cluster-id</name><value>yarn-cluster</value>
</property>
<property><name>yarn.resourcemanager.ha.rm-ids</name><value>rm1,rm2</value>
</property>
<property><name>yarn.resourcemanager.hostname.rm1</name><value>node101</value>
</property>
<property><name>yarn.resourcemanager.webapp.address.rm1</name><value>node101:8088</value>
</property>
<property><name>yarn.resourcemanager.address.rm1</name><value>node101:8032</value>
</property>
<property><name>yarn.resourcemanager.scheduler.address.rm1</name><value>node101:8030</value>
</property>
<property><name>yarn.resourcemanager.resource-tracker.address.rm1</name><value>node101:8031</value>
</property>
<property><name>yarn.resourcemanager.hostname.rm2</name><value>node102</value>
</property>
<property><name>yarn.resourcemanager.webapp.address.rm2</name><value>node102:8088</value>
</property>
<property><name>yarn.resourcemanager.address.rm2</name><value>node102:8032</value>
</property>
<property><name>yarn.resourcemanager.scheduler.address.rm2</name><value>node102:8030</value>
</property>
<property><name>yarn.resourcemanager.resource-tracker.address.rm2</name><value>node102:8031</value>
</property>
<property><name>yarn.resourcemanager.zk-address</name><value>node101:2181,node102:2181,node103:2181</value>
</property>
<property><name>yarn.resourcemanager.recovery.enabled</name><value>true</value>
</property>
<property><name>yarn.resourcemanager.store.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property>
<property><name>yarn.log.server.url</name><value>http://node102:19888/jobhistory/logs</value>
</property>
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</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><description>配置调度器</description><name>yarn.resourcemanager.scheduler.class</name><value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
<property><description>处理调度器的线程数量,一般不超过机器数*线程数,配置总数的2/3</description><name>yarn.resourcemanager.scheduler.client.thread-count</name><value>16</value>
</property>
<property><description>是否让yarn自动检测硬件进行配置,如果手工配置,需要设置false</description><name>yarn.nodemanager.resource.detect-hardware-capabilities</name><value>false</value>
</property>
<property><description>是否将虚拟核数当作cpu核数,如果机器配置一样采用false</description><name>yarn.nodemanager.resource.count-logical-processors-as-cores</name><value>false</value>
</property>
<property><description>虚拟核数和物理核数的比例</description><name>yarn.nodemanager.resource.pcores-vcores-multiplier</name><value>1.0</value>
</property>
<property><description>nodemanager可以使用内存大小</description><name>yarn.nodemanager.resource.memory-mb</name><value>8192</value>
</property>
<property><description>nodemanager可以使用cup核数,一般一个container4个核8G内存</description><name>yarn.nodemanager.resource.cpu-vcores</name><value>8</value>
</property>
<property><description>container最小内存</description><name>yarn.scheduler.minimum-allocation-mb</name><value>1024</value>
</property>
<property><description>container最大内存</description><name>yarn.scheduler.maximum-allocation-mb</name><value>4096</value>
</property>
<property><description>一个container最小核数</description><name>yarn.scheduler.minimum-allocation-vcores</name><value>1</value>
</property>
<property><description>一个container最大核数</description><name>yarn.scheduler.maximum-allocation-vcores</name><value>4</value>
</property>
<property><description>虚拟内存检查,修改为关闭</description><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>
<property><description>设置任务优先级</description><name>yarn.cluster.max-application-priority</name><value>5</value>
</property>
配置capacity-scheduler.xml文件
<property><name>yarn.scheduler.capacity.root.queues</name><value>default,hive</value><description>The queues at the this level (root is the root queue).</description></property><property><name>yarn.scheduler.capacity.root.default.capacity</name><value>20</value><description>Default queue target capacity.</description></property><property><name>yarn.scheduler.capacity.root.hive.capacity</name><value>80</value><description>hive queue target capacity.</description></property><property><name>yarn.scheduler.capacity.root.default.user-limit-factor</name><value>1</value><description>Default queue user limit a percentage from 0.0 to 1.0.</description></property><property><name>yarn.scheduler.capacity.root.hive.user-limit-factor</name><value>1</value><description>hive queue user limit a percentage from 0.0 to 1.0.</description></property><property><name>yarn.scheduler.capacity.root.default.maximum-capacity</name><value>80</value><description>The maximum capacity of the default queue. </description></property><property><name>yarn.scheduler.capacity.root.hive.maximum-capacity</name><value>100</value><description>The maximum capacity of the hive queue. </description></property><property><name>yarn.scheduler.capacity.root.default.state</name><value>RUNNING</value><description>The state of the default queue. State can be one of RUNNING or STOPPED.</description></property><property><name>yarn.scheduler.capacity.root.hive.state</name><value>RUNNING</value><description>The state of the hive queue. State can be one of RUNNING or STOPPED.</description></property>
配置hadoop-env.sh文件
export HDFS_NAMENODE_OPTS="-Dhadoop.security.logger=INFO,RFAS -Xmx1024m"
export HDFS_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS -Xmx1024m"
配置workers文件,添加datanode节点
node103
node104
node105
配置whitelist文件
node103
node104
node105
配置blacklist文件
node104
分发hadoop到其他节点
[bigdata@node101 ~]$ xsync /opt/services/hadoop-3.3.5
编写hadoop启动停止脚本
[bigdata@node101 bin]$ vim hadoop.sh
#!/bin/bashif [ $# -lt 1 ]
thenecho "No Args Input...[start,stop]"exit ;
fi
case $1 in
"start")echo " =================== 启动 hadoop集群 ==================="echo " --------------- 启动 hdfs -----------------------"ssh node101 "$HADOOP_HOME/sbin/start-dfs.sh"echo " --------------- 启动 yarn ------------------------"ssh node102 "$HADOOP_HOME/sbin/start-yarn.sh"echo " --------------- 启动 historyserver ---------------"ssh node102 "$HADOOP_HOME/bin/mapred --daemon start historyserver"
;;
"stop")echo " =================== 关闭 hadoop集群 ==================="echo " --------------- 关闭 historyserver -----------------"ssh node102 "$HADOOP_HOME/bin/mapred --daemon stop historyserver"echo " --------------- 关闭 yarn --------------------------"ssh node102 "$HADOOP_HOME/sbin/stop-yarn.sh"echo " --------------- 关闭 hdfs --------------------------"ssh node101 "$HADOOP_HOME/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error...[start,stop]"
;;
esac
hadoop.sh授权
[bigdata@node101 bin]$ chmod +x hadoop.sh
分发hadoop.sh
[bigdata@node101 bin]$ xsync hadoop.sh
编写jpsall.sh脚本
[bigdata@node101 bin]$ vim jpsall.sh
#!/bin/bash
for host in node101 node102 node103 node104 node105
doecho " =================== $host ==================="ssh $host jps
done
jpsall.sh授权
[bigdata@node101 bin]$ chmod +x jpsall.sh
分发jpsall.sh
[bigdata@node101 bin]$ xsync jpsall.sh
注册hadoop
[bigdata@node101 bin]$ hdfs zkfc -formatZK
在node101,node102节点上启动journalnode
[bigdata@node101 bin]$hdfs --daemon start journalnode
在node101节点格式化hadoop
[bigdata@node101 bin]$hdfs namenode -format
在node101节点启动namenode
[bigdata@node101 bin]$hdfs --daemon start namenode
在node102节点同步元数据并启动namenode
[bigdata@node101 bin]$hdfs namenode -bootstrapStandby
[bigdata@node101 bin]$hdfs --daemon start namenode
重启hadoop
[bigdata@node101 bin]$hadoop.sh stop
[bigdata@node101 bin]$hadoop.sh start
相关文章:
数据建设实践之大数据平台(三)
安装hadoop 上传安装文件到/opt/software目录并解压 [bigdatanode101 software]$ tar -zxvf hadoop-3.3.5.tar.gz -C /opt/services/ 配置环境变量 [bigdatanode101 ~]$ sudo vim /etc/profile.d/bigdata_env.sh export JAVA_HOME/opt/services/jdk1.8.0_161 export ZK_HO…...
TypeScript中的交叉类型
交叉类型:将多个类型合并为一个类型,使用&符号连接。 type AProps { a: string }type BProps { b: number }type allProps AProps & BPropsconst Info: allProps {a: 小月月,b: 7} 我们可以看到交叉类型是结合两个属性的属性值,那…...
CNN -1 神经网络-概述2
CNN -1 神经网络-概述2 一:神经网络(operator)1> 线性层(Fully Connected Layer)2> 卷积层(Convolutional Layer)3> 池化层(Pooling Layer)4> 循环层(Recurrent Layer)5> 归一化层(Normalization Layer)6> 激活函数(Activation Function)7>…...

利用js实现图片压缩功能
图片压缩在众多应用场景中扮演着至关重要的角色,尤其是在客户端上传图片时。原始图片往往体积庞大,直接上传不仅消耗大量带宽资源,还可能导致上传速度缓慢,严重影响用户体验。因此,在图片上传至服务器前对其进行压缩处…...
2024.7.10 刷题总结
2024.7.10 **每日一题** 2970.统计移除递增子数组的数目 Ⅰ,这道题是一个考察双指针的题目,也考察了数组的基本性质。题目的意思是要统计有多少个子数组能满足移除后剩下的元素为严格递增的关系,刚开始没考虑到移除的元素要是连续的ÿ…...
ES6 async 函数详解 (十)
async 函数是什么?一句话,它就是 Generator 函数的语法糖。 const gen function* () {const f1 yield readFile(/etc/fstab);const f2 yield readFile(/etc/shells);console.log(f1.toString());console.log(f2.toString()); };const asyncReadFile …...

【安全设备】入侵检测
一、什么是入侵检测 入侵检测是一种网络安全技术,用于监测和识别对计算机系统或网络的恶意使用行为或未经授权的访问。入侵检测系统(IDS)是实现这一目标的技术手段,其主要目的是确保计算机系统的安全,通过及时发现并报…...

07浅谈大语言模型可调节参数tempreture
浅谈temperature 什么是temperature? temperature是大预言模型生成文本时常用的两个重要参数。它的作用体现在控制模型输出的确定性和多样性: 控制确定性: temperature参数可以控制模型生成文本的确定性,大部分模型中temperatur…...
Redis数据同步
文章简单介绍基于redis-shake的redis数据同步,该工具基于每个节点同步数据,即每个主节点需同步一次,才能完成整个redis集群的数据同步。 1、redis节点操作 ### 查看redis版本 ./bin/redis-server --version### 登录redis ./bin/redis-cli -…...

快手矩阵源码,快速拥有自己的短视频矩阵
在数字化浪潮席卷全球的今天,短视频已成为内容传播的新宠,而如何高效、精准地管理多平台、多账号,实现短视频内容的快速制作与发布,是每个自媒体人都在思考的问题。快手矩阵源码,作为一款集多平台管理、多账户管理、短…...
notes for datawhale 2th summer camp NLP task1
//I wrote this note in obsidian and copied it here. The strange format in this note is due to lack of obsidian plugins. tags: AI-studyML status: done 目标:跑通baseline,体验NLP模型解决问题的流程,基本了解赛题要求,…...

攻防世界(PHP过滤器过滤)file_include
转换过滤器官方文档:https://www.php.net/manual/zh/filters.convert.php#filters.convert.iconv 这道题因为convert.base64-encode被过滤掉了,所以使用convert.iconv.*过滤器 在激活 iconv 的前提下可以使用 convert.iconv.* 压缩过滤器, 等…...
PostGIS2.4服务器编译安装
PostGIS的最新版本已经到3.5,但是还有一些国产数据库内核使用的旧版本的PostgreSQL,支持PostGIS2.4。但PostGIS2.4的版本已经在yum中找不到了,安装只能通过本地编译的方式。这里介绍一下如何在Centos7的系统上,编译部署PostGIS2.4…...

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全
首先下载centos07镜像,建议使用阿里云推荐的地址: https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.59b5f5ad5Nfr0X 其实这里就已经出现第一个坑了 centos 07 /usr/lib64/ 的 libstdc.so只支持到19; GLI…...
【C++】CMake入门
CMake 是一个跨平台的构建系统生成工具,可以生成用于编译和链接应用程序的构建文件(如 Makefile 或 Visual Studio 工程文件)。 安装 CMake Windows 可以从 CMake官网 下载并安装 Windows 版本的 CMake。安装完成后,确保将 CMak…...

云WAF | 云waf保护你的网络安全
随着时代的发展,云计算与网络安全成为当今社会的热点问题。由于网络环境的日益复杂,网络安全问题日益突出,网络安全问题日益突出。近年来,各类网络安全工具与技术层出不穷,以保障用户信息及企业财产安全。云服务防火墙…...

c++初阶知识——类和对象(1)
目录 1.类和对象 1.1 类的定义 1.2 访问限定符 1.3 类域 2.实例化 2.1 实例化概念 2.2 对象大小 内存对齐规则 3.this指针 1.类和对象 1.1 类的定义 (1)class为定义类的关键字,Stack为类的名字,{}中为类的主体…...
Vue 3 组件通信全解:从基础到高级技巧
引言 Vue 3 引入了 Composition API,这为组件通信带来了新的灵活性和强大的功能。 组件通信基础 组件的定义和作用 在前端开发中,组件可以被看作是构建用户界面的独立单元。它封装了特定的功能和样式,可以被重复使用,并且可以…...

大众汽车入职SHL在线测评、英语口语、招聘笔试如何通过、考点分析|备考建议
大众汽车入职在线测验真题考点分析,通过技巧? 大众汽车集团(中国)在招聘过程中,认知能力测试是评估候选人是否适合某个职位的重要环节。候选人会收到带有线上测评链接的邮件,测评包括胜任力潜力测试(Compe…...

《植物大战僵尸杂交版》2.2:新版本体验与下载指南
作为《植物大战僵尸》系列的忠实粉丝,我最近发现了一款令人兴奋的改版游戏——《植物大战僵尸杂交版》2.2。这款游戏不仅保留了原作的经典元素,还加入了一些创新的玩法,让我忍不住想要分享给大家。 2.2版本新体验 新僵尸登场 最新版本中&am…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

Python训练营-Day26-函数专题1:函数定义与参数
题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...