<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ice__Clean的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ice__Clean</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ice__Clean]]></copyright><item><title><![CDATA[【HBase之轨迹】（3）Apache Phoenix 5.1.2 详细使用，像 MySQL 一样使用 SQL 语句操作 HBase（Shell 操作和 SpringBoot+MyBatis 整合）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/123110543</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/123110543</guid><author>Ice__Clean</author><pubDate>Tue, 08 Mar 2022 13:36:51 +0800</pubDate><description><![CDATA[本篇将记录 Phoenix 的安装配置过程，Shell 使用和使用 SpringBoot+MyBatis 整合 Phoenix。
配置过程中的一些常见错误已经在文中指出，有如 Phoenix 无法启动、缺少依赖、Command line too long、如何映射实体类等。
避免走笔者已经走过的弯路，如果还发现新的问题欢迎留言。]]></description><category></category></item><item><title><![CDATA[【HBase之轨迹】（2）使用 hbase命令 和 JavaAPI 操作 HBase（包括复杂查询--过滤器，HBase 工具类）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/123110102</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/123110102</guid><author>Ice__Clean</author><pubDate>Fri, 25 Feb 2022 15:43:26 +0800</pubDate><description><![CDATA[本篇介绍了 HBase 一系列命令的使用，包括表的增删改查，数据的增删改查
同时列出了官网中提到的各个过滤器和比较器及其功能，最后在命令行和 Java 中进行使用
JavaAPI 另外整理了一个工具集，以及其简单使用]]></description><category></category></item><item><title><![CDATA[【HBase之轨迹】（1）使用 Docker 搭建 HBase 集群]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/123068053</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/123068053</guid><author>Ice__Clean</author><pubDate>Tue, 22 Feb 2022 16:25:45 +0800</pubDate><description><![CDATA[继 hadoop 和 zookeeper 之后，再次使用 docker 搭建 hbase 集群，详细说明搭建过程以及 docker 搭建过程中会才踩到的坑。同时]]></description><category></category></item><item><title><![CDATA[【Java之轨迹】SpringBoot 实现动态往数据库中添加时间点，使程序在规定的时间点执行任务（定时任务变形应用，附实战：动态日程提醒任务调度）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/122756700</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/122756700</guid><author>Ice__Clean</author><pubDate>Mon, 31 Jan 2022 16:10:52 +0800</pubDate><description><![CDATA[本文中使用 SchedulingConfigurer ，利用动态多定时任务的添加和删除，实现了通过 mysql 数据库中指定的一系列时间点，使得程序在指定的时间点执行对应任务的功能。本质上是重复定时任务的变形，但更加灵活，能支持动态插入时间点使程序执行任务
文中附带一个实战，帮助大家更好地感受和理解]]></description><category></category></item><item><title><![CDATA[【Nginx之轨迹】Nginx + Lua 实现 waf Web 应用防火墙（解决 nignx 加载失败问题：LuaJIT version which is not OpenResty‘s）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/122644374</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/122644374</guid><author>Ice__Clean</author><pubDate>Tue, 25 Jan 2022 12:49:31 +0800</pubDate><description><![CDATA[详细步骤介绍 ngx_lua_waf 的安装和使用，配置和使用 luajit，lua-nginx-module，ngx_devel_kit 以及将他们配置到 nginx 中。包括防御 CC 攻击、SQL 注入、XSS 攻击，以及设置黑名单和白名单。其中分享了一些配置过程中踩过的坑，可减少后来者走的弯路


...]]></description><category></category></item><item><title><![CDATA[【MySQL之轨迹】MySQL 常见报错解决方案（Unit not found，Host ‘xxx‘ is not allowed，Can‘t connect to MySQL...）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/122590535</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/122590535</guid><author>Ice__Clean</author><pubDate>Wed, 19 Jan 2022 22:55:41 +0800</pubDate><description><![CDATA[整合了如下错误，有新报错及其解决方法也会即时更新：
Failed to start mysql.service: Unit not found.
ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx' (10060)
ERROR 1130 (HY000): Host 'xxx' is not allowed to connect to this MySQL server
ERROR 1396 (HY000): Operation CREATE U]]></description><category></category></item><item><title><![CDATA[【C语言】B 树全代码实现与超超详细思路解读（五天的呕心沥血，绝对原创每个细节，详解查找、插入与删除）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/121707784</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/121707784</guid><author>Ice__Clean</author><pubDate>Sun, 05 Dec 2021 13:10:45 +0800</pubDate><description><![CDATA[本文详细解读了 B 树的查找、插入与删除代码，其中代码有大量的注释，同时还附上了个人的编写思路、代码总体思路、应该注意的地方以及需要避开的坑等等。对于某些需要解释的参数，也都做了详细的说明。相信看完本篇博客，即便不参考文中的代码，手撕一份 B 树也是没问题的啦]]></description><category></category></item><item><title><![CDATA[【C语言】打印二叉树树形（制表符实现，清晰+高拓展）（2022-10-22 更新—偏移量说明）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/121078026</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/121078026</guid><author>Ice__Clean</author><pubDate>Mon, 01 Nov 2021 13:41:45 +0800</pubDate><description><![CDATA[—— 目录 ——0. 前言1. 效果展示2. 核心代码及解读3. 辅助代码

0. 前言
上 优快云 找了很多份树形代码，一个共通的感觉就是拓展性不够强
比如说树大了节点之间被撑开无法兼容性不好
没有使用树枝连接的画显示稍显混乱，使用斜线当树枝又不好拓展
还有一部分就是代码太冗长看不懂
基于此，我打算用回制表符，力求清晰显示出树形
肝了几个小时的代码，过程中一点一点调出来树形
代码部分也在不断优化，思路在不断的调试中也不断改变
最后总结出一种以绝对偏移量画树形的方法，下边将一一对代码进行解释
1. 效果展]]></description><category></category></item><item><title><![CDATA[【Kafka之轨迹】Kafka 入门使用]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120896275</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120896275</guid><author>Ice__Clean</author><pubDate>Wed, 27 Oct 2021 22:09:05 +0800</pubDate><description><![CDATA[—— 目录 ——0. 前言1. 安装、启动与关闭① 下载② 配置③ 启动④ 关闭2. 基础使用① 主题（Topic）的增删查② 模拟发布订阅

0. 前言
本博客使用的版本是 0.11.0.3
各版本的区别可以自行了解，大致可选 0.11.x 1.x 2.x 三种版本
使用的集群是 Docker 搭建的，可参见：
【Docker x Hadoop】使用 Docker 搭建 Hadoop 集群（从零开始保姆级）
集群之间的分发脚本 xsync 参照尚硅谷，可参见：
【Linux之轨迹】Linux 各种实用小功]]></description><category></category></item><item><title><![CDATA[【Linux之轨迹】1核2G 内存不够怎么办？Swap 交换分区解决内存不足问题]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120970893</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120970893</guid><author>Ice__Clean</author><pubDate>Tue, 26 Oct 2021 15:06:29 +0800</pubDate><description><![CDATA[需求
本人服务器买的是最便宜的 1核2G 服务器，最近在学新技术时，发现服务器经常死机，很纳闷
后来才注意到时内存问题，几个程序跑起来 2G 内存基本上拉满，这时候再启动其他程序时，就会导致服务器死机
但是又没钱买新服务器，也没钱升级，咋办呢
穷砸的我终于注意到 free 下边的 swap，一番查询后反复尝试后，终于掌握了 swap 的使用方法

首先看一下在没使用 swap 之前的内存状态：

空闲分区仅剩 78M，可供程序使用的仅剩 55M
这时候只需要再跑一个小小的程序，服务器立马就会死机（已经重启.]]></description><category></category></item><item><title><![CDATA[【Zookeeper之轨迹】Zookeeper 入门使用（集群使用 Docker 模拟）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120563538</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120563538</guid><author>Ice__Clean</author><pubDate>Thu, 21 Oct 2021 14:59:02 +0800</pubDate><description><![CDATA[1. 安装启动与解决错误
① 下载安装包
https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/
选择 apache-zookeeper-3.5.7-bin.tar.gz

② 在 Linux 服务器中解压
得到以下目录，然后新增 data 目录存放 zookeeper 数据（mkdir data）
bin  conf  docs  lib  LICENSE.txt  logs  NOTICE.txt  README.md  README_pac]]></description><category></category></item><item><title><![CDATA[【Hadoop之轨迹】Hadoop 使用（纯干货！）（用 Docker 模拟的集群）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120575827</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120575827</guid><author>Ice__Clean</author><pubDate>Sat, 16 Oct 2021 10:50:07 +0800</pubDate><description><![CDATA[—— 目录 ——1. 安装 Hadoop2. 模拟集群环境3. HDFS基础命令Java 调用 API 操作

1. 安装 Hadoop
本篇博客 Hadoop 版本为 3.1.3
首先进入官网下载 Hadoop ：http://archive.apache.org/dist/hadoop/core
要安装在 Linux 上的，选择 .tar.gz 后缀的压缩包
上传到服务器解压后，配置环境变量：
可以直接配置在 /etc/profile 文件中，也可以新建一个 xxx.sh 放在 /etc/profile]]></description><category></category></item><item><title><![CDATA[【Docker x Hadoop x Java API】xxx could only be written to 0 of the 1 minReplication nodes,There are 3]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120636167</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120636167</guid><author>Ice__Clean</author><pubDate>Thu, 07 Oct 2021 15:57:34 +0800</pubDate><description><![CDATA[脑阔疼
本人使用 docker 搭建的 hadoop  集群：【Docker x Hadoop】使用 Docker 搭建 Hadoop 集群（从零开始保姆级）
今天在使用 Java API 对 Docker 搭建的 Hadoop 集群进行操作时
创建和删除文件夹可以，但一到了上传和下载文件，就疯狂报错
上传的文件在集群中可以看到，但大小均为 0 ，主要的异常报错主要如下：

File /idea/warn.log could only be written to 0 of the 1 minReplica.]]></description><category></category></item><item><title><![CDATA[【Docker之轨迹】为正在运行中的容器动态添加端口映射（使用 iptables，附删除 iptables 规则）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120623604</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120623604</guid><author>Ice__Clean</author><pubDate>Wed, 06 Oct 2021 13:06:43 +0800</pubDate><description><![CDATA[需求
docker 中为容器添加端口映射只能在启动容器时（即 run）添加，而一旦启动完毕后，docker 就不再提供端口映射的功能，那我们可以绕开 docker，自己手动添加吗？答案是可以的！

一番查找后，我了解到 docker 添加端口映射实际上是基于 iptables 实现的，所以只要修改里边的映射规则，就可以作用到 docker 容器上了，步骤如下：
① 获取容器 IP
可以进入到容器，通过 ifconfig 拿到容器的 IP 地址，如下：
当然，如果有为容器固定 IP 地址的，话也可以直接用那.]]></description><category></category></item><item><title><![CDATA[【Docker x Hadoop】使用 Docker 搭建 Hadoop 集群（从零开始保姆级）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120577867</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120577867</guid><author>Ice__Clean</author><pubDate>Sun, 03 Oct 2021 20:29:08 +0800</pubDate><description><![CDATA[—— 步骤 ——0. 背景1. 创建出第一个容器2. 为该容器配置 java 和 hadoop 环境3. 配置允许外界通过 ssh 连接容器4. 由该容器克隆出多个容器5. 为各个容器配置 ssh 免密登录6. 开始编写集群配置7. 启动集群

0. 背景
看到网上的教程，都是使用虚拟机克隆出多台虚拟机模拟集群
但在真正的服务器上，发现这种方法行不通了
这时候就想起 Docker 了，仔细想象 Docker 学完到现在还没真正实战过，这次正好是一个好机会
实现思路也很简单，在 Docker 中创建多个 Ce]]></description><category></category></item><item><title><![CDATA[【Linux之轨迹】Linux 各种实用功能合集（持续补充）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120578052</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120578052</guid><author>Ice__Clean</author><pubDate>Sat, 02 Oct 2021 15:09:53 +0800</pubDate><description><![CDATA[—— 功能列表 ——1. 了解服务器信息2. 修改主机名字3. 文件查找4. ls 命令高亮5. 常见命令安装6. ssh 免密登录

1. 了解服务器信息
一台服务器刚到手，首先当然就是要先认识它啦
1)	查看系统信息
	uname -a

2)	查看操作系统版本
	cat /etc/redhat-release

3)	查看网络配置信息
	ifconfig

4)	查看磁盘信息，加 -h 会将单位转化为 G，M 这些
	df -h

5)	查看内存实用情况，-h 同上
	free -h


2. 修改主]]></description><category></category></item><item><title><![CDATA[【Redis之轨迹】记录一次 Linux 服务器惨遭挖矿的经历 [kdevtmpfs]（Redis 安全问题）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/119828226</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/119828226</guid><author>Ice__Clean</author><pubDate>Thu, 30 Sep 2021 22:38:58 +0800</pubDate><description><![CDATA[Redis 漏洞说明
Redis 默认情况下，会绑定在 0.0.0.0:6379，在没有利用防火墙进行屏蔽的情况下，将会将 Redis 服务暴露到公网上，如果在没有开启认证的情况下，将导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。
攻击者在未授权访问 Redis 的情况下利用 Redis 的相关方法，可以成功将自己的公钥写入目标服务器的 ~/.ssh 文件夹的 authotrized_keys 文件中，进而可以直接登录目标服务器。如果Redis服务是以roo.]]></description><category></category></item><item><title><![CDATA[【Spring之轨迹】SpringBoot 项目启动时，报错 java.nio.charset.MalformedInputException: Input length = 1]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120558643</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120558643</guid><author>Ice__Clean</author><pubDate>Thu, 30 Sep 2021 00:21:59 +0800</pubDate><description><![CDATA[在一个夜黑风高的晚上，我兴起而走，缓缓缓缓。
突然！就掉坑里了。嗯??嗯？？？
Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1
at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:200)
at org.yaml.snakeyaml.reader.Stre.]]></description><category></category></item><item><title><![CDATA[【Docker之轨迹】Docker 入门使用（穿插踩坑经历）]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120244456</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120244456</guid><author>Ice__Clean</author><pubDate>Mon, 20 Sep 2021 13:08:14 +0800</pubDate><description><![CDATA[—— 目录 ——1. 安装 Docker2. Docker 基本使用① 镜像命令② 容器命令③ 辅助命令3. 提交自己的镜像自定义脚本安装 Docker

1. 安装 Docker
① 查看服务器环境
cat /etc/os-release：查看系统内核版本（确认在 3.10 以上）
uname -r：查看服务器版本

② 卸载旧的 docker（确保没有下载）
yum remove docker \
           docker-client \
           docker-client-l]]></description><category></category></item><item><title><![CDATA[【魔数 bug + 求助】挖槽，MP4 魔数变了？如何解决无法通过魔数判断 MP4 文件类型？]]></title><link>https://blog.youkuaiyun.com/Ice__Clean/article/details/120316135</link><guid>https://blog.youkuaiyun.com/Ice__Clean/article/details/120316135</guid><author>Ice__Clean</author><pubDate>Wed, 15 Sep 2021 20:42:02 +0800</pubDate><description><![CDATA[问题描述
今天在测试上传文件时，发现 MP4 格式的文件老是无法通过魔数判断出类型
在网上查到的 MP4 魔数统一都是 00000020667479706D70
多次尝试过后，本澈选择了断点将魔数揪出来
将一个 MP4 的魔数取出来后，发现是 000000146674797069736F6D0
MP4 的魔数是 000000146674797069736F6D0 ！！！
What？为什么魔数会变？
不知道为啥，改成了这个之后，该 MP4 格式的文件，就都顺利识别出来了
—— “虽然不知道为什么，但我大受震惊]]></description><category></category></item></channel></rss>