上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Liunx中部署Kettle集群

guduadmin33小时前

文章目录

    • 一、部署环境
    • 二、搭建步骤
      • 1、Linux下JDK环境搭建
      • 2、各服务器之间开启SSH免密登录
      • 3、查看所需端口是否被占用
      • 4、Linux下Kettle安装
      • 5、测试Kettle是否安装成功
      • 6、Kettle集群环境配置
      • 7、集群carte服务开启
      • 8、在kettle图形界面中对集群进行设定
      • 三、注意事项

        一、部署环境

        环境:

        JDK 1.8

        Centos7

        Kettle 8.2.0

        Kettle组件:

        Spoon:图形化工具,用于快速设计和维护复杂的ETL工作流。

        Kitchen:运行作业的命令行工具。

        Pan:运行转换的命令行工具。

        Carte:轻量级的(大概1MB)Web服务器,用来远程执行转换或作业,一个运行有Carte进程的机器可以作为从服务器,从服务器是Kettle集群的一部分。

        二、搭建步骤

        1、Linux下JDK环境搭建

        1. 检查是否有java环境

          java -version

        2. 没有则搭建
        3. date查看各服务器之间时间是否同步
          date
          yum -y install ntp 
          ntpdate -u cn.pool.ntp.org
          

        2、各服务器之间开启SSH免密登录

        1. 检查是否已安装SSH服务

          ssh
          
        2. 没有则安装

          输入sudo apt-get update命令以实现更新Ubuntu系统

          输入sudo apt-get install openssh-server命令以安装ssh

        3. 检查是否启动SSH服务

          service --status-all | grep ssh
          
        4. 启动ssh服务

          sudo service sshd start
          
        5. 在主机A上生成rsa密钥对

          ssh-keygen -t rsa
          

          三次回车后会在root目录下生成“.ssh”文件夹,里面会有两个文件,分别是id_rsa和id_rsa.pub

          id_rsa:是本机的私钥,在使用ssh协议向其它主机传输数据前,主机会使用该私钥对数据进行加密

          id_rsa.pub:是本机的公钥,因为ssh协议采用非对称加密法(公钥可以用来解密使用私钥进行加密的数据,同样,私钥也可以用来解密公钥进行加密的数据),所以主机一般将该公钥放到其它需要远程登录到的主机的ssh服务器中

        6. 将主机A上生成的公钥传到主机B中

          一是使用命令:

          在主机A的命令行上执行,就可以将主机A上生成的公钥传到主机B中。

          ssh-copy-id 主机B用户名@主机Bip
          

          二是手动操作:

          首先在主机A上执行命令

          scp .ssh/id_rsa.pub 主机B用户名@主机Bip:~/home
          

          命令执行成功后会将主机A的公钥传到主机B的家目录里。

          切换到主机B,命令行执行

          cat ~/home/id_rsa.pub >> ~/.ssh/authorized_keys
          

          将主机A的公钥添加到主机B的授权列表中。

        7. 免密登录

          • 在主机A上重启ssh服务systemctl restart sshd
          • 再执行ssh 用户名@ip,你会发现已经免密登录了。

        3、查看所需端口是否被占用

        netstat -ntlp   //查看当前所有tcp端口
        netstat -ntulp | grep 80   //查看所有80端口使用情况
        

        jps命令失效,进行安装

        yum install java-1.8.0-openjdk-devel.x86_64
        

        4、Linux下Kettle安装

        官网下载后将压缩包传入服务器中进行解压

        unzip xxxx
        

        5、测试Kettle是否安装成功

        cd data-integration
        ./kitchen.sh
        

        报错信息如下:

        #######################################################################
        WARNING:  no libwebkitgtk-1.0 detected, some features will be unavailable
            Consider installing the package with apt-get or yum.
            e.g. 'sudo apt-get install libwebkitgtk-1.0-0'
        #######################################################################
        

        解决方法:

        wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/matthewdva:/build:/EPEL:/el7/RHEL_7/x86_64/webkitgtk-2.4.9-1.el7.x86_64.rpm
        
        yum install webkitgtk-2.4.9-1.el7.x86_64.rpm
        

        6、Kettle集群环境配置

        Carte的配置文件所在路径:/kettlle/data-integration/pwd

        在该目录下含有6个文件

        一个主服务器配置文件

        carte-config-master-8080.xml

        四个从服务器配置文件

        carte-config-8081.xml、carte-config-8082.xml

        carte-config-8083.xml、carte-config-8084.xml

        一个集群账号密码文件kettle.pwd(密码可以修改)

        1. 主服务器(carte-config-master-8080.xml)的配置内容为:

           
             master1
             localhost
             8080
             Y
           
          

          name:指定Kettle主服务器名称

          hostname:指定Kettle主服务器IP地址

          port:指定Kettle主服务器端口号

          master:指定是否是主服务器

          伪分布式环境不需要配置该文件。

        2. 子服务器(carte-config-8081.xml)的配置内容为:

          其中masters中,name、hostname、port需要和carte-config-master-8080.xml中完全一致

          
              
               master1
               master
               8080
               cluster
               cluster
               Y
              
          
            
            Y
            
            
             slave1-8081
             slave1
             8082
             cluster
             cluster
             N
            
          
        3. 其他从服务器依据以上配置,把主服务器中更改好的pwd文件夹分别覆盖其他服务器上的相应文件夹。

          拷贝文件至目标主机ip

           scp -rp 待拷贝文件 用户名@目标主机ip:目标主机文件夹
          

          从目标主机拷贝文件至本机

          scp -rp 用户名@目标主机ip:目标主机待拷贝文件 拷贝至本机的文件夹
          

        7、集群carte服务开启

        启动主服务器

        ./carte.sh ip port

        主服务器保持后台运行并将日志写入自定义文件

        nohup /opt/Kettle/data-integration/./carte.sh 192.168.1.132 9090
        /opt/Kettle/data-integration/logs/out.log 2>&1 &
        

        启动从服务器

        ./carte.sh pwd/carte-config-8081.xml

        从服务器保持后台运行并将日志写入自定义文件

        nohup /opt/Kettle/data-integration/./carte.sh /opt/Kettle/data-integration/pwd/carte-config-9091.xml 
        >/opt/Kettle/data-integration/logs/out.log 2>&1 &
        

        服务开启成功

        Liunx中部署Kettle集群,在这里插入图片描述,第1张

        浏览器访问

        ip:port

        账号密码默认

        cluster

        主从服务Web登录如下:

        Liunx中部署Kettle集群,在这里插入图片描述,第2张

        Liunx中部署Kettle集群,在这里插入图片描述,第3张

        8、在kettle图形界面中对集群进行设定

        1. 在本地打开kettle的图形化界面,新建一个test转换

        2. 在‘“转换”中选择“子服务器”,右键点击“新建”,在弹出对话框中把主从的服务器信息填入

          Liunx中部署Kettle集群,第4张

          Liunx中部署Kettle集群,在这里插入图片描述,第5张

        3. 在主对象树中,选择“Kettle集群schmas”,右键点击“新建”,在弹出对话框中把主从的服务器信息填入,然后点击“选择子服务器”,添加刚才新建的子服务器,然后确定。

          Liunx中部署Kettle集群,在这里插入图片描述,第6张

        4. 在输出中右键选择“集群”,选择自己创建的“Schema”集群,点击“确定”

          Liunx中部署Kettle集群,在这里插入图片描述,第7张

        5. 在“Run Configurations”中右键点击“新建”,填写如下参数

          Liunx中部署Kettle集群,在这里插入图片描述,第8张

        6. 点击“运行”,选择自己创建的“测试集群”,最后点击“启动”即可

          Liunx中部署Kettle集群,在这里插入图片描述,第9张

          至此Kettle集群服务搭建完成。

        三、注意事项

        1、kettle自带调度运行会造成资源占用且不释放,最好使用windows或者liunx自带调度或者第三方调度服务

        2、集群只能在图形化界面使用,如使用命令行运行作业或者转换都为单节点运行

网友评论

搜索
最新文章
热门文章
热门标签