07 2020 档案
摘要:从之前章节的介绍可以知道,在没有采取任何优化措施的情况下,Kylin会对每一种维度的组合进行预计算,每种维度的组合的预计算结果被称为Cuboid。假设有4个维度,我们最终会有24 =16个Cuboid需要计算。 但在现实情况中,用户的维度数量一般远远大于4个。假设用户有10 个维度,那么没有经过任何
阅读全文
摘要:可以与Kylin结合使用的可视化工具很多,例如: ODBC:与Tableau、Excel、PowerBI等工具集成 JDBC:与Saiku、BIRT等Java工具集成 RestAPI:与JavaScript、Web网页集成 Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访
阅读全文
摘要:需求:实现按照维度(工作地点)统计员工信息 1 数据准备 在Hive中创建数据,分别创建部门和员工外部表,并向表中导入数据。 (1)原始数据 (2)建表语句 创建部门表 create external table if not exists default.dept( deptno int, dna
阅读全文
摘要:1 安装地址 1)官网地址 http://kylin.apache.org/cn/ 2)官方文档 http://kylin.apache.org/cn/docs/ 3)下载地址 http://kylin.apache.org/cn/download/ 2 安装部署 1)将apache-kylin-2
阅读全文
摘要:1 Kylin定义 Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。 2 Kylin特点 Kylin的主要特点包括支持SQL
阅读全文
摘要:1 Phoenix简介 1.1 Phoenix定义 Phoenix是HBase的开源SQL皮肤。可以使用标准JDBC API代替HBase客户端API来创建表,插入数据和查询HBase数据。 1.2 Phoenix特点 1)容易集成:如Spark,Hive,Pig,Flume和Map Reduce;
阅读全文
摘要:1 环境准备 新建项目后在pom.xml中添加依赖 <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>2.0.5</version> </dependency
阅读全文
摘要:1 架构原理 1)StoreFile 保存实际数据的物理文件,StoreFile 以 HFile 的形式存储在 HDFS 上。每个 Store 会有一个或多个 StoreFile(HFile),数据在每个 StoreFile 中都是有序的。 2)MemStore 写缓存,由于 HFile 中的数据要
阅读全文
摘要:介绍 Sink 不断地轮询 Channel 中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个 Flume Agent。 Sink 是完全事务性的。在从 Channel 批量删除数据之前,每个 Sink 用 Channel 启动一个事务。批量事件一旦成功写出到存储系统
阅读全文
摘要:自定义 Source 说明 Source 是负责接收数据到 Flume Agent 的组件。Source 组件可以处理各种类型、各种格式的日志数据,包括 avro、thrift、exec、jms、spooling directory、netcat、sequence generator、 syslog
阅读全文
摘要:1)案例需求 使用 Flume 采集服务器本地日志,需要按照日志类型的不同,将不同种类的日志发往不同的分析系统。 2)需求分析 在实际的开发中,一台服务器产生的日志类型可能有很多种,不同类型的日志可能需要发送到不同的分析系统。此时会用到 Flume 拓扑结构中的 Multiplexing 结构,Mu
阅读全文
摘要:[atguigu@hadoop102 job]$ cd group2/ 负载均衡和故障转移 1)案例需求 使用 Flume1 监控一个端口,其 sink 组中的 sink 分别对接 Flume2 和 Flume3,采用FailoverSinkProcessor,实现故障转移的功能。 2)需求分析 3
阅读全文
摘要:多数据源汇总案例 多 Source 汇总数据到单 Flume 如图 7-4 所示。 图 7-4 多 Flume 汇总数据到单 Flume 1) 案例需求: hadoop103 上的 Flume-1 监控文件/opt/module/group.log, hadoop102 上的 Flume-2 监控某
阅读全文
摘要:单数据源多出口案例(Sink 组) 单 Source、Channel 多 Sink(负载均衡)如图 7-3 所示。 图 7-3 单 Source、Channel 多 Sink 1)案例需求:使用 Flume-1 监控文件变动,Flume-1 将变动内容传递给 Flume-2,Flume-2负责存储到
阅读全文
摘要:单数据源多出口案例(选择器) 单 Source 多 Channel、Sink 如图 7-2 所示。 图 7-2 单 Source 多 Channel、Sink 1)案例需求:使用 Flume-1 监控文件变动,Flume-1 将变动内容传递给 Flume-2,Flume-2负责存储到 HDFS。同时
阅读全文
摘要:实时读取目录文件到 HDFS 案例 1)案例需求:使用 Flume 监听整个目录的文件 2)需求分析: 3)实现步骤: 1.创建配置文件 flume-dir-hdfs.conf 创建一个文件 [atguigu@hadoop102 job]$ touch flume-dir-hdfs.conf 打开文
阅读全文
摘要:实时读取本地文件到 HDFS 案例 1)案例需求:实时监控 Hive 日志,并上传到 HDFS 中 2)需求分析: 3)实现步骤: 1.Flume 要想将数据输出到 HDFS,必须持有 Hadoop 相关 jar 包 由于flume服务器没有安装hadoop,但是要依赖hadoop的相关类来将文件保
阅读全文
摘要:1 监控端口数据官方案例 1)案例需求:首先,Flume 监控本机 44444 端口,然后通过 telnet 工具向本机 44444 端口发 送消息,最后 Flume 将监听的数据实时显示在控制台。 2)需求分析: 3)实现步骤: 1.安装 telnet 工具 将 rpm 软 件 包 (xinetd
阅读全文
摘要:1 Ganglia 的安装与部署 1) 安装 httpd 服务与 php [atguigu@hadoop102 flume]$ sudo yum -y install httpd php 2) 安装其他依赖 [atguigu@hadoop102 flume]$ sudo yum -y install
阅读全文
摘要:1 Flume 安装地址 1) Flume 官网地址 http://flume.apache.org/ 2)文档查看地址 http://flume.apache.org/FlumeUserGuide.html 3)下载地址 http://archive.apache.org/dist/flume/
阅读全文
摘要:1 Flume 定义 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。 2 Flume 组成架构 Flume 组成架构如图 1-1,图 1-2 所示: 2.1 Agent Agent 是一个 JVM 进程,它
阅读全文
摘要:目录结构 目录说明Bin主要的一些执行命令 Conf存放配置文件,需要修改zk.cfg Contrib附加的一些功能 Dist-mavenMvn编译后的目录 Docs文档 Lib需要依赖的jar包 Recipes案例demo代码 Src源文件————————————————版权声明:本文为CSDN博
阅读全文
摘要:hadoop的目录结构介绍 解压缩hadoop 利用tar –zxvf把hadoop的jar包放到指定的目录下。 tar -zxvf /home/software/aa.tar.gz -C /home/zjx/pf f:指定文件的名称 z:以gz结尾的文件就是用gzip压缩的结果。与gzip相对的就
阅读全文
摘要:针对 42000错误 原文:https://stackoverflow.com/questions/50177216/how-to-grant-all-privileges-to-root-user-in-mysql-8-0 mysql> USE mysql; mysql> CREATE USER
阅读全文
摘要:1 Hadoop 压缩配置 1.1 MR 支持的压缩编码 http://google.github.io/snappy/ On a single core of a Core i7 processor in 64-bit mode, Snappy compresses at about 250 MB
阅读全文
摘要:现场还原:用root用户在Linux上安装mysql后,用Linux的root用户可以登录mysql,但普通用户无法登录,提示错误:ERROR 1698 (28000): Access denied for user 'root'@'localhost' 一、mysql用root登录mysql选择以
阅读全文
摘要:卸载 sudo apt-get --purge remove mysql-common -y sudo apt-get --purge remove mysql* -y sudo apt-get autoremove -y 清理数据 dpkg -l |grep ^rc # 如果有输出的话执行 dpk
阅读全文
摘要:1 系统内置函数 1)查看系统自带的函数 hive> show functions; 2)显示自带的函数的用法 hive> desc function upper; 3)详细显示自带的函数的用法 hive> desc function extended upper; 2 常用内置函数 2.1 空字段
阅读全文
摘要:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select 查询语句语法: [WITH CommonTableExpression (, CommonTableExpression)*] (Note: Only ava
阅读全文
摘要:1 数据导入 1.1 向表中装载数据(Load) 1.语法 hive> load data [local] inpath '/opt/module/datas/student.txt' [overwrite] into table student [partition (partcol1=val1,
阅读全文
摘要:1 创建数据库 CREATE DATABASE [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value
阅读全文
摘要:1 基本数据类型 对于 Hive 的 String 类型相当于数据库的 varchar 类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储 2GB 的字符数。 2 集合数据类型 Hive 有三种复杂数据类型 ARRAY、MAP 和 STRUCT。ARRAY 和
阅读全文
摘要:6 启动Hive 6.1 初始化元数据库 1)登陆MySQL [atguigu@hadoop102 software]$ mysql -uroot -p000000 2)新建Hive元数据库 mysql> create database metastore; mysql> quit; 3)初始化Hi
阅读全文
摘要:1 Hive安装地址 1)Hive官网地址 http://hive.apache.org/ 2)文档查看地址 https://cwiki.apache.org/confluence/display/Hive/GettingStarted 3)下载地址 http://archive.apache.or
阅读全文
摘要:1 什么是 Hive Hive:由 Facebook 开源用于解决海量结构化日志的数据统计。 Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 SQL 查询功能 本质是:将 HQL 转化成 MapReduce 程序 1)Hive 处理的数据存储在 HD
阅读全文
摘要:1 YARN-HA 工作机制 1. 官方文档: http://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/ResourceManagerHA.html 2. YARN-HA 工作机制,如图 3-23 所示 2 配置 YARN-
阅读全文
摘要:1 环境准备 1. 修改 IP 2. 修改主机名及主机名和 IP 地址的映射 3. 关闭防火墙 4. ssh 免密登录 5. 安装 JDK,配置环境变量等 2 规划集群 3 配置 Zookeeper 集群 1. 集群规划 在 hadoop102、hadoop103 和 hadoop104 三个节点上
阅读全文
摘要:1 HA 概述 1)所谓 HA(High Available),即高可用(7*24 小时不中断服务)。 2)实现高可用最关键的策略是消除单点故障。HA 严格来说应该分成各个组件的 HA 机制: HDFS 的 HA 和 YARN 的 HA。 3)Hadoop2.0 之前,在 HDFS 集群中 Name
阅读全文
摘要:1 节点类型 2 Stat 结构体 1)czxid-创建节点的事务 zxid 每次修改 ZooKeeper 状态都会收到一个 zxid 形式的时间戳,也就是 ZooKeeper 事务 ID。 事务 ID 是 ZooKeeper 中所有修改总的次序。每个修改都有唯一的 zxid,如果 zxid1 小于
阅读全文
摘要:1.需求 某分布式系统中,主节点可以有多台,可以动态上下线,任意一台客户端都能实时感知到主节点服务器的上下线。 2.需求分析,如图 5-12 所示 3.具体实现 (0)先在集群上创建/servers 节点 [zk: localhost:2181(CONNECTED) 10] create /serv
阅读全文
摘要:1 Vscode 环境搭建 1.1.创建一个 Maven 工程 参照Maven 专题(二):vscode 创建一个java Maven项目(vscode)以HdfsClientDemo 为例 1.2.添加 pom 文件 <dependencies> <dependency> <groupId>jun
阅读全文
摘要:客户端命令行操作 1.启动客户端 [atguigu@hadoop103 zookeeper-3.4.10]$ bin/zkCli.sh 2.显示所有操作命令 [zk: localhost:2181(CONNECTED) 1] help 3.查看当前 znode 中所包含的内容 [zk: localh
阅读全文
摘要:1.集群规划 在 hadoop102、hadoop103 和 hadoop104 三个节点上部署 Zookeeper。 2.解压安装 (1)解压 Zookeeper 安装包到/opt/module/目录下 [atguigu@hadoop102 software]$ tar -zxvf zookeep
阅读全文
摘要:1 如何建立业务分析框架 2 市场营销模型 3 AARRR模型 用户行为模型(内容平台) 电子商务模型 如何应对各类业务场景
阅读全文
摘要:1 结构化 例如;线下销售的产品销售额度下降原因分析 或者这样 使用工具思 维 导 图 2 公式化 3 业务化
阅读全文
摘要:1 概述 Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。 2 特点 3 数据结构 4 应用场景 统一命名服务 统一配置管理 统一集群管理 服务器动态上下线 软负载均衡
阅读全文
摘要:数据清洗案例实操-复杂解析版 1.需求 对Web访问日志中的各字段识别切分,去除日志中不合法的记录。根据清洗规则,输出过滤后的数据。 (1)输入数据 (2)期望输出数据 都是合法的数据 2.实现代码 (1)定义一个bean,用来记录日志数据中的各数据字段 package com.atguigu.ma
阅读全文
摘要:数据清洗案例实操-简单解析版 在运行核心业务MapReduce程序之前,往往要先对数据进行清洗,清理掉不符合用户要求的数据。清理的过程往往只需要运行Mapper程序,不需要运行Reduce程序。 1.需求 去除日志中字段长度小于等于11的日志。 (1)输入数据 (2)期望输出数据 每行字段长度都大于
阅读全文
摘要:1 Reduce Join Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。 Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中
阅读全文
摘要:1 OutputFormat接口实现类 2 自定义OutputFormat 3 自定义OutputFormat案例实操 1.需求 过滤输入的log日志,包含atguigu的网站输出到e:/atguigu.log,不包含atguigu的网站输出到e:/other.log。 (1)输入数据 (2)期望输
阅读全文
摘要:1.ReduceTask工作机制 ReduceTask工作机制,如图4-19所示。 图4-19 ReduceTask工作机制 (1)Copy阶段:ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。 (2)Merge
阅读全文
摘要:MapTask工作机制 MapTask工作机制如图4-12所示。 图4-12 MapTask工作机制 (1)Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。 (2)Map阶段:该节点主要是将解析出的key/value交给
阅读全文
摘要:7 Combiner合并 (6)自定义Combiner实现步骤 (a)自定义一个Combiner继承Reducer,重写Reduce方法 public class WordcountCombiner extends Reducer<Text, IntWritable, Text,IntWritabl
阅读全文
摘要:4 WritableComparable排序 1.排序的分类 2.自定义排序WritableComparable (1)原理分析 bean对象做为key传输,需要实现WritableComparable接口重写compareTo方法,就可以实现排序。 @Override public int com
阅读全文
摘要:1 Shuffle机制 Map方法之后,Reduce方法之前的数据处理过程称之为Shuffle。如图4-14所示。 2 Partition分区 3 Partition分区案例实操 1.需求 将统计结果按照手机归属地不同省份输出到不同文件中(分区) (1)输入数据 (2)期望输出数据 手机号136、1
阅读全文
摘要:1.流程示意图,如图4-6,4-7所示 图4-6 MapReduce详细工作流程(一) 图4-7 MapReduce详细工作流程(二) 2.流程详解 上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下: 1)MapT
阅读全文
摘要:1 查看多台机器jps脚本 1)创建vim jpsall atguigu@hadoop102:cd /opt/module/hadoop-2.8.5/bin$ 2) #!/bin/bash for ((host=102;host<105;host++)); do echo hadoop$host s
阅读全文
摘要:解决办法1: [root@djt002 hadoop]# vi /etc/selinux/config 改为 SELINUX=disabled 解决办法2: 查看你的$HADOOP_HOME/etc/hadoop下的core-site.xml和hdfs-site.xml是否配置好 解决办法3: 必须
阅读全文
摘要:在配置hadoop集群时,时间同步是必须要做的,否则会出现各种意想不到的问题。 hadoop102 为 ntp server,hadoop103以及hadoop104 为ntp client(即需要同步时间机器) 1.全部机器都要安装ntp以及ntpdate sudo apt-get install
阅读全文
摘要:hadoop集群通过web管理界面只显示一个节点,但每台机器datanode都启动了 datanode日志; java.net.ConnectException: Connection refused at sun.nio.ch.SocketChannelImpl.checkConnect(Nati
阅读全文
摘要:1.7 KeyValueTextInputFormat使用案例 1.需求 统计输入文件中每一行的第一个单词相同的行数。 (1)输入数据 banzhang ni hao xihuan hadoop banzhang banzhang ni hao xihuan hadoop banzhang (2)期
阅读全文
摘要:0 简介 1 切片与MapTask并行度决定机制 1.问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的处理速度。 思考:1G的数据,启动8个MapTask,可以提高集群的并发处理能力。那么1K的数据,也启动8个MapTask,会提高集群性能吗?MapTask并行
阅读全文
摘要:1 序列化概述 2 自定义bean对象实现序列化接口(Writable) 在企业开发中往往常用的基本序列化类型不能满足所有需求,比如在Hadoop框架内部传递一个bean对象,那么该对象就需要实现序列化接口。 具体实现bean对象序列化步骤如下7步。 (1)必须实现Writable接口 (2)反序列
阅读全文
摘要:1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 2 MapReduce优缺点
阅读全文
摘要:1 集群间数据拷贝 1.scp实现两个远程主机之间的文件复制 scp -r hello.txt root@hadoop103:/user/atguigu/hello.txt // 推 push scp -r root@hadoop103:/user/atguigu/hello.txt hello.t
阅读全文
摘要:1 DataNode工作机制 DataNode工作机制,如图3-15所示。 图3-15 DataNode工作机制 1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。 2)DataNode启动后向NameN
阅读全文
摘要:1 NN和2NN工作机制 思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在
阅读全文
摘要:1 HDFS写数据流程 1.1 剖析文件写入 HDFS写数据流程,如图3-8所示。 图3-8 配置用户名称 (1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。 (2)NameNode返回是否可以上传
阅读全文
摘要:2 HDFS的I/O流操作 2.1 HDFS文件上传 1.需求:把本地e盘上的banhua.txt文件上传到HDFS根目录 2.编写代码 @Test public void putFileToHDFS() throws IOException, InterruptedException, URISy
阅读全文
摘要:由于动态地址与路由器有关,因此设置一个静态IP可以让我们更方便的连接树莓派。 首先打开树莓派的命令行,输入: sudo vi /etc/dhcpcd.conf 即可用vi编辑配置文件。 在文件末尾输入: interface eth0 static ip_address=192.168.0.10/24
阅读全文
摘要:1 基本操作 package com.atguigu.hdfsclient; import java.io.FileInputStream; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.
阅读全文
摘要:1.基本语法 hadoop fs 具体命令 OR hdfs dfs 具体命令 两个是完全相同的。 dfs是fs的实现类。 2.命令大全 [atguigu@hadoop102 hadoop-2.7.2]$ bin/hadoop fs [-appendToFile <localsrc> ... <dst
阅读全文
摘要:1 HDFS产出背景及定义 2 HDFS优缺点 3 HDFS组成架构 4 HDFS文件块大小(面试重点)
阅读全文
摘要:1 安装JDK 1) 卸载现有JDK (1)查询是否安装Java软件: [atguigu@hadoop101 opt]$ rpm -qa | grep java (2)如果安装的版本低于1.7,卸载该JDK: [atguigu@hadoop101 opt]$ sudo rpm -e 软件包 (3)查
阅读全文
摘要:0 概述 1)准备3台客户机(关闭防火墙、静态ip、主机名称) 2)安装JDK 3)配置环境变量 4)安装Hadoop 5)配置环境变量 6)配置集群 7)单点启动 8)配置ssh 9)群起并测试集群 1 虚拟机准备 1). 克隆虚拟机 2). 修改克隆虚拟机的静态IP 3). 修改主机名 4).
阅读全文
摘要:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. 出现这个问题的原因是我们在windows上模拟开发环境,但并没有真正的搭建hadoop和spark 解决办法:
阅读全文
摘要:1 Hadoop是什么 2 Hadoop发展历史(了解) 3 Hadoop三大发行版本(了解) Hadoop三大发行版本:Apache、Cloudera、Hortonworks。 Apache版本最原始(最基础)的版本,对于入门学习最好。2006 Cloudera内部集成了很多大数据框架,对应产品C
阅读全文
摘要:1.大数据概念 2 大数据特点(4V) 图2-2 大数据特点之大量 图2-3 大数据特点之高速 图2-4 大数据特点之多样 图2-5 大数据特点之低价值密度 3 大数据应用场景 4 大数据发展前景 5 大数据部门业务流程分析 6 大数据部门组织结构(重点) 大数据部门组织结构,适用于大中型企业,如图
阅读全文
摘要:一、下载Hadoop jar包至非中文路径 下载链接:https://hadoop.apache.org/releases.html 解压至非中文路径 二、配置Hadoop环境变量 配置HADOOP_HOME环境变量 配置Path环境变量 三、创建一个Maven工程 创建一个名为HdfsClient
阅读全文
摘要:使用Xshell的rz命令上传文件失败的解决方法 第一种:在home目录下rz上传文件失败,如下: 原因:当前用户不具备权限解决:用 sudo rz 上传即可成功 第二种:对于文件大的rz上传失败的话,用 rz -be 进行上传因为如果用不带参数的rz命令上传大文件时,常常上传一半就断掉了,很可能是
阅读全文
摘要:所以今天我给大家说一下xshell的使用教程,http://www.netsarang.com/products/xsh_overview.html,下载xshell的过程我认为没有必要跟大家细说,就是大家下载和安装的时候要选择免费版的就可以了。 之后我给大家说一下,xshell和你的Linux连接
阅读全文
摘要:【目的】:学习大数据 在此记录搭建大数据的过程。 【系统环境】 宿主机操作系统:Win7 64位 虚拟机软件:Vmware workstation 12 虚拟机:Ubuntu 16 64位桌面版 【步骤概要】 一、准备 1、准备安装软件 2、规划好虚拟机数量、机器名称、IP 3、设置虚拟机静态IP
阅读全文
摘要:一、Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码。我们可以在终端输入命令 sudo passwd,然后输入当前用户的密码,enter, 二、终端会提示我们输入新的密码并确认,此时的密码就是root新密码。修改成功后,输入命令 su root,再输入新的密码就ok了。 三
阅读全文
摘要:首先打开终端或者使用shell工具 sudo vim /etc/network/interfaces1配置如下: 其中address 就是你的ip地址,看心情设置 注意:第三段要跟你的宿主机在一个网段,如果不知道你的宿主机网段可以按照你之前的自动分配的ip设置,只替换第四段。netmask 按照我的
阅读全文
该文被密码保护。
摘要:1 数据结构特点 scala集合基本介绍 1)Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问 2)两个主要的包: 不可变集合:scala.collection.immutable 可变集合: scala.collection.mutable 3)Scala默认采用不可变集合,对
阅读全文
摘要:隐式转换的实际需要=>指定某些数据类型的相互转化 1 隐式函数基本介绍 隐式转换函数是以implicit关键字声明的带有单个参数的函数。这种函数将会自动应用,将值从一种类型转换为另一种类型 隐式函数快速入门 使用隐式函数可以优雅的解决数据类型转换,以前面的案例入门. 隐式函数的底层工作原理 隐式转换
阅读全文
摘要:在Scala中,你几乎可以在任何语法结构中内嵌任何语法结构。如在类中可以再定义一个类,这样的类是嵌套类,其他语法结构也是一样。 嵌套类类似于Java中的内部类。 Scala嵌套类的使用1 请编写程序,定义Scala 的成员内部类和静态内部类,并创建相应的对象实例。 Scala嵌套类的使用2 方式1
阅读全文
摘要:1 扩展类的特质 特质可以继承类,以用来拓展该类的一些功能 所有混入该特质的类,会自动成为那个特质所继承的超类的子类 如果混入该特质的类,已经继承了另一个类(A类),则要求A类是特质超类的子类,否则就会出现了多继承现象,发生错误。 2 自身类型 说明 自身类型:主要是为了解决特质的循环依赖问题,同时
阅读全文
摘要:1 在特质中重写抽象方法特例 提出问题,看段代码 trait Operate5 { def insert(id : Int) } trait File5 extends Operate5 { def insert( id : Int ): Unit = { println("将数据保存到文件中.."
阅读全文
摘要:1 带有具体实现的特质 说明:和Java中的接口不太一样的是特质中的方法并不一定是抽象的,也可以有非抽象方法(即:实现了的方法)。 2 带有特质的对象,动态混入 1)除了可以在类声明时继承特质以外,还可以在构建对象时混入特质,扩展目标类的功能 2)此种方式也可以应用于对抽象类功能进行扩展 3)动态混
阅读全文
摘要:1 Scala接口的介绍 从面向对象来看,接口并不属于面向对象的范畴,Scala是纯面向对象的语言,在Scala中,没有接口。 Scala语言中,采用特质trait(特征)来代替接口的概念,也就是说,多个类具有相同的特征(特征)时,就可以将这个特质(特征)独立出来,采用关键字trait声明。 理解t
阅读全文
摘要:1 Scala中静态的概念-伴生对象 Scala语言是完全面向对象(万物皆对象)的语言,所以并没有静态的操作(即在Scala中没有静态的概念)。 但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,我们称之为类的伴生对象。 这个类的所有静态内容都可以放置在
阅读全文
摘要:1 Scala继承的基本语法 class 子类名 extends 父类名 { 类体 } class Person { var name : String = _ var age : Int = _ def showInfo(): Unit = { println("学生信息如下:") println
阅读全文
摘要:1 封装介绍 封装(encapsulation)就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。 封装的理解和好处 隐藏实现细节 ;提可以对数据进行验证,保证安全合理 如何体现封装 对类中的属性进行封装; 通过成员方法
阅读全文
摘要:1 Scala引入包基本介绍 Scala引入包也是使用import, 基本的原理和机制和Java一样,但是Scala中的import功能更加强大,也更灵活。 因为Scala语言源自于Java,所以java.lang包中的类会自动引入到当前环境中,而Scala中的scala包和Predef包的类也会自
阅读全文
摘要:1 包对象 基本介绍:包可以包含类、对象和特质trait,但不能包含函数/方法或变量的定义。这是Java虚拟机的局限。为了弥补这一点不足,scala提供了包对象的概念来解决这个问题。 package com.atguigu { //每个包都可以有一个包对象。你需要在父包(com.atguigu)中定
阅读全文
摘要:1 Scala包的基本介绍 和Java一样,Scala中管理项目可以使用包,但Scala中的包的功能更加强大,使用也相对复杂些,下面我们学习Scala包的使用和注意事项。 2 Scala包快速入门 使用打包技术来解决上面的问题,不同包下Dog类 package com.atguigu.chapter
阅读全文
摘要:1 如何定义类 [修饰符] class 类名 { 类体 } 定义类的注意事项 1)scala语法中,类并不声明为public,所有这些类都具有公有可见性(即默认就是public), 2)一个Scala源文件可以包含多个类. 2 属性 属性是类的一个组成部分,一般是值数据类型,也可是引用类型。 属性/
阅读全文
该文被密码保护。
摘要:修改配置文件 通常我们需要修改解压目录下conf/settings.xml文件,这样可以更好的适合我们的使用。 此处注意:所有的修改一定要在注释标签外面,不然修改无效。Maven很多标签都是给的例子,都是注释掉的。 1. 本地仓库位置修改 在<localRepository>标签内添加自己的本地位置
阅读全文
摘要:mvn archetype:generate : 反向生成项目的骨架 mvn clean: 清除各个模块target目录及里面的内容 mvn compile: 静态编译,根据xx.java生成xx.class文件 mvn dependency:list : 查看当前项目已被解析的依赖 mvn dep
阅读全文
摘要:刚刚学Maven,当我点击test时 就出现了这两个错误: [ERROR] 不再支持源选项 5。请使用 7 或更高版本。[ERROR] 不再支持目标选项 5。请使用 7 或更高版本。后来在看到这篇文章 原来是我看视频的时候,因为老师用的是jdk1.8,且生成了一个profile信息,而我没有去配值这
阅读全文
摘要:尚硅谷视频链接:https://www.bilibili.com/video/av84877781/看视频的时候,根据自己的需要,访问量多的不一定是好的,适合自己的才是最好的,总的来说,尚硅谷的视频质量还是不错的,文章不易,如果对您有帮助,动动小手点个赞,点个关注哟,共同进步,加油。 ———————
阅读全文
摘要:5 仓库 5.1 分类 [1]本地仓库:为当前本机电脑上的所有 Maven 工程服务.[2]远程仓库: (1)私服:架设在当前局域网环境下,为当前局域网范围内的所有 Maven 工程服务 (2)中央仓库:架设在 Internet 上,为全世界所有 Maven 工程服务。 (3)中央仓库的镜像:架设在
阅读全文
摘要:**Maven 的核心程序中仅仅定义了抽象的生命周期,而具体的操作则是由 Maven 的插件来完成的。**可是 Maven 的插件并不包含在 Maven 的核心程序中,在首次使用时需要联网下载。 下载得到的插件会被保存到本地仓库中。本地仓库默认的位置是:~.m2\repository。 如果不能联网
阅读全文
摘要:1 Maven 简介 Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和 依赖管理。Maven 这个单词的本意是:专家,内行。读音是['meɪv(ə)n]或['mevn]。 什么是构建构建并不是创建,创建一个工程并不等于构建一个项目。要了解构
阅读全文
摘要:1 真的需要吗? Maven 是干什么用的?这是很多同学在刚开始接触 Maven 时最大的问题。之所以会提出这个问题, 是因为即使不使用 Maven 我们仍然可以进行 B/S 结构项目的开发。从表述层、业务逻辑层到持久化层 再到数据库都有成熟的解决方案——不使用 Maven 我们一样可以开发项目啊?
阅读全文
摘要:vscode下webpack错误:无法将“webpack”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 解决方法: 1、因为vscode下默认终端是PowerShell,改成cmd 2、选择后不会立即生效,显示的工具还是Po
阅读全文
摘要:1.打开vs code软件,最好创建好自己的工程并使用vs code打开 2. 使用快捷键ctrl + shift + p按键,输入maven进行搜索,选中如图诉讼hi的create mavene project 3.步骤2后,选择如图所示的archetype-quickstart-jdk8 4.接
阅读全文
摘要:0.首先了解一下maven安装目录 Bin:该目录包含Mvn运行的脚本 Boot:Maven自身的类加载器框架 Conf:包含非常重要的文件setting.xml Lib:该目录包含了所有Maven运行时需要的Jave类库 Mvn help:system(该命令会打印出所有的Java系统属性和环境变
阅读全文
摘要:4. GC日志分析 4.1 日志分析 通过阅读GC日志,我们可以了解Java虚拟机内存分配与回收策略。 内存分配与垃圾回收的参数列表-XX:+PrintGC:输出GC日志。类似-verbose: gc -XX: +PrintGCDetails输出GC的详细日志 -XX:+ PrintGCTimeSt
阅读全文
摘要:3. 回收器 3.1 Serial回收器:串行回收 3.1.1 概述 Serial收集器是最基本、历史最悠久的垃圾收集器了。JDK1.3之前回收新生代唯一的选择。 Serial收集器作为Hotspot中Client模式下的默认新生代垃圾收集器。 Serial收集器采用复制算法、串行回收和"stop-
阅读全文
摘要:1. GC分类与性能指标 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商、不同版本的JVM来实现。由于JDK的版本处于高速迭代过程中,因此Java发展至今已经产生了众多的GC版本。从不同角度分析垃圾收集器,可以将GC分为不同的类型。 1.1 GC分类 按线程数(垃圾回收的线程)分可以分为串行
阅读全文
摘要:1. System.gc()的理解 在默认情況下,通过System.gc()或者Runtime. getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存。 然而System.gc()调用附带一个免责声明,无法保证对垃圾收集器的调
阅读全文
摘要:1. 标记阶段 1.1 引用计数算法 1.1.1 对象存活判断 在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,GCオ会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶
阅读全文
摘要:1. 什么是垃圾 1.1 C++与Java 1.2 概述 垃圾收集,不是Java语言的伴生产物。早在1960年,第一门开始使用内存动态分配和垃圾收集技术的Lisp语言诞生。 关于垃圾收集有三个经典问题 哪些内存需要回收? 什么时候回收? 如何回收? 垃圾收集机制是Java的招牌能力,极大地提高了开发
阅读全文
摘要:1. String的基本特性 String:字符串,使用一对""引起来表示。 String声明为final的,不可被继承。 String实现了Serializable接口:表示字符串是支持序列化的。实现了Comparable接口:表示String可以比较大小。 String在jdk8及以前内部定义了
阅读全文
摘要:1. 执行引擎概述 1.1 执行引擎 1.2 概述 执行引擎是Java虚拟机的核心组成部分之一。 虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制
阅读全文
摘要:1. 本地方法接口 2. 什么是本地方法? 简单来讲,一个Native Method就是一个Java调用非Java代码的接口。一个Native Method是这样一个java方法:该方法的实现由非Java语言实现,比如C。这个特征并非Java特有,很多其他的编程语言都有这一机制,比如在C++ 中,你
阅读全文
摘要:1. 直接内存 不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是Java堆外的、直接向系统申请的内存区间。 来源于NIO,通过存在堆中的DirectByteBuffer操作Native内存。 IO:阻塞式 NIO:非阻塞式 通常,访问直接内存的速度会优于Ja
阅读全文
摘要:1. 对象的实例化 1.1 创建对象的方式 new 最常见的方式 变形1 : Xxx的静态方法 变形2 : XxBuilder/XxoxFactory的静态方法 Class的newInstance():反射的方式,只能调用空参的构造器,权限必须是public Constructor的newInsta
阅读全文
摘要:1. 栈、堆、方法区关系交互 运行时数据区结构图: 从线程共享与否的角度来看: 2. 方法区的理解 2.1 方法区在哪里? 《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于HotSpotJVM而言,方法区还有
阅读全文
摘要:1. 核心概述 1.1 堆概述 一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈。 一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域 | 配置jvm及查看jvm进程 Java堆区在JVM启动的时候即
阅读全文
摘要:1. 本地方法栈 2. 什么是本地方法栈? Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用 本地方法栈,也是线程私有的。 允许被实现成固定或者是可动态拓展的内存大小。(在内存溢出方面是相同的) | 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将
阅读全文
摘要:2.虚拟机栈 1. 概述 1.1 虚拟机栈出现背景 由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令 1.2 内存中的堆与栈 栈是运行时的单位,而堆是存储的
阅读全文
摘要:1.程序计数器 1. 什么是PC寄存器(程序计数器)? JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器并不是广义上所指的物理寄存器,是
阅读全文
摘要:1. 运行时数据区架构图 2. 内存 内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了JAVA在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的jvm对于内存的划分方式和管理机制存在着部分差异(对于Hotspo
阅读全文
摘要:3. 补充内容 3.1 在jvm中表示两个class对象是否为同一个类的两个必要条件 类的完整类名必须一致,包括包名。 加载这个类的ClassLoader(指ClassLoader实例对象)必须相同 | 换句话说,在jvm中,即使这两个类对象(class对象)来源同一个Class文件,被同一个虚拟机
阅读全文
摘要:2. 双亲委派机制 2.1 双亲委派机制工作原理 2.1.1 原理 Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存,生成class对象。 加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种
阅读全文
摘要:类装载器子系统 1.1 什么是类装载子系统? 类装载器子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识(魔数)。 类装载器子系统(ClassLoader)只负责Class文件的加载,至于它是否可以运行,则由Execution Engine决定。 | 你妈妈[
阅读全文
摘要:2.1 什么是Java虚拟机? Java虚拟机是一台执行字节码的虚拟计算机,它拥有独立的运行机制,其运行的Java字节码也未必由Java语言编译而成。 JVM平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回收机制,以及可靠的即时编译器。 Java技术的核心就是Java虚拟机,因为所有
阅读全文
摘要:1. 虚拟机 1.1 什么是虚拟机? 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。 所谓虚拟机,就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。 1.2 虚拟机可以分为两类: 系统虚拟机:它们完全是对物理
阅读全文
摘要:一、win7环境安装1.安装jdk直接双击,安装到想要的环境目录2.修改环境变量2.1新建系统变量 JAVA_HOME 输入jdk安装目录 2.2 修改PATH修改PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;2.3 新建classpath将变量值修改为:.;%J
阅读全文