大数据hadoop课程笔记

 1.课程导入

柯洁

Alpha Go是人工智能领域的里程碑。

深度学习

 大模型deepseek chatgpt

大模型 和 大数据 之间有着非常紧密的关系。可以说,大数据是大模型发展的基石,而大模型是大数据价值挖掘的重要工具。

https://youtu.be/nN-VacxHUH8?si=fj7LtkckVXm7soWR

DeepSeek刚火就要垮掉了吗?史上最通俗的AI科普!15分钟搞懂国产Ai是如何实现弯道超車的!_哔哩哔哩_bilibili

1.1.1大数据产生背景

  • TB(太字节):常见于企业级数据存储,如数据库、数据仓库等。

    • 示例:1 TB 可以存储大约 25 万张高清图片或 300 小时的视频。

  • PB(拍字节):常见于大型互联网公司、科学研究机构或政府机构的数据中心。

    • 示例:1 PB 可以存储大约 2 亿张高清图片或 3000 小时的 4K 视频。

  • EB(艾字节):全球互联网流量、大型云服务提供商的数据规模。

    • 示例:1 EB 可以存储大约 2000 亿张高清图片或 300 万小时的 4K 视频。

  • ZB(泽字节):全球数据总量的规模(例如,2020 年全球数据总量约为 64 ZB)。

  • YB(尧字节):未来的数据规模,目前尚未达到。

1.1.2 

大数据的定义

volume:体积(大量化):存储量大,增量大(TB,PB,EB)

Variety:种类多。来源多,格式多。

  •         结构化数据
  •         非结构化数据
  •         半结构化数据

Velocity:快速化

value:价值密度低

2003年,Google公司发表论文The Google File System,介绍GFS分布式文件系统,主要讲解海量数据胡可靠存储方法

2004年,Google公司发表论文 MapReduce:Simplified Data Processing on Large Clusters,介绍并行计算模式MapReduce,海量数据的高效计算方法。

2006年,Google发表国Bigtable:A distributed Storage System for Structured Data,介绍Google的大表Bigtable的设计。Bigtable是Google公司的分布式数据存储系统,是用来处理海量数据的一种非关系型数据库。

GFS思想:

数据节点:数据块

管理节点:数据元文件(文件名,文件块,文件块所在数据节点)

数据块保持:可靠性和可用性

2.hadoop实验环境搭建

1.加载镜像

实验使用的Docker镜像保存在/cg/images/hadoop_node.tar.gz文件中,执行如下命令加载该镜像:

docker load < /cg/images/hadoop_node.tar.gz

用来将一个 Docker 镜像从 .tar.gz 压缩包加载到本地的 Docker 环境中的。

2.启动实验容器

执行如下4条命令,启动4个名称分别为master、slave1、slave2、slave3的docker容器用于实验:

docker run --name master --privileged --ulimit nofile=65535:65535 --hostname master --ip 172.17.0.2 --add-host=slave1:172.17.0.3  --add-host=slave2:172.17.0.4 --add-host=slave3:172.17.0.5 -itd -v /cgsrc:/cgsrc:ro -v /headless/course/:/course hadoop_node /service_start.shdocker run --name slave1 --privileged --ulimit nofile=65535:65535 --hostname slave1 --ip 172.17.0.3 --add-host=master:172.17.0.2  --add-host=slave2:172.17.0.4 --add-host=slave3:172.17.0.5  -itd -v /cgsrc:/cgsrc:ro hadoop_node /service_start.shdocker run --name slave2 --privileged --ulimit nofile=65535:65535 --hostname slave2 --ip 172.17.0.4 --add-host=master:172.17.0.2 --add-host=slave1:172.17.0.3  --add-host=slave3:172.17.0.5 -itd -v /cgsrc:/cgsrc:ro hadoop_node /service_start.shdocker run --name slave3 --privileged --ulimit nofile=65535:65535 --hostname slave3 --ip 172.17.0.5 --add-host=master:172.17.0.2 --add-host=slave1:172.17.0.3  --add-host=slave2:172.17.0.4 -itd -v /cgsrc:/cgsrc:ro hadoop_node /service_start.sh

更新一下

docker run --name master --privileged --ulimit nofile=65535:65535 --hostname master --ip 172.18.0.2 --add-host=slave1:172.18.0.3 --add-host=slave2:172.18.0.4 --add-host=slave3:172.18.0.5 -itd -v /cgsrc:/cgsrc:ro -v /headless/course/:/course hadoop_node /service_start.sh docker run --name slave1 --privileged --ulimit nofile=65535:65535 --hostname slave1 --ip 172.18.0.3 --add-host=master:172.18.0.2 --add-host=slave2:172.18.0.4 --add-host=slave3:172.18.0.5 -itd -v /cgsrc:/cgsrc:ro hadoop_node /service_start.sh docker run --name slave2 --privileged --ulimit nofile=65535:65535 --hostname slave2 --ip 172.18.0.4 --add-host=master:172.18.0.2 --add-host=slave1:172.18.0.3 --add-host=slave3:172.18.0.5 -itd -v /cgsrc:/cgsrc:ro hadoop_node /service_start.sh docker run --name slave3 --privileged --ulimit nofile=65535:65535 --hostname slave3 --ip 172.18.0.5 --add-host=master:172.18.0.2 --add-host=slave1:172.18.0.3 --add-host=slave2:172.18.0.4 -itd -v /cgsrc:/cgsrc:ro hadoop_node /service_start.sh

这些 docker run 命令用于启动多个 Docker 容器,配置它们的主机名、IP 地址、主机映射、文件挂载等,并运行一个启动脚本 /service_start.sh。这些容器似乎用于搭建一个 Hadoop 集群,其中包含一个 master 节点和三个 slave 节点。

删除节点的命令为:

docker rm -f master slave1 slave2 slave3

2.1.master节点

docker run --name master --privileged --ulimit nofile=65535:65535 --hostname master --ip 172.17.0.2 --add-host=slave1:172.17.0.3  --add-host=slave2:172.17.0.4 --add-host=slave3:172.17.0.5 -itd -v /cgsrc:/cgsrc:ro -v /headless/course/:/course hadoop_node /service_start.sh

  • --name master:将容器命名为 master

  • --privileged:赋予容器特权模式,允许它访问主机上的所有设备。

  • --ulimit nofile=65535:65535:设置文件描述符的软限制和硬限制为 65535。

  • --hostname master:设置容器的主机名为 master

  • --ip 172.17.0.2:为容器分配静态 IP 地址 172.17.0.2

  • --add-host=slave1:172.17.0.3:在容器的 /etc/hosts 文件中添加一条记录,将 slave1 映射到 172.17.0.3

  • --add-host=slave2:172.17.0.4:将 slave2 映射到 172.17.0.4

  • --add-host=slave3:172.17.0.5:将 slave3 映射到 172.17.0.5

  • -itd:以交互模式运行容器,并分配一个伪终端,同时在后台运行(-d)。

  • -v /cgsrc:/cgsrc:ro:将主机上的 /cgsrc 目录挂载到容器的 /cgsrc 目录,并以只读模式(ro)挂载。

  • -v /headless/course/:/course:将主机上的 /headless/course/ 目录挂载到容器的 /course 目录。

  • hadoop_node:使用的 Docker 镜像名称。

  • /service_start.sh:容器启动后执行的脚

2.2 slave1 节点

  • --name slave1:将容器命名为 slave1

  • --hostname slave1:设置容器的主机名为 slave1

  • --ip 172.17.0.3:为容器分配静态 IP 地址 172.17.0.3

  • --add-host=master:172.17.0.2:在容器的 /etc/hosts 文件中添加一条记录,将 master 映射到 172.17.0.2

  • 其他参数与 master 节点类似。

2.3 slave2 节点

 2.4. slave3 节点

2.5 查看docker ps

docker ps 是一个 Docker 命令,用于列出当前正在运行的容器。它会显示容器的基本信息,例如容器 ID、镜像名称、启动命令、创建时间、状态、端口映射等。 

执行

docker ps

 解释:

 2.6 在终端使用如下命令进入容器中:

比如进入master容器可以使用命令:

docker exec -it --privileged master /bin/bash

3.java环境安装

在容器master中使用如下命令从资源文件夹/cgsrc中将JDK安装包复制到/usr/local/java目录下:

mkdir /usr/local/java
cp /cgsrc/jdk-8u171-linux-x64.tar.gz /usr/local/java/

 我们接下来切换到/usr/local/java目录下,将安装包解压,并删除用过的tar文件。

cd /usr/local/java/
tar -zxvf jdk-8u171-linux-x64.tar.gz
rm -f jdk-8u171-linux-x64.tar.gz

此时/usr/local/java目录下仅有一个jdk1.8.0_171目录,这就是Java主目录。

接下来需要配置JAVA_HOME环境变量,为了方便起见,这里直接在~/.bachrc这个文件中进行设置,采用这种配置方式时,只对当前登录的单个用户生效,当该用户登录以及每次打开新的Shell时,它的环境变量文件.bashrc会被读取。输入下面命令打开当前登录用户的环境变量配置文件.bashrc

vim ~/.bashrc

在文件最后面添加如下3行(注意等号前后不能有空格),然后保存退出vim:

export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

 

 接下来让环境变量生效,执行如下代码:

source ~/.bashrc
scp -r root@master:/usr/local/java root@slave1:/usr/local/java

4.ssh无密码登陆

需要让master节点可以SSH⽆密码登录到各个slave节点上。

⾸先,⽣成master节点的公钥,如果之前已经⽣成过公钥,必须删除原来的公钥,重新⽣成⼀次。具体命令如下:

cd ~/.ssh            #如果没有该目录,先执行一次 ssh localhost,密码默认为83953588abc
rm -f ./id_rsa*        #删除之前生成的公钥
ssh-keygen -t rsa    #执行该命令后,遇到提示信息,均按Enter即可

 下面这个命令是用于将一个公钥文件(id_rsa.pub)的内容追加到另一个文件(authorized_keys)中。具体来说,它的作用是将 SSH 公钥添加到授权密钥文件中,从而允许使用对应的私钥进行无密码登录。

为了让master节点能⽆密码SSH登录到本机,需要在master节点上执⾏如下命令:

cat ./id_rsa.pub >> ./authorized_keys

5.配置集群环境

vim workers

 

7.测试:

随便在那个文件夹中,进行如下操作

/input的路径在这个文件夹的完整路径是:hdfs://<namenode-host>:<port>/input

  • <namenode-host> 是 NameNode 的主机名或 IP 地址。

  • <port> 是 HDFS 的端口号(默认是 9820)。

cd share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-3.4.0.jar wordcount /input/data.txt /output

hdfs dfs -cat /output/part-r-00000

问题:

更改mapred-site.xml文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License. See accompanying LICENSE file.
--><!-- Put site-specific property overrides in this file. --><configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>master:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>master:19888</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value></property>
</configuration>

 在原本的文档上增加了这些

<property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>
<property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>
<property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${full path of your hadoop distribution directory}</value>
</property>

export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoopexport HADOOP_CLASSPATH=/usr/local/hadoop/share/hadoop/mapreduce/*:/usr/local/hadoop/share/hadoop/mapreduce/lib/*:${HADOOP_CLASSPATH}

第三周

1.

scp -r root@master:/usr/local/java root@slave1:/usr/local/java

 scp克隆  

root@master:/usr/local/java:原本要被复制的文件

root@slave1:/usr/local/java:粘贴的地方

2.ssh无密码登录

生成密钥对

ssh-keygen -t rsa 

 cat拼接,./id_rsa.pub  添加到./authorized_keys里面

cat ./id_rsa.pub >> ./authorized_keys

 ssh文件下

known_hosts记录ssh访问过计算机的公钥
id_rsa生成的私钥
id_rsa.pub生成的公钥
authorized_keys存放授权过的无密码登录服务器公钥

hadoop安装

cp /cgsrc/hadoop-3.4.0.tar.gz /usr/local/

1.bin: 存放操作命令,具体包含如下图(hdfs,mapred,yarn)

2.etc:所有配置文件

3.include:头文件

4.lib:本地库(native库)压缩的动态链接库

5.libexec:拓展库

6.sbin:集群相关的命令

7.share:学习的资料,文档

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

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

相关文章

Pandas数据清洗实战之清洗猫眼电影

本次案例所需要用到的模块 pandas(文件读取保存 操作表格的模块) 将上次Scrapy爬取下来的文件 做个数据清洗 变成我们想要的数据 确定目的&#xff1a;将此文件中的duration字段中的分钟 和publisher_time上映去掉 只保留纯数值 数据清洗题目如下: 修复 publish_time列中的错…

UDP-网络编程/socket编程

一&#xff0c;socket相关接口 1&#xff0c;socket 我们来介绍socket编程的第一个接口&#xff1a;socket&#xff0c;它需要用到的头文件如图&#xff1a; 其中domain表示域或者协议家族&#xff1a; 本次我就用AF_INET&#xff08;ipv4&#xff09;来做演示 type参数表示…

《人月神话》:软件工程的成本寓言与生存法则

1975年&#xff0c;Fred Brooks在《人月神话》中写下那句振聋发聩的断言——“向进度落后的项目增加人力&#xff0c;只会让进度更加落后”——时&#xff0c;他或许未曾料到&#xff0c;这一观点会在半个世纪后的人工智能与云原生时代&#xff0c;依然如达摩克利斯之剑般悬在每…

ROS云课基础题库-01C++案例-甜甜圈

效率是核心&#xff0c;但效率高的教程会忽略掉非常多的细节。 解决问题的思路和细节对于一个问题的有效求解至关重要。 资料 云课五分钟-02第一个代码复现-终端甜甜圈C-CSDN博客 从云课五分钟到五秒钟焦虑的甜甜圈向前冲-CSDN博客 说明 复现重要性没有那么大&#xff0c;…

Oracle RHEL 5.8 安装 - 呆瓜式

前言 Red Hat Enterprise Linux Server release 5.8 为企业级 SO 镜像。绝大部分企业如果使用Oracle数据库均会使用其企业版 OS &#xff0c;能够很好的支持数据库的运行 文档目的 当前文档仅针对 VMware Workstation Pro 进行 OS 介质安装。 镜像下载地址 注意&#xff1…

【数据分析大屏】基于Django+Vue汽车销售数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅

目录 一、项目背景 二、项目创新点 三、项目功能 四、开发技术介绍 五、项目功能展示 六、权威视频链接 一、项目背景 汽车行业数字化转型加速&#xff0c;销售数据多维分析需求激增。本项目针对传统报表系统交互性弱、实时性差等痛点&#xff0c;基于DjangoVue架构构建…

软件IIC和硬件IIC的主要区别,用标准库举例!

学习交流792125321&#xff0c;欢迎一起加入讨论&#xff01; 在学习iic的时候&#xff0c;我们经常会遇到软件 IC和硬件 IC,它两到底有什么区别呢&#xff1f; 软件 IC&#xff08;模拟 IC&#xff09;和硬件 IC&#xff08;外设 IC&#xff09;是两种实现 IC 总线通信的方式…

CSS-三大特性,盒子模型,圆角边框,盒子阴影,文字阴影

一、 CSS 的三大特性 CSS 有三个非常重要的三个特性:层叠性&#xff64;继承性&#xff64;优先级&#xff61; 1.层叠性 相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式&#xff61;层叠性主要解决样式冲突 的问题 层叠性原则: 样式冲突,遵循的原…

基于 Qwen2.5-14B + Elasticsearch RAG 的大数据知识库智能问答系统

AI 时代&#xff0c;如何从海量私有文档&#xff08;非公开&#xff09;中快速提取精准信息成为了许多企业和个人的迫切需求。 本文介绍了一款基于 Qwen2.5-14B 大语言模型&#xff08;换成 DeepSeek 原理一致&#xff09;与 Elasticsearch 搜索引擎构建的大数据知识库智能问答…

算法手记1

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 一.NC313 两个数组的交集 题目详情: 题目思路: 解题代码: 二.AB5 点击消除 题目详情: 题目思路: 解题代码: 结语 一.NC313 两个数组的交集 牛客网题目链接(点击即可跳转)…

JMeter使用BeanShell断言

BeanShell简介 BeanShell是使用Java语法的一套脚本语言&#xff0c;在JMeter的多种组件中都有BeanShell的身影&#xff0c;如&#xff1a; 定时器&#xff1a;BeanShell Timer前置处理器&#xff1a;BeanShell PreProcessor采样器&#xff1a;BeanShell Sampler后置处理器&am…

【技海登峰】Kafka漫谈系列(五)Java客户端之生产者Producer核心组件与实现原理剖析

【技海登峰】Kafka漫谈系列(五)Java客户端之生产者Producer核心组件与实现原理剖析 向Kafka Broker服务节点中发送主题消息数据的应用程序被称为生产者,生产者与消费者均属于Kafka客户端,几乎所有主流语言都支持调用客户端API。官方提供了基于Java实现的kafka-clients,用于…

【eNSP实战】配置交换机端口安全

拓扑图 目的&#xff1a;让交换机端口与主机mac绑定&#xff0c;防止私接主机。 主机PC配置不展示&#xff0c;按照图中配置即可。 开始配置之前&#xff0c;使用PC1 ping 一遍PC2、PC3、PC4、PC5&#xff0c;让交换机mac地址表刷新一下记录。 LSW1查看mac地址表 LSW1配置端…

AWS Bedrock 正式接入 DeepSeek-R1 模型:安全托管的生成式 AI 解决方案

亚马逊云科技&#xff08;AWS&#xff09;于 2024 年 1 月 30 日 宣布&#xff0c;DeepSeek-R1 模型 正式通过 Amazon Bedrock 平台提供服务&#xff0c;用户可通过 Bedrock Marketplace 或自定义模型导入功能使用该模型。 DeepSeek-R1&#xff0c;其安全防护机制与全面的 AI 部…

数据结构之线性表

目录 1 简介 2 线性表的基本概念 3 顺序存储的线性表 3.1 定义线性表结构 3.2 初始化线性表 3.3 插入元素 3.4 删除元素 3.5 查找元素 3.6 扩容操作 3.7 打印线性表 4 线性表的应用 5 总结 1 简介 线性表是数据结构中最基础且常用的一种结构&#xff0c;它是由一…

c#面试题12

1.ApplicationPool介绍一下 c#里没有 2.XML 可扩展标记语言&#xff0c;一般以.xml文件格式的形式存在。可用于存储结构化的数据 3.ASP.NET的用户控件 将原始的控件&#xff0c;用户根据需要进行整合成一个新的控件 4.介绍一下code-Behind 即代码后置技术&#xff0c;就是…

英语学习(GitHub学到的分享)

【英语语法&#xff1a;https://github.com/hzpt-inet-club/english-note】 【离谱的英语学习指南&#xff1a;https://github.com/byoungd/English-level-up-tips/tree/master】 【很喜欢文中的一句话&#xff1a;如果我轻轻松松的学习&#xff0c;生活的幸福指数会提高很多…

C++蓝桥杯基础篇(十一)

片头 嗨~小伙伴们&#xff0c;大家好&#xff01;今天我们来学习C蓝桥杯基础篇&#xff08;十一&#xff09;&#xff0c;学习类&#xff0c;结构体&#xff0c;指针相关知识&#xff0c;准备好了吗&#xff1f;咱们开始咯~ 一、类与结构体 类的定义&#xff1a;在C中&#x…

一次解决Andriod Studio Build Gradle很慢或报错下载失败等问题

Andriod Studio创建项目时&#xff0c;Build gradle一直在下载或者卡住或者很慢&#xff0c;反正就是会在这里出现各自问题的&#xff0c;请看这里&#xff01; 来来来&#xff0c;全体目光向我看齐&#xff01;&#xff01;&#xff01;保准让你解决掉这个问题&#xff01;这…

接口自动化入门 —— swagger/word/excelpdf等不同种类的接口文档理解!

在接口自动化测试中&#xff0c;接口文档是开发和测试人员理解接口功能、参数和交互方式的重要依据。常见的接口文档类型包括Swagger、Word、Excel和PDF。 1. Swagger文档 Swagger是一种用于描述和定义RESTful API的规范&#xff0c;使用JSON或YAML格式来定义API的输入参数、输…