Docker创建CentOS7安装DataX

环境准备

我选择的是centos7docker pull centos:centos7,已经自带python27,只需要安装jdk8。

Oracle官网下载jdk,注意选择ARM、x86、x64,我的是x64

  1. docker run -it --name hello_datax centos:centos7启动容器
  2. mkdir modulesmkdir softwares,创建目录放压缩包和加压后的文件夹
  3. docker cp E:\MyWork\MyDevelopmentTools\Java\jdk-8u271-linux-x64.tar.gz hello_datax:/opt/softwares将压缩包传入容器
  4. tar -zxvf /opt/softwares/jdk-8u271-linux-x64.tar.gz -C /opt/modules/解压到指定位置
  5. 添加环境变量vi /root/.bashrc,不能放到/etc/profile,因为docker每次重启容器会失效
# JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.8.0_271
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin
  1. java -version成功安装了jdk8
    在这里插入图片描述

下载安装

  1. 下载DataX
  2. docker cp E:\MyWork\MyDevelopmentTools\datax.tar.gz hello_datax:/opt/softwares复制到容器中
  3. tar -zxvf /opt/softwares/datax.tar.gz -C /opt/modules/解压到指定位置
  4. cd /opt/modules/datax进入到data下的目录
  5. python ./bin/datax.py ./job/job.json执行测试job
    在这里插入图片描述

CentOS7中解决中文乱码

编写测试

  1. vi ./job/stream2stream.json同样是在datax目录的job下建立一个文件,写入如下内容
{
  "job": {
    "content": [
      {
        "reader": {
          "name": "streamreader",
          "parameter": {
            "sliceRecordCount": 10,
            "column": [
              {
                "type": "long",
                "value": "10"
              },
              {
                "type": "string",
                "value": "hello,你好,世界-DataX"
              }
            ]
          }
        },
        "writer": {
          "name": "streamwriter",
          "parameter": {
            "encoding": "UTF-8",
            "print": true
          }
        }
      }
    ],
    "setting": {
      "speed": {
        "channel": 5
       }
    }
  }
}
  1. python ./bin/datax.py ./job/stream2stream.json执行
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44112790/article/details/110182051