当前位置: 首页 > news >正文

数据建设实践之大数据平台(三)

安装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中的交叉类型

交叉类型&#xff1a;将多个类型合并为一个类型&#xff0c;使用&符号连接。 type AProps { a: string }type BProps { b: number }type allProps AProps & BPropsconst Info: allProps {a: 小月月,b: 7} 我们可以看到交叉类型是结合两个属性的属性值&#xff0c;那…...

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实现图片压缩功能

图片压缩在众多应用场景中扮演着至关重要的角色&#xff0c;尤其是在客户端上传图片时。原始图片往往体积庞大&#xff0c;直接上传不仅消耗大量带宽资源&#xff0c;还可能导致上传速度缓慢&#xff0c;严重影响用户体验。因此&#xff0c;在图片上传至服务器前对其进行压缩处…...

2024.7.10 刷题总结

2024.7.10 **每日一题** 2970.统计移除递增子数组的数目 Ⅰ&#xff0c;这道题是一个考察双指针的题目&#xff0c;也考察了数组的基本性质。题目的意思是要统计有多少个子数组能满足移除后剩下的元素为严格递增的关系&#xff0c;刚开始没考虑到移除的元素要是连续的&#xff…...

ES6 async 函数详解 (十)

async 函数是什么&#xff1f;一句话&#xff0c;它就是 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 …...

【安全设备】入侵检测

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

07浅谈大语言模型可调节参数tempreture

浅谈temperature 什么是temperature&#xff1f; temperature是大预言模型生成文本时常用的两个重要参数。它的作用体现在控制模型输出的确定性和多样性&#xff1a; 控制确定性&#xff1a; temperature参数可以控制模型生成文本的确定性&#xff0c;大部分模型中temperatur…...

Redis数据同步

文章简单介绍基于redis-shake的redis数据同步&#xff0c;该工具基于每个节点同步数据&#xff0c;即每个主节点需同步一次&#xff0c;才能完成整个redis集群的数据同步。 1、redis节点操作 ### 查看redis版本 ./bin/redis-server --version### 登录redis ./bin/redis-cli -…...

快手矩阵源码,快速拥有自己的短视频矩阵

在数字化浪潮席卷全球的今天&#xff0c;短视频已成为内容传播的新宠&#xff0c;而如何高效、精准地管理多平台、多账号&#xff0c;实现短视频内容的快速制作与发布&#xff0c;是每个自媒体人都在思考的问题。快手矩阵源码&#xff0c;作为一款集多平台管理、多账户管理、短…...

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 目标&#xff1a;跑通baseline&#xff0c;体验NLP模型解决问题的流程&#xff0c;基本了解赛题要求&#xff0c;…...

攻防世界(PHP过滤器过滤)file_include

转换过滤器官方文档&#xff1a;https://www.php.net/manual/zh/filters.convert.php#filters.convert.iconv 这道题因为convert.base64-encode被过滤掉了&#xff0c;所以使用convert.iconv.*过滤器 在激活 iconv 的前提下可以使用 convert.iconv.* 压缩过滤器&#xff0c; 等…...

PostGIS2.4服务器编译安装

PostGIS的最新版本已经到3.5&#xff0c;但是还有一些国产数据库内核使用的旧版本的PostgreSQL&#xff0c;支持PostGIS2.4。但PostGIS2.4的版本已经在yum中找不到了&#xff0c;安装只能通过本地编译的方式。这里介绍一下如何在Centos7的系统上&#xff0c;编译部署PostGIS2.4…...

虚拟机安装Linux CENTOS 07 部署NET8 踩坑大全

首先下载centos07镜像&#xff0c;建议使用阿里云推荐的地址&#xff1a; https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/?spma2c6h.25603864.0.0.59b5f5ad5Nfr0X 其实这里就已经出现第一个坑了 centos 07 /usr/lib64/ 的 libstdc.so只支持到19&#xff1b; GLI…...

【C++】CMake入门

CMake 是一个跨平台的构建系统生成工具&#xff0c;可以生成用于编译和链接应用程序的构建文件&#xff08;如 Makefile 或 Visual Studio 工程文件&#xff09;。 安装 CMake Windows 可以从 CMake官网 下载并安装 Windows 版本的 CMake。安装完成后&#xff0c;确保将 CMak…...

云WAF | 云waf保护你的网络安全

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

c++初阶知识——类和对象(1)

目录 1.类和对象 1.1 类的定义 1.2 访问限定符 1.3 类域 2.实例化 2.1 实例化概念 2.2 对象大小 内存对齐规则 3.this指针 1.类和对象 1.1 类的定义 &#xff08;1&#xff09;class为定义类的关键字&#xff0c;Stack为类的名字&#xff0c;{}中为类的主体&#xf…...

Vue 3 组件通信全解:从基础到高级技巧

引言 Vue 3 引入了 Composition API&#xff0c;这为组件通信带来了新的灵活性和强大的功能。 组件通信基础 组件的定义和作用 在前端开发中&#xff0c;组件可以被看作是构建用户界面的独立单元。它封装了特定的功能和样式&#xff0c;可以被重复使用&#xff0c;并且可以…...

大众汽车入职SHL在线测评、英语口语、招聘笔试如何通过、考点分析|备考建议

大众汽车入职在线测验真题考点分析&#xff0c;通过技巧&#xff1f; 大众汽车集团&#xff08;中国&#xff09;在招聘过程中&#xff0c;认知能力测试是评估候选人是否适合某个职位的重要环节。候选人会收到带有线上测评链接的邮件&#xff0c;测评包括胜任力潜力测试(Compe…...

《植物大战僵尸杂交版》2.2:新版本体验与下载指南

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

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...