本项目使用是langchain LLM框架和文心大模型4.0 API,结合现有知识库开发一个聊天机器人,该机器人不仅有大模型的基础知识,并且还可以根据提供的知识库文档进行问答。
Centos7离线安装rpm及其依赖
使用Docker搭建Hadoop+Hive集群环境(详细步骤)
Centos7使用OpenVPN实现内网穿透和代理服务
引言
在工作中我们经常会遇到这样的一些问题,例如公司服务器数据存放在公司内容,现在在外面出差无法通过资源浏览器直接访问,通常的做法是使用远程控制软件如to_desk
、向日葵等等,这种方式虽然能够解决我们文件查找的问题,但是在进行传输的时候,第三方工具的传输速度太慢,并且这种方式也不太优雅;再比如,公司在做开发时,一般是很多人一起完成一个项目,每个人负责一部分代码,这个时候就设置到一个代码同步的问题,场景的做法就是在局域网中搭建gitlab
,然后大家统一将代码上传到gitlab
,但是有的时候由于一些原因有些工作需要回家完成,但是在家完成后又无法直接上传到公司的局域网gitlab
,和其他同事之间就无法进行及时的同步进度~~~~。
这些问题在学习完本文的内容后都会得到解决。
安装前的准备工作
设备
我在这里演示的设备有3个:
- 服务端:阿里云服务器Centos7操作系统。【服务端一定要位于公网】
- 客户端1:本机Windows11操作系统。
- 客户端2:公司服务器Centos7操作系统
在PyPI上发布自己的Python库
项目目录结构
例如,在此演示的发布库的项目结构如下所示:
1 | MinglogUtils |
使用Docker搭建hadoop集群
Hadoop集群规划
hadoop102 | hadoop103 | hadoop104 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
这里的规划方式和前面我们讲到的一致。
相关IP
配置如下所示:
宿主机网络信息:
IP
:192.168.128.66
GATEWAY
:192.168.128.2
DNS1
:192.168.128.2
集群网络配置:
hadoop102
:192.168.128.102
hadoop103
:192.168.128.103
hadoop104
:192.168.128.104
Hadoop-20-Hive案例实战
第一题
现有数据score_info.txt
文件,文件内容如下所示:
1 | 1001 01 90 |
编写HiveQL
代码,完成以下问题:
创建
score_info
表,字段名分别为uid
、subject_id
和score
。1
2
3
4
5
6
7
8create table if not exists score_info(
uid string,
subject_id string,
score int
)
row format delimited
fields terminated by '\t'
lines terminated by '\n';将数据导入
score_info
表。1
2
3load data local
inpath '/opt/module/hive-3.1.2/datas/score_info.txt'
overwrite into table score_info;求出每门学科的平均成绩。
1
2
3
4
5
6select uid,
score,
subject_id,
avg(score) over (partition by subject_id) avg_score
from
score_info找出所有科目成绩都大于某个学科平均成绩的学生。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18select
t2.uid
from
(
select
t1.uid,
if(score > avg_score, 0, 1) flag
from(
select uid,
score,
subject_id,
avg(score) over (partition by subject_id) avg_score
from
score_info
) t1
) t2
group by uid
having sum(t2.flag) = 0;
第二题
现有数据action.txt
文件,文件内容如下所示:
1 | u01 2017/1/21 5 |
编写HiveQL
代码,完成以下问题:
创建
action
表,字段名分别为userId
,visitDate
和visitCount
。1
2
3
4
5
6
7
8create table if not exists action(
userid string,
visitDate string,
visitCount int
)
row format delimited
fields terminated by '\t'
lines terminated by '\n';将数据导入
action
表。1
2
3load data local
inpath '/opt/module/hive-3.1.2/datas/action.txt'
into table action;统计出每个用户的月累计访问次数。
1
2
3
4
5select
userid,
substring(visitDate, 0, 6) visitMonth,
sum(visitCount) over (partition by userid, month(visitDate)) sumCount
from action;统计出每个用户的逐月累计访问次数。
1
2
3
4
5
6
7
8
9
10
11select
userid,
visitMonth,
max(sumCount)
from(
select
uid,
substring(visitDate, 0, 6) visitMonth,
sum(visitCount) over (partition by userid, month(visitDate) order by visitDate) sumCount
from action) t1
group by userid, visitMonth;
Docker-2-常用Dockerfile命令
常用Dockerfile
命令汇总。
Docker-1-Docker基础
docker简介
什么是docker
Docker
最初是dotCloud
公司创始人Solomon Hykes
在法国期间发起的一个公司内部项目,它是基于 dotCloud
公司多年云服务技术的一次革新,并于2013年3月
以 Apache 2.0
授权协议开源,主要项目代码在 GitHub
上进行维护。Docker
项目后来还加入了Linux
基金会,并成立推动开放容器联盟(OCI
)。
Docker
使用 Google
公司推出的Go
语言进行开发实现,基于Linux
内核的cgroup
,namespace
,以及OverlayFS
类的Union FS
等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。最初实现是基于LXC
,从 0.7
版本以后开始去除 LXC
,转而使用自行开发的libcontainer
,从 1.11
开始,则进一步演进为使用runC
和containerd
。
Docker
在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker
技术比虚拟机技术更为轻便、快捷。