searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Linkis容器化改造记录

2023-05-29 03:03:48
21
0


1. 编译项目


   git clone linkis.git
   cd linkis-x.x.x
   mvn -N  install
   mvn clean install


编译完成后完整包在工程目录  linkis-x.x.x/linkis-dist/target/out

社区默认只有物理部署,这个安装包是带自动化安装脚本的,下面的镜像制作也是基于这个编译目录

   
   
2. 制作镜像

linkis容器化和其他后端项目容器化的差异在于他和大数据底座依赖严重
linkis大部分服务都可以用公共的base镜像,镜像比较简单,就是把linkis编译的包制作成镜像(后期可以优化)

linkis-base.Dockerfile如下

# 基础的centos镜像

FROM harbor.ctyuncdn.cn/ga-bdmp/bdmp-docker-base:v1.0.0    

WORKDIR /opt/linkis/linkis-package

# 启动用户用的是hdfs,所以新建了一个hdfs用户,并多workdir做了个调整权限调整
RUN useradd --create-home --no-log-init --shell /bin/bash hdfs -G root
RUN usermod -aG wheel hdfs

#减小分层,压缩镜像体积

COPY --chown=hdfs:hdfs ./ /opt/

 

另外一块是设计任务提交的服务,和大数据底座交互比较密切,单独做了一个镜像

ARG BASE_VERSION
#引用上面linkis的base镜像
FROM harbor.ctyuncdn.cn/datawings/linkis-base:$BASE_VERSION
USER root
 
#python3 默认安装python3
RUN curl --output anaconda.sh https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-x86_64.sh && \
chmod u+x anaconda.sh && ./anaconda.sh -b -p /opt/anaconda3 && /opt/anaconda3/bin/conda init bash && \
source ~/.bashrc && ln -s /opt/anaconda3/bin/conda /usr/local/bin/conda && echo 'export PATH="/opt/anaconda3/bin:$PATH"' >> /etc/profile && source /etc/profile
 
# 配置组件环境变量
RUN echo $'export RUN_CONTAINER=k8s\n\
export HIVE_HOME=/usr/local/hive\n\
export PATH=$PATH:$HIVE_HOME/bin\n\
export SPARK_HOME=/usr/local/spark3\n\
export PATH=$PATH:$SPARK_HOME/bin' >> /etc/bashrc && source /etc/bashrc
 
#涉及容器里的权限调整
RUN mkdir -p /usr/local/linkis/LinkisInstall && ln -s /opt/linkis/linkis-package/* /usr/local/linkis/LinkisInstall && mkdir /var/log/cths && chmod 777 -R /var/log/cths && mkdir /tmp/spark_log && chmod 777 -R /tmp/spark_log

RUN ["yum","install","sudo","-y"]

WORKDIR /opt/linkis/linkis-package
 

3. 微服务节点及挂载的要求(后续计划去hdfs依赖,这样只有linkis-cg-ecm涉及大数据节点要求)

 

linkis-mg-eureka 

linkis-mg-gateway

变更内容:1-2,2-1

 

linkis-cg-linkismanager

linkis-ps-cs

linkis-ps-metadataquery

linkis-ps-data-source 

变更内容:1-1 ,2-1

 

 

linkis-cg-engineplugin

linkis-ps-publicservice

linkis-cg-entrance

变更内容:1-2 ,2-2,2-3,2-4,2-1

 

linkis-cg-ecm

变更内容:1-2 ,2-2,2-3,2-4, 2-5, 2-6,2-1

 

1-1 Node 调度: 所有节点

1-2 指定node.  客户端节点(测试环境为192.168.6.9)

 

2-1 挂载config-map:名称linkis-conf; 权限644;  config map name:linkis-conf;mount:/opt/linkis/linkis-package/conf

2-2 hadoop。/usr/local/hadoop3 /usr/local/hadoop3

2-3 krb5 /etc/krb5.conf /etc/krb5.conf

2-4 keytabs/etc/security/keytabs /etc/security/keytabs

2-5 spark/usr/local/spark3 /usr/local/spark3

2-6 hive/usr/local/hive /usr/local/hive

 

0条评论
作者已关闭评论
尘味
1文章数
0粉丝数
尘味
1 文章 | 0 粉丝
尘味
1文章数
0粉丝数
尘味
1 文章 | 0 粉丝
原创

Linkis容器化改造记录

2023-05-29 03:03:48
21
0


1. 编译项目


   git clone linkis.git
   cd linkis-x.x.x
   mvn -N  install
   mvn clean install


编译完成后完整包在工程目录  linkis-x.x.x/linkis-dist/target/out

社区默认只有物理部署,这个安装包是带自动化安装脚本的,下面的镜像制作也是基于这个编译目录

   
   
2. 制作镜像

linkis容器化和其他后端项目容器化的差异在于他和大数据底座依赖严重
linkis大部分服务都可以用公共的base镜像,镜像比较简单,就是把linkis编译的包制作成镜像(后期可以优化)

linkis-base.Dockerfile如下

# 基础的centos镜像

FROM harbor.ctyuncdn.cn/ga-bdmp/bdmp-docker-base:v1.0.0    

WORKDIR /opt/linkis/linkis-package

# 启动用户用的是hdfs,所以新建了一个hdfs用户,并多workdir做了个调整权限调整
RUN useradd --create-home --no-log-init --shell /bin/bash hdfs -G root
RUN usermod -aG wheel hdfs

#减小分层,压缩镜像体积

COPY --chown=hdfs:hdfs ./ /opt/

 

另外一块是设计任务提交的服务,和大数据底座交互比较密切,单独做了一个镜像

ARG BASE_VERSION
#引用上面linkis的base镜像
FROM harbor.ctyuncdn.cn/datawings/linkis-base:$BASE_VERSION
USER root
 
#python3 默认安装python3
RUN curl --output anaconda.sh https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-x86_64.sh && \
chmod u+x anaconda.sh && ./anaconda.sh -b -p /opt/anaconda3 && /opt/anaconda3/bin/conda init bash && \
source ~/.bashrc && ln -s /opt/anaconda3/bin/conda /usr/local/bin/conda && echo 'export PATH="/opt/anaconda3/bin:$PATH"' >> /etc/profile && source /etc/profile
 
# 配置组件环境变量
RUN echo $'export RUN_CONTAINER=k8s\n\
export HIVE_HOME=/usr/local/hive\n\
export PATH=$PATH:$HIVE_HOME/bin\n\
export SPARK_HOME=/usr/local/spark3\n\
export PATH=$PATH:$SPARK_HOME/bin' >> /etc/bashrc && source /etc/bashrc
 
#涉及容器里的权限调整
RUN mkdir -p /usr/local/linkis/LinkisInstall && ln -s /opt/linkis/linkis-package/* /usr/local/linkis/LinkisInstall && mkdir /var/log/cths && chmod 777 -R /var/log/cths && mkdir /tmp/spark_log && chmod 777 -R /tmp/spark_log

RUN ["yum","install","sudo","-y"]

WORKDIR /opt/linkis/linkis-package
 

3. 微服务节点及挂载的要求(后续计划去hdfs依赖,这样只有linkis-cg-ecm涉及大数据节点要求)

 

linkis-mg-eureka 

linkis-mg-gateway

变更内容:1-2,2-1

 

linkis-cg-linkismanager

linkis-ps-cs

linkis-ps-metadataquery

linkis-ps-data-source 

变更内容:1-1 ,2-1

 

 

linkis-cg-engineplugin

linkis-ps-publicservice

linkis-cg-entrance

变更内容:1-2 ,2-2,2-3,2-4,2-1

 

linkis-cg-ecm

变更内容:1-2 ,2-2,2-3,2-4, 2-5, 2-6,2-1

 

1-1 Node 调度: 所有节点

1-2 指定node.  客户端节点(测试环境为192.168.6.9)

 

2-1 挂载config-map:名称linkis-conf; 权限644;  config map name:linkis-conf;mount:/opt/linkis/linkis-package/conf

2-2 hadoop。/usr/local/hadoop3 /usr/local/hadoop3

2-3 krb5 /etc/krb5.conf /etc/krb5.conf

2-4 keytabs/etc/security/keytabs /etc/security/keytabs

2-5 spark/usr/local/spark3 /usr/local/spark3

2-6 hive/usr/local/hive /usr/local/hive

 

文章来自个人专栏
luxl
1 文章 | 1 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0