当前位置: 首页 > 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月11日学习打卡,数据结构栈

大家好呀&#xff0c;本博客目的在于记录暑假学习打卡&#xff0c;后续会整理成一个专栏&#xff0c;主要打算在暑假学习完数据结构&#xff0c;因此会发一些相关的数据结构实现的博客和一些刷的题&#xff0c;个人学习使用&#xff0c;也希望大家多多支持&#xff0c;有不足之…...

数据结构第20节 快速排序以及优化

快速排序是一种非常高效的排序算法&#xff0c;由英国计算机科学家托尼霍尔&#xff08;Tony Hoare&#xff09;在1960年代发明。它使用分治法&#xff08;Divide and Conquer&#xff09;策略来把一个序列分为较小的部分&#xff0c;然后递归地排序这些部分。 快速排序的基本…...

3分钟理解超键、候选键、主键

1.超键 在关系模式中&#xff0c;能唯一标识实体实例的任何属性集 学生&#xff08;学号&#xff0c;姓名&#xff0c;性别&#xff0c;专业编号&#xff0c;年龄&#xff09; 通过学号可以找到一个学生的姓名、性别、专业号、年龄&#xff0c;但是通过姓名不一定能找到这些…...

Centos忘记密码,重置root密码

Centos忘记密码&#xff0c;重置root密码 操作环境&#xff1a;Centos7.6 1、选择包含rescue的选项&#xff0c;按e进入编辑模式 首先&#xff0c;我们需要重启系统&#xff0c;进入开机引导菜单界面。在这里&#xff0c;我们可以看到系统的内核版本和启动参数等信息。我们需…...

Android初学者书籍推荐

书单 1.《Android应用开发项目式教程》&#xff0c;机械工业出版社&#xff0c;2024年出版2.《第一行代码Android》第二版3.《第一行代码Android》第三版4.《疯狂Android讲义》第四版5.《Android移动应用基础教程&#xff08;Android Studio 第2版&#xff09;》 从学安卓到用安…...

安卓文件上传照片单张及多张照片上传实现

一、首先导入对应库 //网络请求库 implementation com.squareup.okhttp3:okhttp:3.9.0//Gson解析 implementation com.google.code.gson:gson:2.10.1 二、然后就是们实现上传方法 UploaderTool.java import android.util.Log;import com.google.gson.Gson;import java.io.File…...

小白学webgl合集-import.meta.url 和 new URL() bug

为什么使用 import.meta.url 和 new URL() 动态路径解析&#xff1a; 在 ESM&#xff08;ECMAScript Modules&#xff09;环境中&#xff0c;import.meta.url 提供了当前模块的完整 URL。结合 new URL()&#xff0c;你可以基于这个 URL 动态解析其他资源的路径。这样可以确保路…...

pico+unity3d开启彩色透视

1、点击游戏对象、点击XR、点击添加XR Origin&#xff0c;并把自带的摄像对象删除 2、添加脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using Unity.XR.PXR;//引入xr对象 public class toushi : MonoBehaviour {// Start is called…...

python常用命令

文章目录 1. 安装模块 1. 安装模块 pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple (切换数据源&#xff09;...

使用定时器消除抖动

问题&#xff1a;定时器中断和按键中断属于什么操作模式&#xff0c;轮询吗&#xff1f; 具体怎么实现 定时器中断 &#xff08;判断&#xff09; 时间参数 按键中断&#xff08;修改&#xff09; 中断 向量表.s文件 DCD SysTick_Handler …...