数据中台

来自ling
跳转至: 导航搜索

linkis

https://linkis.apache.org/zh-CN/docs/latest/introduction

https://github.com/apache/incubator-linkis

linkis docker

2.安装docker# 2.1 安装教程#

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
systemctl enable docker

2.2 设置国内镜像#

vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"],
"insecure-registries": ["https://registry.mydomain.com","http://hub-mirror.c.163.com"]
}

3. 安装kind#

mkdir -p /alidata/linkis
cd /alidata/linkis

(1)手工下载kind二进制#

https://github.com/kubernetes-sigs/kind/releases

 wget https://github.com/kubernetes-sigs/kind/releases/download/v0.17.0/kind-linux-amd64

(2)安装kind二进制#

mv kind-linux-amd64 /usr/bin/kind
chmod +x /usr/bin/kind

4. 安装linkis#

0.下载或自行编译linkis1.3.0部署包 使用版本:dev1.3.0分支编译版本

cd /alidata/linkis
https://linkis.apache.org/zh-CN/download/main

下载,上传,解压

tar -xzvf apache-linkis-1.3.0-incubating-bin.tar.gz

1.建立目录#

mkdir -p /opt/data/common/extendlib

2.拷贝驱动到 /opt/data/common/extendlib#

cd  /opt/data/common/extendlib
curl https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar -o /opt/data/common/extendlib/[mysql-connector-java-8.0.28.jar] (https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar)

3.重置kind(非必要)#

./bin/install-linkis-to-kubernetes.sh reset

4.拉取镜像#

./bin/install-linkis-to-kubernetes.sh pull -mghcr.dockerproxy.com

5.安装linkis到kind中#

./bin/install-linkis-to-kubernetes.sh install -l -mghcr.dockerproxy.com

6.使用命令查看服务,等待全部启动成功#

kubectl get pods -A


7.拷贝ldh环境到linkis#

./helm/scripts/prepare-for-spark.sh

8.开启端口映射#

./helm/scripts/remote-proxy.sh start

9.访问系统#

linkis-web: http://10.0.2.101:8088/
eureka: http://10.0.2.101:20303/

10.进入容器#

./helm/scripts/login-pod.sh cg-engineconnmanager

执行shell测试

sh ./bin/linkis-cli -engineType shell-1 -codeType shell -code "echo "hello" "  -submitUser hadoop -proxyUser hadoop

执行hive测试

sh ./bin/linkis-cli -engineType hive-2.3.3 -codeType hql -code "show tables"  -submitUser hadoop -proxyUser hadoop

执行spark测试

sh ./bin/linkis-cli -engineType spark-2.4.3 -codeType sql -code "show tables"  -submitUser hadoop -proxyUser hadoop

执行python测试

sh ./bin/linkis-cli -engineType python-python2 -codeType python -code "print(\"hello\")"  -submitUser hadoop -proxyUser hadoop  -confMap  python.version=python

开发环境

maven版本升级到3.8,6

mvnw.cmd -N install
mvnw.cmd clean install -Dmaven.javadoc.skip=true -Dmaven.test.skip=true

https://linkis.apache.org/zh-CN/docs/latest/development/linkis_debug

cd incubator-linkis/web
npm install
npm run build


创建 links数据库

初始化 db/linkis_ddl.sql 和db/linkis_dml.sql

assembly-combined-package/assembly-combined/conf 中修改配置

LINKIS-CG-ENGINECONNMANAGER 引擎管理服务 
LINKIS-CG-ENGINEPLUGIN  引擎插件管理服务 
LINKIS-CG-ENTRANCE  计算治理入口服务
LINKIS-CG-LINKISMANAGER  计算治理管理服务 
LINKIS-MG-EUREKA        微服务注册中心服务   
LINKIS-MG-GATEWAY  网关服务 
LINKIS-PS-CS 上下文服务
LINKIS-PS-PUBLICSERVICE 公共服务 

如果开启了数据源服务功能(默认未开启),会看到这两个服务

LINKIS-PS-DATA-SOURCE-MANAGER  
LINKIS-PS-METADATAMANAGER

代码结构

│-- assembly-combined-package //编译打包最后阶段步骤 整合所有lib包和安装部署脚本配置等
│        │-- assembly-combined
│        │-- bin  安装相关的脚本
│        │-- deploy-config //安装的配置
│        │-- src
│-- linkis-commons  //核心抽象,里面放有所有的公用模块
│        │-- linkis-common  //通用模块,内置很多通用工具类
│        │-- linkis-hadoop-common
│        │-- linkis-httpclient  //Java SDK顶层接口 对httpclient的进一步封装
│        │-- linkis-module  // linkis的服务顶层公用模块 涉及到服务启动时的参数和服务初始化 统一的Restful处理 登录态校验等
│        │-- linkis-mybatis  //SpringCloud的Mybatis模块
│        │-- linkis-protocol  //服务请求/响应的一些接口和实体类
│        │-- linkis-rpc      //RPC模块,基于Feign实现的复杂双向通信
│        │-- linkis-scheduler //通用调度模块
│        │-- linkis-storage   //文件操作工具集
│        │
│-- linkis-computation-governance //计算治理服务
│        │-- linkis-client  //Java SDK,用户通过Client可直接访问Linkis
│        │-- linkis-computation-governance-common
│        │-- linkis-engineconn
│        │-- linkis-engineconn-manager
│        │-- linkis-entrance //通用底层entrance模块
│        │-- linkis-entrance-client
│        │-- linkis-jdbc-driver  //可以类似jdbc sdk方式连接使用linkis
│        │-- linkis-manager
│
│-- linkis-engineconn-plugins // 引擎插件
│        │-- engineconn-plugins
│        │-- linkis-engineconn-plugin-framework
│
│-- linkis-extensions // 扩展功能增强插件模块
│        │-- linkis-io-file-client  // 对linkis-storage的功能扩展
│
│-- linkis-orchestrator  //服务的编排
│        │-- linkis-code-orchestrator
│        │-- linkis-computation-orchestrator
│        │-- linkis-orchestrator-core
│        │-- plugin
│
│-- linkis-public-enhancements //公共增强服务
│        │-- linkis-bml  // 物料库
│        │-- linkis-context-service //统一上下文
│        │-- linkis-datasource   //数据源服务
│        │   ├── linkis-datasource-client //客户端代码
│        │   ├── linkis-datasource-manager //数据源管理模块
│        │   │   ├── common  //数据源管理公共模块
│        │   │   └── server  //数据源管理服务模块
│        │   ├── linkis-metadata //旧版本已有的模块,保留
│        │   ├── linkis-metadata-manager //数据元管理模块
│        │       ├── common //数据元管理公共模块
│        │       ├── server //数据元管理服务模块
│        │       └── service //支持的数据源
│        │           ├── elasticsearch
│        │           ├── hive
│        │           ├── kafka
│        │           └── mysql
│        │-- linkis-publicservice  //公共服务
│
│-- linkis-spring-cloud-services //微服务治理
│        │-- linkis-service-discovery
│        │-- linkis-service-gateway //网关Gateway
│-- db  //数据库信息
│
│-- tool //工具脚本
│        │-- check.sh
│        │-- dependencies
│
│-- web  //linkis的管理台代码
│-- scalastyle-config.xml  //Scala 代码格式检查配置文件
│-- CONTRIBUTING.md
│-- CONTRIBUTING_CN.md
│-- DISCLAIMER-WIP
│-- LICENSE //项目源码的LICENSE
│-- LICENSE-binary //二进制包的LICENSE
│-- LICENSE-binary-ui //前端web编译包的LICENSE
│-- NOTICE  //项目源码的NOTICE
│-- NOTICE-binary //二进制包的NOTICE
│-- NOTICE-binary-ui //前端web二进制包的NOTICE
│-- licenses-binary  二进制包的详细依赖的license文件
│-- licenses-binary-ui //前端web编译包详细依赖的license文件
│-- README.md
│-- README_CN.md

单机部署

sudo groupadd hadoop
sudo useradd hadoop -g hadoop

vi /etc/sudoers

hadoop ALL=(ALL) NOPASSWD: NOPASSWD: ALL


mkdir -p /alidata/linkis/target
mkdir -p /alidata/linkis/install
mkdir -p tmp/linkis 

cd mkdir -p /alidata/linkis
git clone https://ling2:Wb191010610109@gitee.com/ling2/incubator-linkis.git

cd incubator-linkis
mvn -N -Dmaven.test.skip=true install
mvn -Dmaven.test.skip=true clean install

cp -r  /alidata/linkis/incubator-linkis/assembly-combined-package/target/apache-linkis-1.1.2-incubating-bin.tar.gz /alidata/linkis/target

cd /alidata/linkis/target
tar -xvf apache-linkis-1.1.2-incubating-bin.tar.gz

vi /alidata/linkis/target/deploy-config/db.sh

vi /alidata/linkis/target/deploy-config/linkis-env.sh

LINKIS_HOME=/alidata/linkis/install
NABLE_METADATA_QUERY=true

export ENABLE_METADATA_QUERY=false
export ENABLE_HDFS=false
export ENABLE_HIVE=false
export ENABLE_SPARK=false

sh /alidata/linkis/target/bin/install.sh


拷贝mysql 驱动包至lib包下

cp /alidata/linkis/mysql-connector-java-8.0.28.jar  /alidata/linkis/install/lib/linkis-spring-cloud-services/linkis-mg-gateway/
cp /alidata/linkis/mysql-connector-java-8.0.28.jar  /alidata/linkis/install/lib/linkis-commons/public-module/


sh sbin/linkis-start-all.sh

代码重构

D:\workspace\source\incubator-linkis\assembly-combined-package\target\apache-linkis-1.1.2-incubating-bin\linkis-package

  • 区分common和api,merge
  • 按此分类归类代码

Scriptis

https://github.com/WeBankFinTech/Scriptis

Qualitis

https://github.com/WeBankFinTech/Qualitis

https://gitee.com/WeBank/Qualitis/blob/master/docs/zh_CN/ch1/%E7%94%A8%E6%88%B7%E6%89%8B%E5%86%8C.md

Visualis

https://gitee.com/wedatasphere/Visualis

积木报表

http://qunhui.ling2.cn:6007/jmreport/list

http://bi.ling2.cn/jmreport/list

http://report.jeecg.com/1423422