2.docker的安装
docker安装教程
第一步:安装一组工具
1sudo yum install -y yum-utils
第二步设置yum仓库地址
12sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/dockerce.reposudo yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo
第三步 更新yum缓存
1sudo yum makecache fast #yum 是包管理器
第四步 安装新版docker
1sudo yum install -y docker-ce docker-ce-cli containerd.io
第5步 安装完成检测安装状态
1234指令:docker info// 查看版本docker -v
第6步镜像加速
12345678910//加速地址https://ol7717dv.mirror.aliyuncs ...
3.多表关系
4-1 多表关系介绍12345678-- 为什么有多表关系(把数据存在一张表的弊端) 1. 组织结构不清晰 2. 浪费硬盘空间 3. 扩展性差-- 什么是多表关系 把不同的数据存放在不同的表中时,需要将这些表通过某种方式建立关联,关联建好之后,这些表之间就存在关系了,在MySQL中表与表之间的关系是通过外键来建立的,表与表之间的关系共有三种,分别是一对一、一对多和多对多。-- 如何使用多表关系 请大家看后续的笔记哦😊
4-2 如何确定表关系1234567891011121314151617-- 如何确定表和表之间的关系 换位思考-- 案例 图书 作者 出版社 作者信息 ? 它们之间的关系是什么 图书和出版社之间的关系: 站在图书的角度,一本书只能由授权一个出版社出版, 一个出版社可以出版多本书籍, 所以图书和出版社是一对多的关系 作者和作者信息之间的关系: 站在作者的角度,一个作者只能有一个作者信息, 一个作者信息只能对应一个作者, 作者和作者信息是一对一的关系 图书和作者之间的关系: 站在图书的角度,一本书的作者可以有多个也可以有一个, 站在作者的角度,一个作者 ...
2.HDFS常用指令
HDFS 常用 shell 命令1. 显示当前目录结构
123456# 显示当前目录结构hadoop fs -ls <path># 递归显示当前目录结构hadoop fs -ls -R <path># 显示根目录下内容hadoop fs -ls /
2. 创建目录
1234# 创建目录hadoop fs -mkdir <path> # 递归创建目录hadoop fs -mkdir -p <path>
3. 删除操作
1234# 删除文件hadoop fs -rm <path># 递归删除目录和文件hadoop fs -rm -R <path>
4. 从本地加载文件到 HDFS
123# 二选一执行即可hadoop fs -put [localsrc] [dst] hadoop fs - copyFromLocal [localsrc] [dst]
5. 从 HDFS 导出文件到本地
123# 二选一执行即可hadoop fs -get [dst] [localsrc] hadoo ...
1.HDFS基础概念
一.HDFS分布式文件系统基础1. 1 文件系统,分布式文件系统1.1.1 文件系统定义
文件系统是一种存储和组织数据的方法,实现了数据的存储、分级组织、访问和获取等操作,使得用户对文件访问和查找变得容易;
文件系统使用树形目录的抽象逻辑概念代替了硬盘等物理设备使用数据块的概念,用户不必关心数据底层存在硬盘哪里,只需要记住这个文件的所属目录和文件名即可;
文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。
1.1.2 传统的文件系统
所谓传统常见的文件系统更多指的的单机的文件系统,也就是底层不会横跨多台机器实现。比如windows操作系统 上的文件系统、Linux上的文件系统、FTP文件系统等等。
这些文件系统的共同特征包括:
带有抽象的目录树结构,树都是从/根目录开始往下蔓延;
树中节点分为两类:目录和文件;
从根目录开始,节点路径具有唯一性。
1.2 数据 .元数据
数据
指存储的内容本身,比如文件、视频、图片等,这些数据底层最终是存储在磁盘等存储介质上的,一般用户无需关心, 只需要基于目录树进行增删改查即可,实际针对数据的操作由文 ...
5.Zookeeper单机环境和集群环境搭建
Zookeeper单机环境和集群环境搭建一、单机环境搭建1.1 下载下载对应版本 Zookeeper,这里我下载的版本 3.4.14。官方下载地址:https://archive.apache.org/dist/zookeeper/
1wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
1.2 解压1tar -zxvf zookeeper-3.4.14.tar.gz
1.3 配置环境变量1vim /etc/profile
添加环境变量:
12export ZOOKEEPER_HOME=/usr/app/zookeeper-3.4.14export PATH=$ZOOKEEPER_HOME/bin:$PATH
使得配置的环境变量生效:
1source /etc/profile
1.4 修改配置进入安装目录的 conf/ 目录下,拷贝配置样本并进行修改:
1cp zoo_sample.cfg zoo.cfg
指定数据存储目录和日志文件目录(目录不用预先创 ...
2.MapReduce
一.Hadoop MapReduce1.1 理解Map Reduce思想
MapReduce的思想核心是“先分再合,分而治之”。
所谓“分而治之”就是把一个复杂的问题,按照一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解 决,分别找出各部分的结果,然后把各部分的结果组成整个问题的最终结果。
这种思想来源于日常生活与工作时的经验。即使是发布过论文实现分布式计算的谷歌也只是实现了这种思想,而不 是自己原创。
Map表示第一阶段,负责“拆分”:即把复杂的任务分解为若干个“简单的子任务”来并行处理。可以进行拆分的 前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。
Reduce表示第二阶段,负责“合并”:即对map阶段的结果进行全局汇总。
这两个阶段合起来正是MapReduce思想的体现。
一个比较形象的语言解释MapReduce
要数停车场中的所有停放车的总数量。 你数第一列,我数第二列…这就是Map阶段,人越多,能够同时数车的人就越多,速度就越快。 数完之后,聚到一起,把所有人的统计数加在一起。这就是Reduce合并汇总阶段。
1.2如何对付大数据 ...
Hive搭建教程
Hive3安装
Mysql安装
卸载Centos7自带的mariadb
123456[root@node3 ~]# rpm -qa|grep mariadbmariadb-libs-5.5.64-1.el7.x86_64[root@node3 ~]# rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps[root@node3 ~]# rpm -qa|grep mariadb [root@node3 ~]#
12rpm -e mariadb-libs --nodeps
安装mysql
1234567891011121314151617mkdir /export/software/mysql#上传mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar 到上述文件夹下 解压tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar#执行安装yum -y install libaio[root@node3 my ...
数据仓库基本概念
一.数据仓库基本概念1.1 数仓的概念
数据仓库(英语:Data Warehouse,简称数仓、DW),是一个用于存储、分析、报告的数据系统。
数据仓库的目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持(Decision Support)。
1.2 数仓专注分析
数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统;
同时数据仓库自身也不需要“消费”任何的数据,其结果开放给各个外部应用使用;
这也是为什么叫“仓库”,而不叫“工厂”的原因。
联机事务处理系统(OLTP)正好可以满足上述业务需求开展, 其主要任务是执行联机事务处理。其基本特征是前台 接收的用户数据可以立即传送到后台进行处理,并在很短的时间内给出处理结果。
关系型数据库(RDBMS)是OLTP典型应用,比如:Oracle、MySQL、SQL Server等。
OLTP环境开展分析可行吗?
可以,但是没必要
OLTP系统的核心是面向业务,支持业务,支持事务。所有的业务操作可以分为读、写两种操作,一般来说读的压 力明显大于写的压力。如果在OLTP环境直接开展各种分析,有以下问题需要考虑 ...
6.基于Zookeeper环境搭建Hadoop高可用集群
基于zookeeeper搭建Hadoop高可用集群一、高可用简介Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多,所以它的实现也更加复杂,故下面先进行讲解:
1.1 高可用整体架构HDFS 高可用架构如下:
HDFS 高可用架构主要由以下组件所构成:
Active NameNode 和 Standby NameNode:两台 NameNode 形成互备,一台处于 Active 状态,为主 NameNode,另外一台处于 Standby 状态,为备 NameNode,只有主 NameNode 才能对外提供读写服务。
主备切换控制器 ZKFailoverController:ZKFailoverController 作为独立的进程运行,对 NameNode 的主备切换进行总体控制。ZKFailoverController 能及时检测到 NameNode 的健康状况,在主 NameNode 故障时借助 Z ...
4.单机部署Hadoop
单机部署Hadoop一、前置条件Hadoop 的运行依赖 JDK,需要预先安装,安装步骤见:
123456789101112131415161718# JDK 1.8安装 上传 jdk-8u241-linux-x64.tar.gz到/export/server/目录下cd /export/server/tar -zxvf jdk-8u241-linux-x64.tar.gz#解压完成之后进行重命名,在/export/server/这个路径下使用命令mv jdk-1.1.0 jdk #配置环境变量 vim /etc/profile export JAVA_HOME=/export/server/jdk export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar #重新加载环境变量文件 source /etc/profile #验证jdk 是否安装成功 java -version
二、配置免密登录Hadoop 组件之间需要基于 SSH 进行通 ...
openstack搭建
一.OpenEuler镜像1.1 镜像
下载j最新版的OpenEuler,在 https://repo.huaweicloud.com/openeuler/ 下载 openEuler-22.03-LTS-x86_64-dvd.iso
采用默认安装(最小化安装)即可,其中超级用户root的密码设置为 openeuler!23456 (系统要求用户密码长度至少8位,至少有3种字符)。
控制节点 controller
IP:10.0.0.10
认证服务镜像服务监控服务计算服务网络服务Dashboard服务
httpd, mariadb, memcached, rabbitmq-server, etcd, openstack-glance-api, openstack-nova-api, openstack-nova-scheduler, openstack-nova-conductor, openstack-nova-novncproxy,neutron-server,neutron-linuxbridge-agent,neutron-dhcp-agent,neutron-me ...
1.初始python
初识PythonPython简介Python的历史
1989年圣诞节:Guido von Rossum开始写Python语言的编译器。
1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的支持,还有对列表、字典等核心数据类型,同时支持以模块为基础来构造应用程序。
1994年1月:Python 1.0正式发布。
2000年10月16日:Python 2.0发布,增加了完整的垃圾回收,提供了对Unicode的支持。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
2008年12月3日:Python 3.0发布,它并不完全兼容之前的Python代码,不过因为目前还有不少公司在项目和运维中使用Python 2.x版本,所以Python 3.x的很多新特性后来也被移植到Python 2.6/2.7版本中。
目前我使用的Python 3.7.x的版本是在2018年发布的,Python的版本号分为三 ...
2.基础元素
语言元素指令和程序计算机的硬件系统通常由五大部件构成,包括:运算器、控制器、存储器、输入设备和输出设备。其中,运算器和控制器放在一起就是我们通常所说的中央处理器,它的功能是执行各种运算和控制指令以及处理计算机软件中的数据。我们通常所说的程序实际上就是指令的集合,我们程序就是将一系列的指令按照某种方式组织到一起,然后通过这些指令去控制计算机做我们想让它做的事情。今天我们大多数时候使用的计算机,虽然它们的元器件做工越来越精密,处理能力越来越强大,但究其本质来说仍然属于“冯·诺依曼结构”的计算机。“冯·诺依曼结构”有两个关键点,一是指出要将存储设备与中央处理器分开,二是提出了将数据以二进制方式编码。二进制是一种“逢二进一”的计数法,跟我们人类使用的“逢十进一”的计数法没有实质性的区别,人类因为有十根手指所以使用了十进制(因为在数数时十根手指用完之后就只能进位了,当然凡事都有例外,玛雅人可能是因为长年光着脚的原因把脚趾头也算上了,于是他们使用了二十进制的计数法,在这种计数法的指导下玛雅人的历法就与我们平常使用的历法不一样,而按照玛雅人的历法,2012年是上一个所谓的“太阳纪”的最后一年,而20 ...
3.分支结构
分支结构应用场景迄今为止,我们写的Python代码都是一条一条语句顺序执行,这种代码结构通常称之为顺序结构。然而仅有顺序结构并不能解决所有的问题,比如我们设计一个游戏,游戏第一关的通关条件是玩家获得1000分,那么在完成本局游戏后,我们要根据玩家得到分数来决定究竟是进入第二关,还是告诉玩家“Game Over”,这里就会产生两个分支,而且这两个分支只有一个会被执行。类似的场景还有很多,我们将这种结构称之为“分支结构”或“选择结构”。给大家一分钟的时间,你应该可以想到至少5个以上这样的例子,赶紧试一试。
if语句的使用在Python中,要构造分支结构可以使用if、elif和else关键字。所谓关键字就是有特殊含义的单词,像if和else就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名(事实上,用作其他的标识符也是不可以)。下面的例子中演示了如何构造一个分支结构。
12345678910111213"""用户身份验证Version: 0.1Author: 骆昊"""username = input('请输 ...
4.循环语句
循环结构应用场景我们在写程序的时候,一定会遇到需要重复执行某条或某些指令的场景。例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向移动的指令。在这个场景中,让机器人向球门方向移动就是一个需要重复的动作,当然这里还会用到上一课讲的分支结构来判断机器人是否持球以及是否进入射门范围。再举一个简单的例子,如果要实现每隔1秒中在屏幕上打印一次“hello, world”并持续打印一个小时,我们肯定不能够直接把print('hello, world')这句代码写3600遍,这里同样需要循环结构。
循环结构就是程序中控制某条或某些指令重复执行的结构。在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。
for-in循环如果明确的知道循环执行的次数或者要对一个容器进行迭代(后面会讲到),那么我们推荐使用for-in循环,例如下面代码中计算1~100求和的结果($\displaystyle \sum \limits_{n=1}^{100}n$)。
1234567891011"&qu ...
爬虫
爬虫1.1 爬虫的定义
爬虫是指使用代码模拟用户批量发送网络请求,批量获取数据的行为。
1.2 urllib的基本使用12345678910# 使用urllib来获取百度首页的源码import urllib.request# 1.定义一个urlurl = "http://www.baidu.com"# 模拟浏览器向服务器发送请求,response响应response = urllib.request.urlopen(url)# 获取响应的源码,content内容 read()返回二进制的字节数据,要将二进制数据转化成字符,这个过程叫解码content = response.read().decode('utf-8')#打印数据print(content)
1.3 urllib 一个类型6个方法12345678910111213141516171819202122232425262728293031323334coding: 'utf8'import urllib.requesturl = 'http://www. ...
bs4基础语法
1.1 .BeautifulSoup12345671.BeautifulSoup简称: bs42.什么是BeatifulSoup?Beautifulsoup,和lxml一样,是一个html的解析器,主要功能也是解析和提取数据3.优缺点?缺点:效率没有lxml的效率高优点:接口设计人性化,使用方便
1.1.2安装以及创建123456789101.安装pip install bs42.导入from bs4 import BeautifulSoup3.创建对象服务器响应的文件生成对象 soup = BeautifulSoup(response.read().decode(),'lxml')本地文件生成对象soup = BeautifulSoup(open('1.html'),'lxml')注意:默认打开文件的编码格式gbk所以需要指定打开编码格式
1.1.3 节点查询123456789101112131415161718192021222324252627282930313233341.根据标签名查找节点soup.a 【 ...