<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gj_user的博客]]></title><description><![CDATA[C#数据库编程]]></description><link>https://blog.youkuaiyun.com/gj_user</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gj_user]]></copyright><item><title><![CDATA[批量加载excel的xsl文件到hive分区表]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/126427008</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/126427008</guid><author>gj_user</author><pubDate>Fri, 19 Aug 2022 16:14:18 +0800</pubDate><description><![CDATA[批量加载excel的xsl文件到hive分区表]]></description><category></category></item><item><title><![CDATA[hive Serde解析复杂json串]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/126250658</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/126250658</guid><author>gj_user</author><pubDate>Tue, 09 Aug 2022 16:43:26 +0800</pubDate><description><![CDATA[使用hive-json-schema自动生成建表语句，Serde解析器解析JSON文件]]></description><category></category></item><item><title><![CDATA[01.shell常用命令工具]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/122095187</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/122095187</guid><author>gj_user</author><pubDate>Sat, 25 Dec 2021 12:53:07 +0800</pubDate><description><![CDATA[一、grep
1.1.语法和选项
语法：
 grep [选项] '关键字' 文件名

常见选项：
OPTIONS:
    -i: 不区分大小写
    -v: 查找不包含指定内容的行,反向选择
    -w: 按单词搜索
    -o: 打印匹配关键字
    -c: 统计匹配到的行数
    -n: 显示行号
    -r: 逐层遍历目录查找
    -A: 显示匹配行及后面多少行	
    -B: 显示匹配行及前面多少行
    -C: 显示匹配行前后多少行
    -l：只列出匹配的文件名
    ]]></description><category></category></item><item><title><![CDATA[五、定制Docker镜像]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/120584361</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/120584361</guid><author>gj_user</author><pubDate>Sat, 02 Oct 2021 11:34:50 +0800</pubDate><description><![CDATA[一、定制Docker镜像
当我们从docker镜像仓库中下载的镜像不能满足我们的需求时，我们可以通过以下两种方式对镜像进行更改。


从已经创建的容器中更新镜像,并且提交这个镜像


使用Dockerfile指令来创建—个新的镜像
好处
1、对于开发人员，可以为开发团队提供一个完全一致的开发环境
2、对于测试人员，可以直接拿开发时所构建的镜像测试。
3、对于运维人员，在部署时，可以实现快速部署、移值。


镜像的定制实际上就是定制每一层所添加的配置、文件。如果我们可以把每一层修改、安装、构建、操作的命令都写]]></description><category></category></item><item><title><![CDATA[四、Docker安装mysql]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/120584329</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/120584329</guid><author>gj_user</author><pubDate>Sat, 02 Oct 2021 11:15:36 +0800</pubDate><description><![CDATA[一、安装mysql


搜索镜像
docker search mysql



拉取镜像
docker pull mysql:5.6



设置密码
docker run --name mysql5.6 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.6



进入mysql命令行界面,允许mysql远程登录
docker exec -it mysql5.6 bash
mysql -uroot -proot
grant all privileges on *.* to 'roo]]></description><category></category></item><item><title><![CDATA[三、Docker安装nginx]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/120584266</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/120584266</guid><author>gj_user</author><pubDate>Sat, 02 Oct 2021 11:13:06 +0800</pubDate><description><![CDATA[一、安装nginx

拉取nginx

docker pull nginx:latest

查看本地镜像列表(即可看到nginx)
docker images

运行容器

docker run --name nginx-test -p 80:80 -d nginx

参数说明:
--name nginx-test  容器名称

-p 80:80:端口进行映射，将本地8080端口映射到容器内部的80端口。

-d nginx:设置容器在在后台一直运行。




验证安装



使用数据卷映射配置nginx配]]></description><category></category></item><item><title><![CDATA[一、Docker基础]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/120584197</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/120584197</guid><author>gj_user</author><pubDate>Sat, 02 Oct 2021 11:07:01 +0800</pubDate><description><![CDATA[一、Docker背景
1.常见项目特点

2.Docker应用场景

快速实现对分布式微服务架构一键部署
基于云计算、大数据时代，解决忙闲不均、服务资源高效利用
持续集成与持续交付(CI/CD)

二、Docker基础
1.Docker简介
背景
问题1:
某IT部门要上线一个项目。常规操作，直接去线上服务器，拷贝一个tomcat，然后改端口号，然后部署应用到webapps文件夹下，重启就好。一个服务器上可能会部署多个应用服务。如果某个应用出现问题，CPU100%，可能这个服务器上的其他应用也会出现问题。对]]></description><category></category></item><item><title><![CDATA[二、Docker容器]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/120583760</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/120583760</guid><author>gj_user</author><pubDate>Sat, 02 Oct 2021 10:40:03 +0800</pubDate><description><![CDATA[一、容器
1.1.介绍
简单的说，容器是独立运行的一个或一组应用，以及它们的运行环境。
对应的，虚拟机可以理解为模拟运行的一整套操作系统（(提供了运行态环境和其他系统环境）和运行在上面的应用。
1.2.查看容器状态
docker ps//查看运行的容器
docker ps -a l/查看所有的容器(包含运行和退出)
docker container ls
docker container ls-a

1.3.容器与镜像的关系

二、Docker启动容器
启动容器有二种方式，一种是基于镜像新建一个容器并启动，]]></description><category></category></item><item><title><![CDATA[2021-09-21]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/120406469</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/120406469</guid><author>gj_user</author><pubDate>Tue, 21 Sep 2021 22:39:47 +0800</pubDate><description><![CDATA[一、Docker背景
1.常见项目特点

2.Docker应用场景

快速实现对分布式微服务架构一键部署
基于云计算、大数据时代，解决忙闲不均、服务资源高效利用
持续集成与持续交付(CI/CD)

二、Docker基础
1.Docker简介
背景
问题1:
某IT部门要上线一个项目。常规操作，直接去线上服务器，拷贝一个tomcat，然后改端口号，然后部署应用到webapps文件夹下，重启就好。一个服务器上可能会部署多个应用服务。如果某个应用出现问题，CPU100%，可能这个服务器上的其他应用也会出现问题。对]]></description><category></category></item><item><title><![CDATA[二、Sqoop常见问题总结]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/116241135</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/116241135</guid><author>gj_user</author><pubDate>Wed, 28 Apr 2021 19:17:58 +0800</pubDate><description><![CDATA[Sqoop导入导出Null存储一致性问题
Hive中的Null在底层是以“\N”来存储，而MySQL中的Null在底层就是Null，为了保证数据两端的一致性,转化的过程中遇到null-string,null-non-string数据都转化成指定的类型，通常指定成"\N"。在导出数据时采用–input-null-string “\N” --input-null-non-string “\N” 两个参数。导入数据时采用–null-string “\N” --null-non-string “\N”。
Sqoop]]></description><category></category></item><item><title><![CDATA[scala函数式编程-常用的函数]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/115381353</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/115381353</guid><author>gj_user</author><pubDate>Thu, 01 Apr 2021 19:09:14 +0800</pubDate><description><![CDATA[foreach
用来遍历集合的采用 foreach 来遍历集合, 可以让代码看起来更简洁, 更优雅.
格式
def foreach(f:(A) =&gt; Unit): Unit
//简写形式
def foreach(函数)

说明

案例
 def main(args: Array[String]): Unit = {

    val list: immutable.Seq[Range.Inclusive] = List(1 to 10)
    val list2: immutable.Seq[I..]]></description><category></category></item><item><title><![CDATA[Scala集合]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/115359286</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/115359286</guid><author>gj_user</author><pubDate>Wed, 31 Mar 2021 20:14:57 +0800</pubDate><description><![CDATA[1.数组
1.1定长数组
创建数组
语法
格式一 : 通过指定长度定义数组
val /var 变量名 = new Array[元素类型](数组长度)

格式二 : 通过指定元素定义数组
val /var 变量名 = Array(元素1, 元素2, 元素3...)

注意
在scala中，数组的泛型使用 [] 来指定.
使用 数组名 (索引) 来获取数组中的元素.
数组元素是有默认值的, Int:0, Double:0.0, String: null
通过 数组名 .length 或者 数组名 .size 来]]></description><category></category></item><item><title><![CDATA[偏函数与Option类型]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/115332811</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/115332811</guid><author>gj_user</author><pubDate>Tue, 30 Mar 2021 18:56:45 +0800</pubDate><description><![CDATA[偏函数
1.1 定义
偏函数提供了更简洁的语法，可以简化函数的定义。配合集合的函数式编程，可以让代码更加优雅。
所谓的偏函数是指 被包在花括号内没有 match的一组case语句 , 偏函数是PartialFunction[A, B]类型的的一个实例对
象, 其中A代表输入参数类型, B代表返回结果类型.
1.2 语法格式
val 对象名 :PartialFunction[类型1，类型2]= { //这对大括号及其内部的一组case语句, 就组成了一个偏函数.
  case 值1 =&gt; 表达式1
  ]]></description><category></category></item><item><title><![CDATA[Scala隐式转换]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/115288833</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/115288833</guid><author>gj_user</author><pubDate>Mon, 29 Mar 2021 15:38:35 +0800</pubDate><description><![CDATA[1.1 概述
隐式转换和隐式参数是Scala中非常有特色的功能，也是Java等其他编程语言没有的功能。我们可以很方便地利用隐式转换来丰富现有类的功能
隐式转换的本质 ：隐式转换是在Scala编译器进行类型匹配时，如果找不到合适的类型,那么隐式转换会让编译器在作用范围内自动推导出来合适的类型。当编译器第一次编译失败的时候，会在当前的环境中查找能让代码编译通过的方法，用于将类型进行转换，实现二次编译。
1.2 分类
隐式参数
普通方法或者函数中的参数可以通过 implicit 关键字声明为隐式参数，调用该方法时]]></description><category></category></item><item><title><![CDATA[Scala泛型]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/115288705</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/115288705</guid><author>gj_user</author><pubDate>Sun, 28 Mar 2021 21:59:44 +0800</pubDate><description><![CDATA[1. 泛型
泛型的意思是泛指某种具体的数据类型,  在Scala中, 泛型用[数据类型]表示. 在实际开发中, 泛型一般是结合数组或者集合来使用的, 除此之外, 泛型的常见用法还有以下三种:

泛型方法
泛型类
泛型特质

1.1 泛型方法
泛型方法指的是把泛型定义到方法声明上, 即:该方法的参数类型是由泛型来决定的. 在调用方法时, 明确具体的数据类型.
格式
def 方法名[泛型名称](..) = {
    //...
}

需求
定义方法getMiddleElement(), 用来获取任意类型数组的]]></description><category></category></item><item><title><![CDATA[三、算术运算符]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/115256903</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/115256903</guid><author>gj_user</author><pubDate>Sat, 27 Mar 2021 12:46:19 +0800</pubDate><description><![CDATA[1.1 运算符简介
用来拼接变量或者常量的符号就叫: 运算符, 而通过运算符连接起来的式子就叫: 表达式. 实际开发中, 我们会经常用到它.
例如:
​	10 + 3 这个就是一个表达式,  而+号, 就是一个运算符.
​	注意: 在Scala中, 运算符并不仅仅是运算符, 也是函数的一种, 这点大家先了解即可, 后续我们详细讲解.
1.2 运算符的分类


算术运算符


赋值运算符


关系运算符


逻辑运算符


位运算符

注意: Scala中是没有三元运算符的, 被if-else给替代了.


]]></description><category></category></item><item><title><![CDATA[二、输出语句和分号]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/115256826</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/115256826</guid><author>gj_user</author><pubDate>Fri, 26 Mar 2021 22:41:19 +0800</pubDate><description><![CDATA[1.1 输出语句
方式一:  换行输出
格式:  println(里边写你要打印到控制台的数据);

方式二: 不换行输出
格式: print(里边写你要打印到控制台的数据);


注意: 不管是println(), 还是print()语句, 都可以同时打印多个值.格式为: println(值1, 值2, 值3...)

1.2 分号
Scala语句中,  单行代码最后的分号可写可不写.  如果是多行代码写在一行, 则中间的分号不能省略, 最后一条代码的分号可省略不写.
示例:
println("Hello]]></description><category></category></item><item><title><![CDATA[1. Scala简介与环境搭建]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/115254995</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/115254995</guid><author>gj_user</author><pubDate>Fri, 26 Mar 2021 21:59:58 +0800</pubDate><description><![CDATA[1. Scala简介与环境搭建
1.1 概述
​	Scala(斯嘎拉)这个名字来源于"Scalable Language(可伸缩的语言)", 它是一门基于JVM的多范式编程语言, 通俗的说: Scala是一种运行在JVM上的函数式的面向对象语言. 之所以这样命名, 是因为它的设计目标是: 随着用户的需求一起成长. Scala可被广泛应用于各种编程任务, 从编写小型的脚本到构建巨型系统, 它都能胜任. 正因如此, Scala得以提供一些出众的特性, 例如: 它集成了面向对象编程和面向函数式编程的各种特性, 以]]></description><category></category></item><item><title><![CDATA[一、Mysql主从复制（一主多从）搭建]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/107751496</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/107751496</guid><author>gj_user</author><pubDate>Sun, 02 Aug 2020 21:20:24 +0800</pubDate><description><![CDATA[介绍
   在实际生产中，数据的重要性不言而喻如果我们的数据库只有一台服务器，那么很容易产生单点故障的问题，比如这台服务器访问压力过大而没有响应或者奔溃，那么服务就不可用了，再比如这台服务器的硬盘坏了，那么整个数据库的数据就全部丢失了，这是重大的安全事故.为了避免服务的不可用以及保障数据的安全可靠性，我们至少需要部署两台或两台以上服务器来存储数据库数据，也就是我们需要将数据复制多份部署在多台不同的服务器上，即使有一台服务器出现故障了，其他服务器依然可以继续提供服务.
   MySQL提供了主从复制功能以..]]></description><category></category></item><item><title><![CDATA[（一）HBase基础]]></title><link>https://blog.youkuaiyun.com/gj_user/article/details/107473191</link><guid>https://blog.youkuaiyun.com/gj_user/article/details/107473191</guid><author>gj_user</author><pubDate>Mon, 20 Jul 2020 20:50:34 +0800</pubDate><description><![CDATA[（一）HBase基础
一、介绍
官网
1、基本概念
​     hbase是bigtable的开源java版本，是建立在hdfs之上。提供高可靠性、高性能、列存储、可伸缩、实时读写nosql                  的数据库系统。它介于nosql和RDBMS之间，仅能通过主键(row key)和主键的range来检索数据，仅支持单行事务(可通
过hive支持来实现多表join等复杂操作)。主要用来存储结构化和半结构化的松散数据。Hbase查询数据功能很简单，不支持join等复杂操作，不支持复杂的事]]></description><category></category></item></channel></rss>