<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[treesorshining的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/treesorshining</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; treesorshining]]></copyright><item><title><![CDATA[【Hive学习】对于HiveSQL底层是MapReduce的一次记录]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/129656192</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/129656192</guid><author>treesorshining</author><pubDate>Sun, 19 Mar 2023 20:51:56 +0800</pubDate><description><![CDATA[sort by：只保证每个 reducer 的输出有序，不保证全局有序。在这里将reducer数量设为2，验证sort by局部排序的作用。根据查询结果，可以推断前面四行由一个 reducer 处理，后面 2 行由另一个 reducer 处理。]]></description><category></category></item><item><title><![CDATA[【解决】fs.FSInputChecker: Found checksum error]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/129558599</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/129558599</guid><author>treesorshining</author><pubDate>Wed, 15 Mar 2023 16:12:04 +0800</pubDate><description><![CDATA[通过HDFS上传文件时，上传失败，并报错“fs.FSInputChecker: Found checksum error”1.删除相应crc校验文件。2.重新命名文件即可。]]></description><category></category></item><item><title><![CDATA[【解决】wsl安装虚拟机平台报错“无法解析服务器的名称或地址”]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/128582899</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/128582899</guid><author>treesorshining</author><pubDate>Fri, 06 Jan 2023 18:07:48 +0800</pubDate><description><![CDATA[利用wsl安装拟机平台报错“无法解析服务器的名称或地址”]]></description><category></category></item><item><title><![CDATA[Scala入门（五）函数式编程]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/127543575</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/127543575</guid><author>treesorshining</author><pubDate>Wed, 26 Oct 2022 23:58:15 +0800</pubDate><description><![CDATA[1）函数定义（1）函数 1：无参，无返回值（2）函数 2：无参，有返回值（3）函数 3：有参，无返回值（4）函数 4：有参，有返回值（5）函数 5：多参，无返回值（6）函数 6：多参，有返回值2）案例// 函数 1：无参，无返回值 def test1() : Unit = {println("无参，无返回值") } test1() // 函数 2：无参，有返回值 def test2() : String = {]]></description><category></category></item><item><title><![CDATA[【Swagger】Swagger简介及简单使用]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/127543510</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/127543510</guid><author>treesorshining</author><pubDate>Wed, 26 Oct 2022 23:51:45 +0800</pubDate><description><![CDATA[说起Swagger就不得不说前后端分离当前最主流的前后端分离技术栈：Vue+Springboot后端时代：前端只用管理静态页面:html、css、js最后统一交给后端，后端将其修改为jsp，在整个过程中，后端充当主力前后端分离时代：后端：后端控制层，服务层，数据访问层【后端团队】前端：前端控制层，视图层【前端团队】前端可以自定义一些伪后端数据：json,在写的时候就存在，不需要后端，前端工程依旧能够跑起来那么前端后端如何交互？]]></description><category></category></item><item><title><![CDATA[Web前端入门（十九）传统网页布局式之标准流、浮动]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/127543294</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/127543294</guid><author>treesorshining</author><pubDate>Wed, 26 Oct 2022 23:36:26 +0800</pubDate><description><![CDATA[float属性用于创建浮动框，将其移动到一边，直到左边缘或右边缘触及包含块或另一个浮动框的边缘选择器 {float : 属性值;}属性值描述none元素不浮动left元素向左浮动，如左侧无浮动框，则会位于最左边，有则紧贴左边浮动框right元素向右浮动，类似于left多个块级元素纵向排列找标准流，多个块级元素横向排列找浮动先设置盒子大小，之后设置盒子的位置。清除浮动的原因：①：父级没高度②：子盒子浮动了③：影响下面布局了，就应该清除浮动了。清除浮动方式优点缺点。]]></description><category></category></item><item><title><![CDATA[Web前端入门（十八）圆角边框及盒子阴影]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/127543196</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/127543196</guid><author>treesorshining</author><pubDate>Wed, 26 Oct 2022 23:22:08 +0800</pubDate><description><![CDATA[半径（圆的半径） 原理:(椭）圆与边框的交集形成圆角效果



参数值可以是数值或百分比的形式
如果是正方形盒子，想要设置为一个圆，把数值修改为高度或者宽度的一半即可，或者直接写为50%
如果是一个矩形，设置为高度的一半就可以（圆角矩形效果）
该属性是一个简写属性，可以跟四个值，分别代表左上角，右上角，右下角，左下角


2.盒子阴影
CSS3 中新增了盒子阴影，可以使用 box-shadow 属性为盒子添加阴影。




值
描述




h-shadow
必需。水平阴影的位置，允许负值。阴影正值往右移动]]></description><category></category></item><item><title><![CDATA[Web前端入门（十七）CSS盒子模型]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/126594769</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/126594769</guid><author>treesorshining</author><pubDate>Mon, 29 Aug 2022 23:34:41 +0800</pubDate><description><![CDATA[当上下相邻的两个块元素（兄弟关系）相遇时，如果上面的元素有下外边距 margin-bottom，下面的元素有上外边距 margin-top ，则他们之间的垂直间距不是 margin-bottom 与 margin-top 之和。网页元素很多都带有默认的内外边距，而且不同浏览器默认的也不一致。对于两个嵌套关系（父子关系）的块元素，父元素有上外边距同时子元素也有上外边距，此时父元素会塌陷较大的外边距值。使用 margin 定义块级元素的垂直外边距时，可能会出现外边距的合并。，但是必须满足两个条件。...]]></description><category></category></item><item><title><![CDATA[【大数据】【Spark】Spark核心编程（一）RDD概述]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/126415376</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/126415376</guid><author>treesorshining</author><pubDate>Thu, 18 Aug 2022 22:58:33 +0800</pubDate><description><![CDATA[Spark 框架在执行时，先申请资源，然后将应用程序的数据处理逻辑分解成一个一个的计算任务。由外部存储系统的数据集创建 RDD 包括：本地的文件系统，所有 Hadoop 支持的数据集，比如 HDFS、HBase等。➢ 不可变：RDD 封装了计算逻辑，是不可以改变的，想要改变，只能产生新的 RDD，在新的 RDD 里面封装计算逻辑。RDD 是计算模型的封装，当需求中需要将多个计算模型进行组合时，就需要将多个 RDD 建立依赖关系。计算数据时，可以根据计算节点的状态选择不同的节点位置进行计算。...]]></description><category></category></item><item><title><![CDATA[【大数据】【Spark】Spark运行架构]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/126282499</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/126282499</guid><author>treesorshining</author><pubDate>Thu, 11 Aug 2022 11:54:36 +0800</pubDate><description><![CDATA[Spark 集群的独立部署环境中，不需要依赖其他的资源调度框架，自身就实现了资源调度的功能，所以环境中还有其他两个核心组件：Master 和 Worker，这里的 Master 是一个进程，主要负责资源的调度和分配，并进行集群的监控等职责，类似于 Yarn 环境中的 RM, 而Worker 呢，也是进程，一个 Worker 运行在集群中的一台服务器上，由 Master 分配资源对数据进行并行的处理和计算，类似于 Yarn 环境中 NM。在提交应用中，可以提供参数指定计算节点的个数，以及对应的资源。.....]]></description><category></category></item><item><title><![CDATA[【大数据】【Spark】Spark入门]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/126167714</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/126167714</guid><author>treesorshining</author><pubDate>Thu, 04 Aug 2022 22:26:23 +0800</pubDate><description><![CDATA[由于Spark程序的编写最好使用Scala语言，可参照博主以下Scala入门文章。]]></description><category></category></item><item><title><![CDATA[【大数据】【Spark】Spark概述]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/126134616</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/126134616</guid><author>treesorshining</author><pubDate>Wed, 03 Aug 2022 09:58:18 +0800</pubDate><description><![CDATA[Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。]]></description><category></category></item><item><title><![CDATA[Web前端入门（十六）CSS三大特性]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/126134331</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/126134331</guid><author>treesorshining</author><pubDate>Wed, 03 Aug 2022 09:44:36 +0800</pubDate><description><![CDATA[代码】Web前端入门（十六）CSS三大特性。1.层叠性
相同选择器设置相同的样式，此时一个样式就会覆盖另一个冲突的样式。
层叠性主要解决样式冲突的问题
层叠性原则：
样式冲突，遵循的原则是就近原则，哪个样式离结构近，就按那个样式显示。
2.继承性
CSS中的继承：子标签会继承父标签里面的某些样式，如文本颜色和字号等（text-，font-，line-这些元素开头的可以继承，以及color属性）
想要设置一个可继承的属性，只需将它应用于父元素即可
当同一个元素指定多个选择器，就会有优先级的产生...]]></description><category></category></item><item><title><![CDATA[【数据结构】【王道】【树与二叉树】并查集的实现及优化（可直接运行）]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/126028472</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/126028472</guid><author>treesorshining</author><pubDate>Thu, 28 Jul 2022 10:07:45 +0800</pubDate><description><![CDATA[并查集是一种树型的数据结构，用于处理一些不相交集合的合并及查询问题，常常在使用中以森林来表示。正如其名，主要有查找与合并两个操作。Union操作优化
目的：减少Find操作的所需的时间
方法：在构建新树时，尽可能不让树长高（这样可以降低Find操作最坏时间复杂度）
具体实现方法：将根结点的值改为(-结点数，即负结点数)，再根据此为依据，让小树合并到大树上
通过此优化树的高度不会超过log2n(向下取整) + 1
之后Find操作的最坏时间复杂度为O(log2n)
...]]></description><category></category></item><item><title><![CDATA[【数据结构】【王道】【树与二叉树】中序二叉线索树的实现及基本操作（可直接运行）]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/125968732</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/125968732</guid><author>treesorshining</author><pubDate>Mon, 25 Jul 2022 10:09:56 +0800</pubDate><description><![CDATA[在含有n个结点的二叉树中，有n+1个空指针，即每个度为1的结点有一个空指针，每个叶子结点有两个空指针，这就造成了空间的浪费。可以通过一些方法将这些空指针充分利用起来，即将这些空指针改成指向前驱或后继的线索，可以视为在原本的二叉树上用空指针建立一个线索链表，加上了线索的二叉树也可称为线索二叉树。要找到一个结点的后继，如果右孩子指针tag==1，直接用线索即可，如若不为1，那么就要根据中序遍历的特点来寻找后继结点，即左根右。如果该结点有右孩子且右孩子为叶子结点，那么这就是其后继结点，如果该节点有右孩子，且为分支]]></description><category></category></item><item><title><![CDATA[【数据结构】【王道】【树与二叉树】二叉树非递归遍历的实现（可直接运行）]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/125943308</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/125943308</guid><author>treesorshining</author><pubDate>Sat, 23 Jul 2022 09:13:40 +0800</pubDate><description><![CDATA[如果结点不为空，则先将结点压入栈中，然后先遍历此结点下所有左孩子，直至某一个左孩子为NULL，然后弹出栈顶结点并访问，若其右孩子不为NULL则进入其右子树进行上述操作，直至某个结点有孩子为NULL为止，若其右孩子为NULL则继续弹出栈顶结点进行访问，然后继续上述操作，直至退出循环为止。可以以另一种较为巧妙的方式实现，可知后序遍历结果为左右根，先序遍历结果为根左右，可将先序遍历循环中左右全部互换，结果应为根右左，然后将结果全部取反，可得左右根，即后序遍历结果。但需要额外设立一个栈，增加了空间开销。......]]></description><category></category></item><item><title><![CDATA[【数据结构】【王道】【树与二叉树】二叉树层序遍历实现（可直接运行）]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/125925208</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/125925208</guid><author>treesorshining</author><pubDate>Fri, 22 Jul 2022 09:24:17 +0800</pubDate><description><![CDATA[实现思路借助一个辅助队列，从根节点开始，根结点入队，访问此结点后出队，并将此结点的左右孩子入队（如果有），再依次对队头结点执行上述操作，直至队列为空为止。层序遍历即是一层一层从左至右访问二叉树每个结点，类似于广度优先遍历。...]]></description><category></category></item><item><title><![CDATA[【数据结构】【王道】【树与二叉树】二叉树的实现及基本操作（可直接运行）]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/125905714</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/125905714</guid><author>treesorshining</author><pubDate>Thu, 21 Jul 2022 09:50:33 +0800</pubDate><description><![CDATA[各部分的解释已经以注释形式写于代码中。
// 先序遍历
// 即根左右，先访问根结点，再依次访问左右结点
void PreOrder(BiTree T) {
    // 根节点为空则直接跳过
    if(T != NULL) {
        // 访问根结点
        visit(T);
        // 递归访问左子树
        PreOrder(T->lchild);
        // 地柜访问右子树
        PreOrder(T->rchild);
    }
}.]]></description><category></category></item><item><title><![CDATA[Web前端入门（十五）CSS背景]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/125858969</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/125858969</guid><author>treesorshining</author><pubDate>Mon, 18 Jul 2022 19:57:11 +0800</pubDate><description><![CDATA[属性作用值背景颜色预定义的颜色值/十六进制/RGB代码背景图片url(图片路径)是否平铺背景位置length/position分别是x和y坐标背景附着scroll(背景滚动)/fixed(背景固定)背景简写书写更简单背景颜色背景图片地址背景平铺背景滚动背景位置背景色半透明背景颜色半透明后面必须是四个值。...]]></description><category></category></item><item><title><![CDATA[【数据结构】【栈】括号匹配算法（可直接运行）]]></title><link>https://blog.youkuaiyun.com/treesorshining/article/details/125828626</link><guid>https://blog.youkuaiyun.com/treesorshining/article/details/125828626</guid><author>treesorshining</author><pubDate>Sun, 17 Jul 2022 10:19:06 +0800</pubDate><description><![CDATA[假设表达式中允许包含三种括号()、[]、{}，其嵌套的顺序任意，即([]{})或[()[]{}]等均为正确的格式，实现一个算法，完成对表达式中括号的检验。（5）从栈顶取出元素，检测此左括号与读入右括号是否匹配，如果不匹配，则返回匹配失败。（4）如果是右括号，则先检查栈是否为空，如果栈为空，则表示无左括号与之匹配，匹配失败。（6）检测栈是否为空，如果栈为空，则表示匹配完成后还有多余的括号，匹配失败。（4）直至第四个括号出现，发现其能与最近的第三个括号匹配，那第三个括号匹配完成，退出等待。...]]></description><category></category></item></channel></rss>