杂记

数据中台主要的组成部分
1: 数据仓库
2: BI( 商务智能-数据可视化)
3: 前后端
4: 元数据管理

Flink
1:datasource
hdfs
kafka
Collection
自定义

 2:sink
 	hdfs_sink
 	kafka_sink(String,key_value) 
 	redis_sink
 	自定义



 flink中没有 算子的划分都是transformation算子。
 3:transformations
 	addSource
 	
 	keyBy[DataStream --->keyedStream]
 	用key对数据进行重新分区


 	reduce[keyedStream --->DataStream]只接受keyedStream类型的数据,对相同的key进行数据的独立计算
 	Aggregationsp[keyedStream --->DataStream] 有sum算子,min,max, minBy ,maxBy



 	map
 	flatmap
 	

 	union	连接相同类型格式的数据,可以连接多个数据集
 	connect
 	它只可以连接两中类型的数据集 	,连接不同类型格式的数据,数据不能直接print,因为它的类型是ConnectedStreams要使用其他的算子使他装换为DataStream。



 	 split与Select来划分数据集
 	 	split 对数据集进行打标签 
 	 	真正划分的是select,select根据标签来进行划分数据集(分区)

 	filter过滤
 	设置条件对数据进行过滤,不满足的条件的过滤掉


 	print

 	
 	addSink

函数类和富函数类

数据库多活( 除了会备份计算资源如何计算的ha)
两个方面的
1: 容灾
当系统由于内部的或外部的原因导致数据库出现部分不可用,容灾最常用的手段对数据库进行备份。使短时间的恢复可用 。
2: 提高处理能力
备份的数据,可以分担服务器的访问压力(比如提供数据查询读数据的业务)大大的提高了数据的处理能力。

如何提高应用的处理能力
1:读写分离
使用备份数据来提供数据读的服务,提高了资源的利用

2:单元化
加入更多的机房资源。

ETL(数据抽取,数据装换,数据导入)

ETL与送快递一样,ETL是把数据精确准确地送到目标库中(快递要在保证物品在无损失的情况下,按时送到用户)

数据仓库: 主要是为分析报告和提供决策支持而创建。

数据库和数据仓库区别:
数据库(OLTP)和 数据仓库(OLAP)

OLTP是操作型:联机事务处理
	提供数据库的增删查改。



OLAP是分析型:联机分析处理
	对历史数据进行数据分析,以支持决策
数据库是捕获数据的,数据仓库是分析数据的
数据库是面向事务的,数据仓库是面向主题的
数据库一般避免冗余数据的,数据仓库是有意引入一定的冗余的。
数据库是存储的是业务数据,数据仓库是存储历史数据

数据仓库的分层
1:源数据直接来源与其他的多种的源数据(没有经过清理的)。
2:使用ETL工具进行数据传输(经过简单的清洗和处理)。
3:提供上层application使用的数据。

ETL是数据仓库的流水线 ,是数据仓库的血液,数据仓库的管理和维护主要是维护ETL的正常和稳定。

Azkaban工作任务调度器
Azkaban架构
webserver: 工作的分发 ,调度,
executeserver: 执行工作
mysql:部分状态同步,数据的共享,

Hadoop主要的配置文件
hadoop-env.sh
hadoop的运行环境(java环境)
core-site.xml
hadoop文件系统的位置
yarn-site.xml
指定ResourceManager的角色的地址
hdfs-site.xml
hdfs的副本数
secondary namenode 所在主机的ip和端口
mapred-site.xml
指定mr运行的框架为yarn,默认是local

hdfs的垃圾桶机制
默认是0, 如果误删文件的话,操作是不可逆的,文件是无法再次恢复的
加上这个垃圾桶配置的话,就可以是操作的可逆性。
配置core-site.xml

fs.trash.interval
1440

时间单位为分钟

hadoop1.x与hadoop2.x和hadoop3.x 区别

hadoop安全模式
进入
hdfs dfsadmin -safemode enter

 	退出
 		 hdfs dfsadmin	-safemode leave

hdfs dfsadmin -safemode enter
hads dfsadmin -safemode leave

hadoop集群扩容和缩容

动态扩容
在数据日益增长的情况下,要对集群的动态资源进行扩容(在不影响正常的业务员的情况下,对集群进行扩容)

动态缩容
退役datanode某些数据节点,或停掉某些节点hadoop服务

动态扩容
1:配置host文件
2:ssh
3:在主机的hadoop目录下的slave下添加新的hostname
4:把主节点的hadoop相关文件scp到新节点中
5:启动新的节点中的相关进程
NM yarn-daemon.sh start NodeManager
DN hadoop-daemon.sh start DataNode

hadoop集群管理
1:创建白名单
在hadoop/etc/hadoop/下添加一个文件名为dfs.hosts,不创建dfs.hosts文件,或者内容为null的情况下,默认情况所以的nodedata是都可以连接到namenode的。 
相当与一份白名单,在名单中dfs.hosts中的hostsname是连接namenode的,不在dfs.hosts 文件的名称中的hostsname,是无法连接到namenode的

2:在hdfs-site.xml中进行配置dfs.hosts
<property>
   <name>dfs.hosts</name>
   <value>/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/dfs.hosts</value>
</property>



hdfs的动态均衡
	由于新加入的节点,导致在hadoop集群中,数据是分布不均衡的

动态缩容
在hadoop/etc/hadoop/ 下添加一个文件dfs.hosts.exclude,
在里面加入要退役节点的主机名称或ip
在hdfs-site.xml中引入该文件

dfs.hosts.exclude
/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/dfs.hosts.exclude

dfs.hosts.exclude相当于一个黑名单,在其中的主机无法连接到namenode的

刷新集群
在namenode下执行如下的命令,刷新集群节点的最新情况。
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes

在要退役的节点中执行命令(停止节点中的相关进程。)命令如下:
hadoop -daemon.sh stop datanode
yarn -daemon.sh stop nodeManager

刷新集群
在namenode下执行如下的命令,刷新集群节点的最新情况。
hdfs dfsadmin -refreshNodes
yarn rmadmin -refreshNodes

datanode上做做负载均衡,命令如下:
sbin/start-balancer.sh

如果在hadoop集群中的hdfs-site.xml中配置的副本数为3的话,但是集群中的节点数小于这个数。是不能退役的。

在win10上安装Docker,为什么要安装虚拟机呢?
因为docker是依赖linux内核的,在win上是没有linux系统的所以要安装虚拟机。docker需要运行在虚拟机上的。

hadoop的数据均衡机制
启动balancer任务,来实现datanode中的数据均衡,balancer 会自动的读取各个节点的资源情况 ,根据设置的主机空间使用率差值进行计算平均值,对于远高于这个值的节点我们要把副本数据复制到低于这个平均值的节点。
通过它来实现数据节点的数据均衡。由于磁盘io,网络传输等因素的影响。我们对与比较大的数据块的的迁移是比较耗时的。
为了不影响集群的正常服务,我们会增大数据的复制速度。

集群的默认的传输带宽比较低的1m/s,使用命令行的方式来提高集群的数据传输速度.
hdfs dfsadmin -setBalancerBandwidth 128000000

如果集群比较空闲的网络带宽可以适当的提高数据均衡的效率
如下操作:
提高数据均衡的效率
1:提高数据传输的速度,

dfs.balance.bandwidthPerSec
1048576 =>1M/s

负载均衡命令原理解析
在随意的节点中使用命令:
hadoop balancer -Threshold
hadoop balancer -Threshold 10 参数10 表示各个节点的资源利用率与hadoop集群资源率的平均值在相差在10%左右
参数threshold, 含义: 表示各个节点资源使用率与hadoop集群资源使用率的平均值的差值

	Threshold值很小的话,集群要花费大量的时间和资源来维护集群的负载均衡
	Threshold值很大的话,集群中的各个datanode数据资源利用率与集群总利用率相差较大,维护集群负载均衡耗费小

手动启动负载均衡
start-balancer.sh -t 10%
-t表示最大资源率与最小资源利用率最大的相差在10%左右

https://www.xvideos.com/video44709273/_

	 

定时任务自动执行数据均衡命令
crontab
00 22 * * 5 hadoop balancer -Threshold 5 >>/home/zcb/log/balancer_date +"\%Y\%m\%d".log 2>&1

单节点内部分区平衡性:
hadoop不会自动平衡分区中的数据,只考虑数据的总量。


/data1 100% 100GB
/data2 10% 100GB

hadoop存储数据会尝试将数据存储到这两个分区,因为/data1数据已满,所以它会放弃data1

手动平衡单节点内部分区
1.停掉hdfs集群
2.使用mv命令,将data1中的数据(block,meta)进行转移到其他的分区中

ubuntu 系统安装docker

在Docker中搭建hadoop分布式集群

1:查看系统内核的版本
	  uname -r

2:  修改源 

Yarn 三大组件
ResourceManager
集群资源总的资源管理与调度,任务的分发,收集来自各nodemanager的资源的使用情况,不负责node的具体的资源管理与分配,
yarn-scheduler只接受 application job的请求,为它提供必要的运行资源. 不监控application的运行情况,追踪,启动等
NodeManager
集群中单个节点的资源管理与调度
NodeManager接受applicationMater的container启动 ,停止等请求。
ApplicationMater
集群应用管理,申请应用运行资源的资源,监督应用的成功与失败,管理整个运用的运行状态。
applicationMater是应用的老大,负责应用的启动,停止,应用资源的申请,监督管理application job 的运行

hadoop数据倾balance问题

1:当有多个节点的使用率高的时候,启动hadoop集群的负载均衡时,balance的速度小于数据新增的速度,
有很多的节点都列入到待balancer中,但是急需要balance的轮到的机会极少。
 	 解决方法:
	
	 进行多次的负载均衡操作
		如果有90%以上的资源占有率的有3个,80% 5个, 加入新的datanode后,集群的平均占有率为70%

	第一次,把资源占用率比较高的balance, 它会选择在 >90% 中进行balance
	1)sh start-balancer.sh -threshold  20% 
	二次
	2) sh start-balancer.sh -threshold 10%  
	三次
	3)sh start-balancer.sh -theshold 	5% 


2:balance的速度默认是1M/s,速度是比较慢的。
	解决方法:	
	可以通过命令行的方式来提高速度命令
	1):hdfs dfsadmin -setBalancerBandwidth 52428800
 	
	2):在hdfs-core.xml中配置balance数据传输的速度!

hadoop提供了一个工具DistCp,用于大型集群之间和集群内部并行复制,使用MapReduce框架来实现。
MapReduce框架自动处理并行任务调度,错误检测和恢复

Block pool就是属于单个命名空间的一组block。每一个datanode为所有的block pool存储块。
Datanode是一个物理概念,而block pool是一个重新将block划分的逻辑概念。
Block pool允许一个命名空间在不通知其他命名空间的情况下为一个新的block创建Block ID。

当datanode与Namenode建立联系并开始会话后自动建立Block pool。
每个block都有一个唯一的标识,这个标识我们称之为扩展的块ID(Extended BlockID=BlockID+BlockID)
这个扩展的块ID在HDFS集群之间都是唯一的,这为以后集群归并创造了条件。
Datanode中的数据结构都通过BlockPoolID索引,即datanode中的BlockMap,storage等都通过BPID索引。
在HDFS中,所有的更新、回滚都是以Namenode和BlockPool为单元发生的。
即同一HDFS Federation中不同的Namenode/BlockPool之间没有什么关系。
Hadoop1.x版本中Block Pool的管理功能放在Namenode中,以后Block Pool的管理功能移动的新的功能节点中。

hadoop V1的架构弊端

hadoop V2d的改进

hadoop的

大数据分析

 直方图:



 茎叶图:



 饼图:



 线图:



柱形图:

 
 频率直方图	
 	纵坐标:是频率/组距   频率=频数/总数 
 	横坐标:以组距来分割
 	


 	1 2 2 3 4 5 6 6 7 7 8 
 箱线图
 	中位数:5
 	上四分位数:Q1 = 2 
 	下四分位数:Q3 = 7
 	四分位距:IQR=Q3 - Q1 = 5
	上边缘 :8
	下边缘  : 2 
 	异常点 小于Q1-1.5IQR    大于Q3+1.5IQR  

微服务

sudo add-apt-repository \ “deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs)\stable”

Java Web 三级跳:SSM,SpringBoot 与前后端分离
ssm
spring
spring-mvc
mybatis

mvc 是一种软件的设计模式
model 模型
view 视图
controller 控制器

spring Framework
由spring和spring-mvc 组成

以命令行的方式来创建maven项目 linux会自动的下载它的包
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4

Maven的archetype 类似与一种结构包,内置好了开发项目的结构目录,可以提高开发的效率

修改pom.xml文件
添加依赖包:

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

com.shiyanlou
spring-mvc
1.0-SNAPSHOT
war

spring-mvc Maven Webapp

http://www.shiyanlou.com

org.springframework spring-core 5.1.8.RELEASE org.springframework spring-context 5.1.8.RELEASE org.springframework spring-aop 5.1.8.RELEASE org.springframework spring-webmvc 5.1.8.RELEASE org.springframework spring-web 5.1.8.RELEASE
<!--为 Spring 框架提供 servlet 支持-->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0.1</version>
  <scope>provided</scope>
</dependency>
spring-mvc maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2 org.eclipse.jetty jetty-maven-plugin 9.4.19.v20190610 10 /

配置Spring Framework
src\main\webapp\WEB-INF\web.xml
web.xml是servlet的配置文件,当web容器(项目启动)的时候,会自动的读取这个web.xml文件

DispatchServlet 是spring核心的servlet,负责分发请求到控制器Controller 

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>

  <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <!-- contextConfigLocation 是参数名称,该参数的值包含 Spring MVC 的配置文件路径 -->
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-config.xml</param-value>
    </init-param>

    <!-- 在 Web 应用启动时立即加载 Servlet -->
    <load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
	    <!-- servlet-name 对应上面的 servlet 中的 servlet-name -->
	    <servlet-name>spring</servlet-name>
	    <url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

创建文件src\main\webapp\WEB-INF\spring-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!-- 开启注解配置,使我们可以使用类似 @Controller 这样的注解。
     不然我们需要自己手工配置bean,自己逐一把每一个类写入配置文件,
     那是噩梦,就不要尝试了。
 -->
<mvc:annotation-driven />

<!-- 自动扫描包的范围,spring会在这个package下面扫描带有注解的类,
     把它自动注入(就是 Spring 框架帮你 new 一个类存起来)容器。
 -->
<context:component-scan
        base-package="com.shiyanlou" />

<!-- 如果不配置此项,所有请求都会经过 DispatcherServlet 包括静态资源。
     这样会导致静态资源找不到对应的处理器导致错误。所以我们添加下面的配置,
     这样静态资源会使用 web 默认的 servlet 处理,不会通过 Spring 的
     DispatcherServlet。
-->
<mvc:default-servlet-handler />

<!-- 添加对 jsp 页面的支持 -->
<bean id="viewResolver"
      class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
              value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

在index.jsp中添加相应的代码

Hello!

进入项目中,执行命令:
运行项目:
mvn jetty:run

jetty的默认的访问端口8080

web界面的乱码问题解决
在index.jsp文件中加入:如下代码
<%@ page contentType=“text/html;charset=UTF-8” pageEncoding=“UTF-8”%>

代码 如下
wget https://labfile.oss.aliyuncs.com/courses/1405/course-2.zip
unzip course-2.zip
cd spring-mvc

第三章:
Spring注解
在一开始是没有注解的,但是因为这个每个class都要在Spring-conf.xml中配置Bean,太麻烦了,所以为了简化它
我们使用了注解。

Bean是什么 ?
它是已经实例化好了的类

Student stu = new Student()
这个stu就是Bean,它是实例化好了的

Sparing是如何实例化Bean的呢?
spring-config.xml 文件,大家可以发现那里有 标签,Spring 框架就是通过这个配置文件来实例化类,并放到一个容器里面。

什么是容器呢?
容器可以看成是菜篮子,每个bean就是一种菜,当我们要使用的时候直接去拿即可,不用在使用new 来创建了,直接到容器中取即可,节约了内存空间,节省了代码量。

用于注入Bean的注解
@Autowired 可以用在字段,set方法,构造方法上, 它可以自动注入Spring容器中存在的Bean
如下代码 :
public class Classroom {

@Autowired
public Classroom(Teacher teacher) {
this.teacher = teacher;
}

@Autowired
private Student stu;

private Teacher teacher;

private Location location;

@Autowired
public void setLocation(Location location) {
this.location = location;
}
}

@Qualifier 与@ Autowired一起使用,主要是用来解决Bean相同父类的问题

这个两个Bean都是实现了同一个类。如下代码所示:

@Component
public class Bean1 implements BeanInterface {
//
}
@Component
public class Bean2 implements BeanInterface {
//
}

@Component
public class BeanA {
@Autowired
@Qualifier(“bean1”) //@Autowired和@Qualifier一起使用来指明注入那个Bean,否则系统无法识别的。
private BeanInterface dependency;

}

配置文件注解
@ Configuration 与 @Component 相同, 通常在配置类上使用它。

@Bean
该注解使用在方法上,通过使用这个方法。他会返回来一个Bean,该Bean会被保存在容器中。

其他注解
@Component 表示该类为一个Bean,会被Spring自动实例化放入容器中

@Service 声明该类的主要的业务逻辑

@Controller 声明该类是Controller,配合@RequestMapping注解来使用

@Repository
声明该层为持久层,用于处理 与数据库的CRUD操作,类似与dao

@Transactional

2.5 @Value
该注解用在字段、方法的参数和构造方法的参数上,你可以通过 @Value 来申明默认的值,你也可以通过它来获取配置文件( application.properties )中的值,例如 @Value("#{dataSource.url}") 这样。

2.6 @Component
有此注解的类 Spring 会自动把这个类实例化放入容器。

2.7 @Controller
配合 @RequestMapping 注解使用,声明该类为 Spring 的 Controller,

2.8 @Service
申明该类主要负责业务逻辑,例如注册验证存储逻辑。

2.9 @Repository
申明该类为持久层,用于处理与数据库的 CRUD 操作,类似于 DAO。

2.10 @ControllerAdvice
申明该类用于处理 Controller 层抛出的异常,大家可以在里面自定义异常的处理流程。

2.11 @RestController
申明为 REST 版的控制器,在这个类中返回的内容 Spring 会通过 Jackson 自动转换为 json 格式。

2.12 @RestControllerAdvice
与 @RestController 类似,是 @ControllerAdvice 的 rest 版。

2.13 @Transactional
事务注解,如果里面的 SQL 操作出现异常,会自动进行回滚。

配置mybatis

pom.xml 添加 MyBatis 相关的依赖。

org.mybatis mybatis 3.5.2 org.mybatis mybatis-spring 2.0.2 org.springframework spring-jdbc 5.1.8.RELEASE mysql mysql-connector-java 8.0.17

update mysql.user set authentication_string=password(‘12345678’) where user=‘root’; ,再输入 flush privileges; ,即修改 root 密码为 12345678。可以输入 exit; 退出重新登入查看效果

接下来我们只需要在 Spring 的配置文件 spring-config.xml 中注入 MyBatis 相关的 bean 即可并配置好数据库连接的账号密码。添加如下两个 bean 。

copy 在 dataSource 中的 url 项,我们暂时假设 jdbc 连接的数据库为 blog,我们将在下一节实验创建这个数据库。

修改后的 spring-config.xml 为:

<?xml version="1.0" encoding="UTF-8"?>

<!-- 开启注解配置,使我们可以使用类似 @Controller 这样的注解。
     不然我们需要自己手工配置bean,自己逐一把每一个类写入配置文件,
     那是噩梦,就不要尝试了。
 -->
<mvc:annotation-driven />

<!-- 自动扫描包的范围,spring会在这个package下面扫描带有注解的类,
     把它自动注入(就是 Spring 框架帮你 new 一个类存了起来)容器。
 -->
<context:component-scan
        base-package="com.shiyanlou" />

<!-- 如果不配置此项,所有请求都会经过 DispatcherServlet 包括静态资源。
     这样会导致静态资源找不到对应的处理器导致错误。所以我们添加下面的配置,
     这样静态资源会使用 web 默认的 servlet 处理,不会通过 Spring 的
     DispatcherServlet。
-->
<mvc:default-servlet-handler />

<!-- 添加对 jsp 页面的支持 -->
<bean id="viewResolver"
      class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass"
              value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

<!-- 配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/blog?useUnicode=true&amp;characterEncoding=UTF-8"/>
    <property name="username" value="root"/>
    <property name="password" value="12345678"/>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
</bean>

python的数据可视化下载如下的
pip install pyecharts==0.5.10
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install pyecharts_snapshot

pip install echarts-countries-pypkg 全球国家地图
$ pip install echarts-china-provinces-pypkg 中国省份地图
$ pip install echarts-china-cities-pypkg 中国城市地图
$ pip install echarts-china-counties-pypkg
$ pip install echarts-china-misc-pypkg
$ pip install echarts-united-kingdom-pypkg

linux的国内的aliyun下载源
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

查看ubuntu的版本
cat /etc/lsb-release
卸载系统默认自带的docker
sudo apt-get remove docker docker-engine docker-ce docker.io
sudo apt-get update
sudo -i
使apt可以通过Https使用存储库
apt-get install -y apt-transport-https \ ca-certificates \ curl \ software-properties-common
添加Docker官方的GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
安装稳定存储库
sudo add-apt-repository \ “deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \stable”
再更新一下apt包索引:
apt-get update
sudo apt-get install docker-ce
查看docker的版本
docker version
这里有两个
client version
server version
docker images
docker run
docker 命令
sudo service docker start/stop/restart
docker info

#Set up the repository
sudo apt-get update

sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

verify

sudo apt-key fingerprint 0EBFCD88

x86_64

sudo add-apt-repository
“deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable”

Install Docker CE

sudo apt-get update
sudo apt

Verify

sudo docker run hello-world

apt install docker.io

hive常用命令
show functions
describe function xxxx

自定义udf
add jar xxxx/xxxx

	create temporary function function_name;
	create temporary function function_name;

	drop temporary function if exists function_name

	drop temporary function if exists function_name

create database if not exists hive; #创建数据库
show databases; #查看Hive中包含数据库
show databases like ‘h.*’; #查看Hive中以h开头数据库
describe databases; #查看hive数据库位置等信息
alter database hive set dbproperties; #为hive设置键值对属性
use hive; #切换到hive数据库下
drop database if exists hive; #删除不含表的数据库
drop database if exists hive cascade; #删除数据库和它中的表

#创建内部表(管理表)
create table if not exists hive.usr(
name string comment ‘username’,
pwd string comment ‘password’,
address structstreet:string,city:string,state:string,zip:int,
comment ‘home address’,
identify map<int,tinyint> comment ‘number,sex’)
comment ‘description of the table’
tblproperties(‘creator’=‘me’,‘time’=‘2016.1.1’);
#创建外部表
create external table if not exists usr2(
name string,
pwd string,
address structstreet:string,city:string,state:string,zip:int,
identify map<int,tinyint>)
row format delimited fields terminated by ‘,’
location ‘/usr/local/hive/warehouse/hive.db/usr’;
#创建分区表
create table if not exists usr3(
name string,
pwd string,
address structstreet:string,city:string,state:string,zip:int,
identify map<int,tinyint>)
partitioned by(city string,state string);
#复制usr表的表模式
create table if not exists hive.usr1 like hive.usr;

show tables in hive;
show tables ‘u.*’; #查看hive中以u开头的表
describe hive.usr; #查看usr表相关信息
alter table usr rename to custom; #重命名表

#为表增加一个分区
alter table usr2 add if not exists
partition(city=”beijing”,state=”China”)
location ‘/usr/local/hive/warehouse/usr2/China/beijing’;
#修改分区路径
alter table usr2 partition(city=”beijing”,state=”China”)
set location ‘/usr/local/hive/warehouse/usr2/CH/beijing’;
#删除分区
alter table usr2 drop if exists partition(city=”beijing”,state=”China”)
#修改列信息
alter table usr change column pwd password string after address;

alter table usr add columns(hobby string); #增加列
alter table usr replace columns(uname string); #删除替换列
alter table usr set tblproperties(‘creator’=‘liming’); #修改表属性
alter table usr2 partition(city=”beijing”,state=”China”) #修改存储属性
set fileformat sequencefile;
use hive; #切换到hive数据库下
drop table if exists usr1; #删除表
drop database if exists hive cascade; #删除数据库和它中的表

sqoop命令
hadoop命令
kafka命令
flume 命令
spark命令
docker命令
Zk命令
kylin命令
docker命令

docker pull mysql 为安装mysql最新版 是8.0版本向上了
docker run --name mysql -p 3306:3306 -v /home/mysql8/datadir:/var/lib/mysql -v /home/mysql8/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123qwe -d mysql
docker run --name phpadmin --link mysql:db -p 9998:80 -d phpmyadmin/phpmyadmin
#通过 虚拟机ip:9998端口即可访问mysql

docker pull mysql:5.7.19 可以安装5.7版本 比较流行的
docker run --name mysql5.7.19 -p 3306:3306 -v /home/mysql5.7/datadir:/var/lib/mysql -v /home/mysql5.7/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123qwe -d mysql:5.7.19
docker run --name phpadmin --link mysql5.7.19:db -p 9998:80 -d phpmyadmin/phpmyadmin

docker ps
docker run -it mysql bash 可以进入到容器内部
docker ps
docker ps -a 查看所有容器的运行状态
docker rm {id} 删除某个容器(并不会删除镜像)。对于名称冲突的时候,并且需要重修设置路径,修改配置的时候,需要这么干。一般直接restart即可。
docker kill {id} 干掉某个镜像

yum install docker.io
ubuntu卸载安装时自动安装的所有包
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
dpkg -l | grep docker
dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P # 删除无用的相关的配置文件
sudo apt-get autoremove docker-ce-*
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
docker --version

git命令

初始化数据仓库
git init
git status
git add xxxx
git commit -m “xxxxxxx”
git status
git log

gitk 可以使用gui来确认提交记录

hadoop的电商数据分析
防疫
智慧交通
电信

用户画像
离线数仓
实时数仓
spark
spark sql实战
spark streaming实时
flink
ssm的慕课网

hbase实战

电商数仓
电商推荐系统

机器学习和推荐系统

作业流调度引擎(对不同的框架和作业进行统一的管理和调度)
作业流调度系统
1:定时任务
2: DAG计划任务(不同的任务之间存在依赖关系,先后执行的关系)
3:周期任务,循环执行的任务
4:作业的监控与报警

Ooize 基于xml表达作业依赖关系
Azkaban 通过java property 配置作业的依赖关系
Zeus 通过页面来配置作业依赖关系
作业流是控制流节点来把行为节点相连而成的
控制流节点:定义工作流的开始与结束,并且控制工作流的执行路径
行为节点:计算和处理任务

Ooize工作流是通过hdpl语言来编写的,hdpl是一种xml过程定义语言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值