欢迎光临
大数据平台组件部署说明(pulsar、Openlookeng、Hadoop集群、hive、python、Flink、JDK、Zookeeper、MySQL、Redis等)
   

大数据平台组件部署说明(pulsar、Openlookeng、Hadoop集群、hive、python、Flink、JDK、Zookeeper、MySQL、Redis等)

大数据平台组件部署说明

1.安装前准备

  • JDK

    openlookeng和pulsar要求JDK1.8+,参考附录9.1安装教程。

    • Zookeeper集群

      pulsar运行需要zookeeper集群进行资源调度服务,参考附录9.2安装教程。

      • MySQL

        默认推荐使用MySQL,参考附录9.3节MySQL的安装说明,如已经安装请跳过。如果你使用其他类型的数据库,请参考对应厂商说明帮助手册进行安装。

        • SSH免密登录

          Hadoop集群要求Master节点可以免密登录到其他节点,参考附录9.4安装教程

          2. 安装说明

          本手册以在linux x86_64环境下为例进行安装过程说明。 创建大数据平台组件安装根目录,指定 P A T H 为实际路径,组件建议安装在 {PATH}为实际路径,组件建议安装在 PATH为实际路径,组件建议安装在{PATH}路径中。本文档使用三台服务器做安装说明,三台服务器分别命名为Master,Slave1和Slave2

          vim /etc/hosts
          172.24.4.142 Master
          172.24.4.143 Slave1
          172.24.4.144 Slave2
          
          mkdir -p /${PATH}/
          

          3. 安装Pulsar

          Pulsar的版本会不断更新,当前以Pulsar-2.9.1为例进行安装说明。Pulsar中的使用的组件包括Zookeeper集群(内置或独立),Bookie集群以及Broker集群,不同服务器的安装目录需要保持一致,建议统一安装在/${PATH}/目录下。

          各个节点统一解压Pulsar至/${PATH}/目录下:

          tar zxvf apache-pulsar-2.9.1.tar.gz -C /${PATH}/
          
          3.1 Bookie

          创建Bookie需要的目录,已经创建为:

          /${PATH}/apache-pulsar-2.9.1/data/bookkeeper/ledger
          
          /${PATH}/apache-pulsar-2.9.1/data/bookkeeper/journal
          

          进入/${PATH}/apache-pulsar-2.9.1/conf路径中,对bookkeeper.conf文件进行修改

          vim /${PATH}/apache-pulsar-2.9.1/conf/bookkeeper.conf
          

          修改的配置如下:

          #bookie连接端口
          bookiePort=3181      
          journalDirectory=/${PATH}/apache-pulsar-2.9.1/data/bookkeeper/journal
          ledgerDirectories=/${PATH}/apache-pulsar-2.9.1/data/bookkeeper/ledger
          #本机ip
          advertisedAddress=localhost
          #集群zookeeper端口   
          zkServers=Master:2181,Slave1:2181,Slave2:2181
          

          在Bookie集群所有节点配置完成之后,进入/${PATH}/apache-pulsar-2.9.1/bin/目录对Bookie集群进行初始化(只需要在一个Bookie节点执行即可):

          bookkeeper shell metaformat
          
          3.2 Broker

          对Broker集群进行配置,进入/${PATH}/apache-pulsar-2.9.1/conf/目录中,对broker.conf文件进行修改。

          zookeeperServers=Master:2181,Slave1:2181,Slave2:2181
          configurationStoreServers=Master:2181,Slave1:2181,Slave2:2181
          brokerServicePort=6650
          webServicePort=8089
          advertisedAddress=localhost
          #topic缓存数据大小单位(MB),依据需求进行修改
          defaultRetentionSizeInMB=1024
          #topic缓存数据时间单位(分钟),依据需求进行修改           
          defaultRetentionTimeInMinutes=4320
          #function worker随pulsar一起启动
          functionsWorkerEnabled=true      
          

          在配置Broker以及Bookie集群后,需要对Zookeeper集群进行初始化,需要进入/${PATH}/apache-pulsar-2.9.1/bin/目录,执行:

          #--cluster 集群名称
          #--zookeeper 与Zookeeper连接信息
          #--configuration-store 整个集群实例的配置存储连接字符串
          #--web-service-url --web-service-url-tls 集群 web 服务的 URL 
          #--broker-service-url --broker-service-url-tls Broker 服务的 URL,用于启动集群中 broker 之间的交互
          pulsar initialize-cluster-metadata
          --cluster pulsar-cluster
          --zookeeper Master:2181 
          --configuration-store Master:2181 
          --web-service-url http://Master:8089,Slave1:8089,Slave2:8089 
          --web-service-url-tls https://Master:8443,Slave1:8443,Slave2:8443 
          --broker-service-url pulsar://http://Master:6650,Slave1:6650,Slave2:6650 
          --broker-service-url-tls pulsar+ssl://http://Master:6651,Slave1:6651,Slave2:6651
          
          3.3 Pulsar启动与停止

          Pulsar启动需要保证Zookeeper集群是运行的状态。 Pulsar启动与停止主要分为Broker以及Bookie集群的启动与停止。

          3.3.1 Bookie启动与停止

          Bookie启动需要进入/${PATH}/apache-pulsar-2.9.1/bin/目录,执行:

          pulsar-daemon start bookie
          

          然后执行:

          bookkeeper shell bookiesanity
          

          判断Bookie是否启动成功,如果出现sanity test succeeded则启动成功。

          Bookie停止需要进入/${PATH}/apache-pulsar-2.9.1/bin/目录,执行:

          pulsar-daemon stop bookie
          
          3.3.2 Broker启动与停止

          Broker启动需要进入/${PATH}/apache-pulsar-2.9.1/bin/目录,执行:

          pulsar-daemon start broker
          

          执行:

          pulsar-admin brokers list pulsar-cluster
          

          可查看Pulsar中Broker集群节点情况。

          Broker停止需要进入/${PATH}/apache-pulsar-2.9.1/bin/目录,执行:

          pulsar-daemon stop broker
          

          4. 安装Openlookeng

          Openlookeng的版本在不断进行更新,不同版本的安装流程相似,本文档以Openlookeng-1.4.0安装为例。

          解压openlookeng的安装包到/${PATH}/目录下

          tar hetu-server-1.4.0.tar.gz -C /${PATH}/
          

          在/${PATH}/hetu-server-1.4.0/目录下创建data和etc目录

          mkdir -p /${PATH}/hetu-server-1.4.0/data
          mkdir -p /${PATH}/hetu-server-1.4.0/etc
          

          在/${PATH}/hetu-server-1.4.0/etc/目录中创建配置文件并进行配置

          vim /${PATH}/hetu-server-1.4.0/etc/node.properties
          #配置openlookeng环境保存目录
          node.environment=openlookeng
          node.launcher-log-file=/${PATH}/hetu-server-1.4.0/log/launch.log
          node.server-log-file=/${PATH}/hetu-server-1.4.0/log/server.log
          catalog.config-dir=/${PATH}/hetu-server-1.4.0/etc/catalog
          node.data-dir=/${PATH}/hetu-server-1.4.0/data
          plugin.dir=/${PATH}/hetu-server-1.4.0/plugin
          

          创建Openlookeng集群节点信息文件并且进行配置,Openlookeng节点分为主节点和work节点。

          vim /${PATH}/hetu-server-1.4.0/etc/config.properties
          #Openlookeng主节点配置
          coordinator=true
          node-scheduler.include-coordinator=true
          #Openlookeng端口,依据实际情况进行配置
          http-server.http.port=9060
          #Openlookeng使用内存情况,依据实际使用需求进行配置
          query.max-memory=3GB
          query.max-total-memory=3GB
          query.max-memory-per-node=1.5GB
          query.max-total-memory-per-node=1.5GB
          discovery.uri=http://Master:9060
          discovery-server.enabled=true
          #web ui
          hetu.queryeditor-ui.allow-insecure-over-http=true
          #Openlookeng work节点配置
          coordinator=false
          http-server.http.port=9060
          query.max-memory=3GB
          query.max-total-memory=3GB
          query.max-memory-per-node=1.5GB
          query.max-total-memory-per-node=1.5GB
          discovery.uri=http://Master:9060                    
          

          创建JVM的配置文件JVM.properties并且进行配置

          vim /${PATH}/hetu-server-1.4.0/etc/JVM.properties
          #Openlookeng JVM配置
          -server
          -Xmx4G
          -XX:-UseBiasedLocking
          -XX:+UseG1GC
          -XX:G1HeapRegionSize=32M
          -XX:+ExplicitGCInvokesConcurrent
          -XX:+ExitOnOutOfMemoryError
          -XX:+UseGCOverheadLimit
          -XX:+HeapDumpOnOutOfMemoryError
          -XX:+ExitOnOutOfMemoryError
          

          创建log的配置文件并且进行配置

          vim /${PATH}/hetu-server-1.4.0/etc/log.properties
          #Openlookeng log配置
          #收集log级别
          io.prestosql = INFO
          

          Openlookeng启动和停止命令

          #启动命令
          /${PATH}/hetu-server-1.4.0/bin/launcher start
          #停止命令
          /${PATH}/hetu-server-1.4.0/bin/launcher stop
          #查看Openlookeng状态命令
          /${PATH}/hetu-server-1.4.0/bin/launcher status
          

          启动web页面

          5. Hadoop集群安装

          安装Hadoop的目录要保持一致,建议统一安装在/ P A T H / 目录下。 H a d o o p 可能会不断更新,下面以 H a d o o p − 3.3.1 为例,具体请根据安装包修改配置。以三个节点搭建 H a d o o p 集群为例,一台机器作为 M a s t e r 节点,另两台机器分别为 S l a v e 1 和 S l a v e 2 节点, H a d o o p 要求 M a s t e r 节点可以 S S H 无密码登录到每一个 S l a v e 节点, H a d o o p 集群的安装配置大致包括以下步骤:( 1 )步骤 1 :选定一台机器作为 M a s t e r ;( 2 )步骤 2 :在 M a s t e r 节点上创建 h a d o o p 用户、安装 S S H 服务端、安装 J a v a 环境;( 3 )步骤 3 :在 M a s t e r 节点上安装 H a d o o p ,并完成配置;( 4 )步骤 4 :在其他 S l a v e 节点上创建 h a d o o p 用户、安装 S S H 服务端、安装 J a v a 环境;( 5 )步骤 5 :将 M a s t e r 节点上的“ / {PATH}/目录下。 Hadoop可能会不断更新,下面以Hadoop-3.3.1为例,具体请根据安装包修改配置。 以三个节点搭建Hadoop集群为例,一台机器作为 Master节点,另两台机器分别为 Slave1和Slave2 节点,Hadoop要求Master节点可以SSH无密码登录到每一个Slave节点,Hadoop 集群的安装配置大致包括以下步骤: (1)步骤1:选定一台机器作为 Master; (2)步骤2:在Master节点上创建hadoop用户、安装SSH服务端、安装Java环境; (3)步骤3:在Master节点上安装Hadoop,并完成配置; (4)步骤4:在其他Slave节点上创建hadoop用户、安装SSH服务端、安装Java环境; (5)步骤5:将Master节点上的“/ PATH/目录下。Hadoop可能会不断更新,下面以Hadoop−3.3.1为例,具体请根据安装包修改配置。以三个节点搭建Hadoop集群为例,一台机器作为Master节点,另两台机器分别为Slave1和Slave2节点,Hadoop要求Master节点可以SSH无密码登录到每一个Slave节点,Hadoop集群的安装配置大致包括以下步骤:(1)步骤1:选定一台机器作为Master;(2)步骤2:在Master节点上创建hadoop用户、安装SSH服务端、安装Java环境;(3)步骤3:在Master节点上安装Hadoop,并完成配置;(4)步骤4:在其他Slave节点上创建hadoop用户、安装SSH服务端、安装Java环境;(5)步骤5:将Master节点上的“/{PATH}/hadoop”目录复制到其他Slave节点上;

          (6)步骤6:在Master节点上开启Hadoop。

          5.1 创建hadoop用户
          ##创建新用户##
          sudo useradd -m hadoop -s /bin/bash
          ##设置密码,可简单设置为hadoop##
          sudo passwd hadoop
          ##为hadoop用户增加管理员权限##
          sudo adduser hadoop sudo
          
          5.2 安装Hadoop3.3.1

          解压Hadoop的安装包

          tar -zxvf hadoop-3.3.1.tar.gz -C /${PATH}/
          cd /${PATH}/hadoop-3.3.1/
          #修改文件的权限
          sudo chown -R hadoop ./hadoop-3.3.1  
          

          配置Hadoop集群,需要修改/${PATH}/hadoop-3.3.1/etc/hadoop/目录下的workers 、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml共5个配置文件,配置文件中的ip地址和端口需要依据实际配置情况进行修改

          5.2.1 修改worker文件

          需要把所有数据节点的主机名写入该文件,每行一个,默认为 localhost(即把本机作为数据节点)。在进行分布式配置时,可以保留localhost,让Master节点同时充当名称节点和数据节点,或者也可以删掉localhost这行,让Master节点仅作为名称节点使用。此处将三台服务器都作为数据节点,在worker配置文件中添加内容:

          Master
          Slave1
          Slave2
          
          5.2.2 修改core-site.xml文件
          
              
          				fs.defaultFS
          				hdfs://Master:9000
                    
              
              
                          hadoop.tmp.dir
                          file:/${PATH}/hadoop-3.3.1/tmp/hadoop-${user.name}
                          Abase for other temporary directories.
              
          	
          				hadoop.proxyuser.root.hosts
          				*
          	
          	
          				hadoop.proxyuser.root.groups
          				*
          	
            	
          		   		ha.zookeeper.quorum
          		   		Master:2181,Slave1:2181,Slave2:2181
           	
          
          
          5.2.3 修改hdfs-site.xml文件
          
          	
                         dfs.namenode.http-address
                         Master:50070
                  
                  
                          dfs.namenode.secondary.http-address
                          Master:50090
                  
                  
                          dfs.replication
                          3
                  
                  
                          dfs.namenode.name.dir
                          file:/${PATH}/hadoop-3.3.1/tmp/dfs/name
                  
                  
                          dfs.datanode.data.dir
                          file:/${PATH}/hadoop-3.3.1/tmp/dfs/data
                  
                  
                         dfs.webhdfs.enable
                         true
                  
                  
                          dfs.permissions.enabled
                          false
                  
          
          
          5.2.4 修改mapred-site.xml文件

          在/${PATH}/hadoop-3.3.1/etc/hadoop/目录中有一个mapred-site.xml.template文件,修改文件名为mapred-site.xml并进行配置

          
              	
                          mapreduce.framework.name
                          yarn
                  
                  
                          mapreduce.jobhistory.address
                          Master:10020
                  
                  
                          mapreduce.jobhistory.webapp.address
                          Master:19888
                  
                  
                          yarn.app.mapreduce.am.env
                          HADOOP_MAPRED_HOME=/${PATH}/hadoop-3.3.1
                  
                  
                          mapreduce.map.env
                          HADOOP_MAPRED_HOME=/${PATH}/hadoop-3.3.1
                  
                  
                          mapreduce.reduce.env
                          HADOOP_MAPRED_HOME=/${PATH}/hadoop-3.3.1
                   
          
          
          5.2.5 修改yarn-site.xml文件
          
               	
                          yarn.resourcemanager.hostname
                          Master
                  
                  
                          yarn.nodemanager.aux-services
                          mapreduce_shuffle
                  
                  
                      yarn.nodemanager.peme-check-enabled
                      false
                      
                  
                      yarn.nodemanager.vmem-check-enabled
                      false
                  
          
          

          在修改完5个配置文件后需要将Hadoop文件发送到其他节点

          scp -r /${PATH}/hadoop-3.3.1 hadoop@Slave1:/${PATH}/
          scp -r /${PATH}/hadoop-3.3.1 hadoop@Slave2:/${PATH}/
          

          配置完成后需要对hdfs系统进行初始化,在/${PATH}/hadoop-3.3.1/bin/目录下执行

          hdfs namenode -format
          
          5.3 启动与停止

          Hadoop启动和停止文件全部储存在/${PATH}/hadoop-3.3.1/sbin/目录中,启动和停止Hadoop所有组件的命令

          #启动所有组件
          start-all.sh
          #关闭所有组件
          stop-all.sh
          

          启动成功后可以通过web界面查看Hadoop运行情况

          5.4 配置PATH变量

          配置Hadoop的PATH变量,这样就可以在任意目录使用Hadoop,HDFS命令

          vim ~/.bashrc
          export PATH=$PATH:/${PATH}/hadoop-3.3.1/bin:/${PATH}/hadoop-3.3.1/sbin
          source ~/.bashrc
          

          6. hive-3.1.2配置

          解压hive安装包到/${PATH}/目录,并且修改文件夹名为hive

          tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /${PATH}/
          mv /${PATH}/apache-hive-3.1.2-bin /${PATH}/hive
          
          6.1 配置环境变量
          vim ~/.bashrc
          export HIVE_HOME=/${PATH}/hive
          export PATH=$PATH:$HIVE_HOME/bin
          source ~/.bashrc
          

          修改配置hive-site.xml文件,将文件/${PATH}/hive/conf/hive-default.xml.template的名称修改为hive-default.xml,然后重新创建一个hive-site.xml配置文件

          vim hive-site.xml
          
          
          
            
              javax.jdo.option.ConnectionURL
              jdbc:mysql://Master:3306/hive?createDatabaseIfNotExist=true&useSSL=false
              JDBC connect string for a JDBC metastore
            
            
             
              javax.jdo.option.ConnectionUserName  
              root  
              username to use against metastore database 
              
             
              javax.jdo.option.ConnectionPassword  
              root  
              password to use against metastore database 
            
            
            
              javax.jdo.option.ConnectionDriverName
              com.mysql.cj.jdbc.Driver
              Driver class name for a JDBC metastore
            
            
            
                hive.downloaded.resources.dir
                /${PATH}/hive/tmp/resources
                Temporary local directory for added resources in the remote file system.
             
             
             
                hive.exec.local.scratchdir
                /${PATH}/hive/tmp/hiveJobsLog
                Local scratch space for Hive jobs
            
            
                hive.downloaded.resources.dir
                /${PATH}/hive/tmp/resourcesLog
                Temporary local directory for added resources in the remote file system.
            
            
                hive.querylog.location
                /${PATH}/hive/tmp/hiveRunLog
                Location of Hive run time structured log file
            
            
                hive.server2.logging.operation.log.location
                /${PATH}/hive/tmp/opertitionLog
                Top level directory where operation tmp are stored if logging functionality is enabled
            
            
             
                hive.metastore.uris
                thrift://Master:9150
                Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.
            
            
            
              hive.metastore.port
              9150
              Hive metastore listener port
            
            
            
              hive.metastore.warehouse.dir
              /hive
              location of default database for the warehouse
              
            
                hive.server2.thrift.bind.host
                Master
            
            
                hive.server2.thrift.port
                10000
            
            
                hive.server2.thrift.http.port
                10001
            
            
                hive.server2.thrift.http.path
                cliservice
            
            
            
                hive.server2.webui.host
                Master
            
            
                hive.server2.webui.port
                10002
            
            
                hive.scratch.dir.permission
                755
            
           
              hive.txn.manager
              org.apache.hadoop.hive.ql.lockmgr.DbTxnManager
           
          
              hive.support.concurrency
              true
              
                Whether Hive supports concurrency control or not.
                A ZooKeeper instance must be up and running when using zookeeper Hive lock manager
              
          
          
          
          6.2 存储元数据

          hive支持使用不同数据库对元数据进行存储,在本文档中以MySQL数据库为例

          解压mysql和hive连接包,java的版本为1.8.0

          tar -zxvf mysql-connector-java-5.1.46.tar.gz -C /${PATH}/hive/lib/
          

          启动并且登录mysql shell

          service mysql start 
          mysql -u root -p 
          

          新建一个hive数据库,同时配置mysql允许hive接入

          mysql> create database hive;
          mysql> grant all on *.* to hive@localhost identified by 'hive';
          mysql> flush privileges;
          

          在启动Hadoop的前提下,启动Hive

          hive
          

          hive启动成功结果

          7. 安装python环境

          1. 解压安装包到/${PATH}/AOPS/目录下

            tar -zxvf py37_x86_env_1.13.1_2.11.tar.gz -C  /${PATH}/AOPS  
            
          2. 修改环境变,将env/bin至环境变量

            vim  /etc/profile
            #若环境变量中存在Anaconda、miniconda或其他python环境,需将其删除
            export ENV_HOME=/${PATH}/AOPS/env
            export PATH=$ENV_HOME/bin:$PATH
            #立即生效
            source /etc/profile
            
          3. 修改python软连接

            #若已存在/usr/bin/python,则先删除
            rm /usr/bin/python
            #修改 python软链接
            ln -s env/bin/python3.7 /usr/bin/python
            
          4. 命令行执行python,显示Python3.7.10,则表示安装成功(env无需启动)。

            [xxx@xxxx AOPS]# python
            Python 3.7.10 (default, Feb 26 2021, 18:47:35)
            [GCC 7.3.0] :: Anaconda, Inc. on linux
            Type "help", "copyright", "credits" or "license" for more information.
            >>>
            

          8. 安装Flink

          安装Flink至少准备2台服务器,一个节点部署JobManager,其他节点部署TaskManager。安装目录要保持一致,建议统一安装在/${PATH}/AOPS目录下。 flink可能会不断更新,下面以flink-1.14.3为例,具体请根据安装包修改配置

          1. 各节点统一解压flink至/${PATH}/AOPS目录下

            tar zxvf flink-1.14.3-bin-scala_2.11.tar.gz  -C  /${PATH}/AOPS  
            
          2. aarch64环境需求检查flink临时目录用户与用户组权限是否为root,否则要执行如下命令可以赋权

            chown -R root:root /tmp/flink
            
          3. 修改环境变,将flink-1.14.3/bin至环境变量

            # vim  /etc/profile
            export FLINK_HOME=/${PATH}/AOPS/flink-1.14.3
            export PATH=$FLINK_HOME/bin:$PATH
            # 立即生效
            source /etc/profile
            
          4. 修改配置参数

            • 进入Flink配置文件目录
              cd /${PATH}/AOPS/flink-1.14.3/conf
              
              • 修改flink-conf.yaml
                vim flink-conf.yaml
                ##修改jobmanager实际部署IP##
                jobmanager.rpc.address: ${IP}
                ##修改TaskManager个数,不能超过服务器内核数。例:处理器为8核内存为16G,设置TaskManager个数不要超过8个
                taskmanager.numberOfTaskSlots: 8
                ##修改flink内存资源配置,以16G内存为例##
                jobmanager.memory.process.size: 2600m
                jobmanager.memory.jvm-metaspace.size: 768m
                taskmanager.memory.process.size: 10240m
                taskmanager.memory.jvm-metaspace.size: 1024m
                ##设置类加载解析顺序##
                classloader.resolve-order: child-first
                classloader.check-leaked-classloader: false
                
                • 修改masters文件,设定master节点
                  vim masters
                  ##修改为jobmanager实际部署IP##
                  ${IP}:8081
                  
                  • 修改workers文件, 设定work节点
                    vim workers
                    ##修改为TaskManager实际部署IP##
                    ${IP}
                    

          5.flink连接hive验证

          对flink集群连接hive是否成功进行验证,使用flink sql client查询hive中的数据。首先创建一个flink sql catalog连接hive,配置如下:

          vim flink-sql-hive.sql
          #创建一个名为myhive4的catalog连接hive,default-database为hive中需要查询的database名,hive-conf-dir是hive配置文件所在目录
          CREATE CATALOG myhive4 WITH (
            'type' = 'hive',
            'default-database' = 'aiops_data',
            'hive-conf-dir' = '/root/flink_test/flink-1.14.3/hive_conf'
          );
          -- set the HiveCatalog as the current catalog of the session
          USE CATALOG myhive4;
          

          启动flink sql client对hive数据进行查询:

          bin/sql-client.sh embedded -i conf/sql-cli-hive.sql
          #测试语句
          #table为hive中存在的数据表,如果可以查询,则flink可以成功连接hive
          select * from table;
          

          6.flink连接pulsar验证

          对flink是否可以连接pulsar进行验证流程,使用flink sql client查询pulsar中的数据。首先需要创建一个flink sql catalog连接pulsar,配置如下:

          #连接pulsar中的topic,查询topic中的数据,topic为pulsar中需要查询topic名,value.format为pulsar中数据的编码方式,默认为avro,service-url和admin-url为pulsar的连接地址ip和端口,scan.startup.mode为查询数据开始位置,generic为连接pulsar必须的参数默认为true
          CREATE TABLE tablename (
          `hostip` STRING,
          `hostname` STRING,
          ) WITH (
          'connector' = 'pulsar',
          'topic' = 'persistent://public/default/topicname',
          'value.format' = 'avro',
          'service-url' = 'pulsar://Master:6650',
          'admin-url' = 'http://Master:8089',
          'scan.startup.mode' = 'earliest',
          'generic' = 'true'
          );
          

          配置完成后启动flink sql client查询pulsar数据,命令如下:

          sql-client.sh embedded -i conf/sql-cli-pulsar-table.sql
          #测试语句
          #topicname为配置中的topic名称,如果查询成功则flink可以连接pulsar
          select * from topicname;
          

          9. Openlookeng连接Pulsar

          Openlookeng和Pulsar连接器内置于hetu-server-1.4.0.tar.gz包内,只需要进行配置即可。

          创建/${PATH}/hetu-server-1.4.0/etc/catalog/目录

          mkdir -p /${PATH}/hetu-server-1.4.0/etc/catalog/
          

          然后创建Pulsar连接配置文件,进行配置

          vi /${PATH}/hetu-server-1.4.0/etc/catalog/pulsar.properties
          #配置信息
          connector.name=pulsar
          pulsar.broker-service-url=http://Master:6650
          pulsar.web-service-url=http://Master:8089
          pulsar.zookeeper-uri=Master:2181,Slave1:2181,Slave2:2181
          pulsar.max-entry-read-batch-size=100
          pulsar.target-num-splits=2
          pulsar.max-split-message-queue-size=10000
          pulsar.max-split-entry-queue-size=1000
          pulsar.max-split-queue-cache-size=-1
          pulsar.namespace-delimiter-rewrite-enable=false
          pulsar.rewrite-namespace-delimiter=/
          ####### BOOKKEEPER CONFIGS #######
          pulsar.bookkeeper-throttle-value = 0
          pulsar.bookkeeper-use-v2-protocol=true
          pulsar.bookkeeper-explicit-interval=0
          ####### MANAGED LEDGER CONFIGS #######
          pulsar.managed-ledger-cache-size-MB = 0
          

          启动Pulsar和Openlookeng就可以使用Openlookeng查询Pulsar数据

          10. hive连接pulsar

          Hive连接Pulsar的包内置于apache-pulsar-2.9.1-bin.tar.gz包中,只需要进行配置即可

          对Puslar进行配置

          #/${PATH}/apache-pulsar-2.9.1/conf/functions_worker.yml
          workerId: standalone
          workerHostname: Master
          workerPort: 6750
          #zookeeper配置
          configurationStoreServers: Master:2181
          pulsarServiceUrl: pulsar://Master:6650
          pulsarWebServiceUrl: http://Master:8089
          #连接器储存位置
          connectorsDirectory: ./connectors
          functionsDirectory: ./functions
          

          连接器配置, 连接器配置文件的名字可以自定义,在创建连接器的时候指定配置文件地址就可以

          #/${PATH}/apache-pulsar-2.9.1/connectors/pulsar-io-hdfs3-with-hive3/hdfs-sink.yml
          configs:
          	# hadoop配置文件地址
              hdfsConfigResources: "/root/AIops_component/apache-pulsar-2.9.1/hdfs_conf/core-site.xml,/root/AIops_component/apache-pulsar-2.9.1/hdfs_conf/hdfs-site.xml"
          	# 数据在hdfs上的存储目录
              directory: "/user/hive/warehouse/logging"
          	# hdfs保存数据文件的前缀
              filenamePrefix: "logging"
          	# 数据编码方式
              encoding: "UTF-8"
          	# hdfs保存数据文件后缀
              fileExtension: ".parquet"
          	# 数据内容分隔符,只有在json时有用
              separator: "\n"
          	# 缓存记录数
              maxPendingRecords: 240000
          	# 数据格式,支持:json、avro
              schemaType: json
          	# 数据内容schema
              schema: '{"type":"record","name":"myrecord","fields":[{"name":"name","type":"string"}, {"name":"address","type":"string"}, {"name" : "age", "type" : "int"}, {"name" : "isCustomer", "type" : "boolean"}]}'
              # 是否保存到hive(会以topic名称创建数据表,如果hive中存在相同名称的数据表则不会创建)
          	saveToHive: true
          	# hive中数据库的名字(数据库要提前建好)
              hiveDb: "aiops_data"
          	# hive的metastore地址
              hiveMetaStore: "thrift://Master:9083"
              #编码方式
              compression: "SNAPPY""
              #保存数据的间隔
              syncInterval: 600000
              formatType: "PARQUET"
              #数据间隔使用逗号
              fieldDelimiter: ','
              #hive配置
              hiveIntegration: true
              hiveMetastoreUris: "thrift://172.24.4.135:9150"
              #pulsar配置
              pulsarWebServiceUrl: "http://linux-4-132:8089,linux-4-133:8089,linux-4-134:8089"
          

          修改完配置之后创建并且启动连接器

          创建连接器,需要进入/${PATH}/apache-pulsar-2.8.0/bin/目录,然后执行

          ./pulsar-admin sink create --archive /root/apache-pulsar-2.9.1/connectors/pulsar-io-hdfs3-with-hive3/pulsar-io-hdfs3-with- hive3-2.9.1.nar --tenant public --namespace default --name logging_data_sink_test --sink-config-file /root/apache-pulsar-2.9.1/connectors/pulsar-io-hdfs3-with-hive3/pulsar-io-hdfs3-with-hive3-logging.yml --inputs TestTopic5
          #参数说明
          --archive 连接器文件
          --name 连接器名称,必须是唯一值
          --sink-config-file 连接器配置文件
          --inputs 连接器数据源的topic名称
          

          查看连接器的状态执行

          pulsar-admin sinks status \
          --tenant public \
          --namespace default \
          --name logging_data_sink_test
          

          查询的结果如下

          {
            "numInstances" : 1,
            "numRunning" : 1,
            "instances" : [ {
              "instanceId" : 0,
              "status" : {
                "running" : true,
                "error" : "",
                "numRestarts" : 0,
                "numReadFromPulsar" : 9,
                "numSystemExceptions" : 0,
                "latestSystemExceptions" : [ ],
                "numSinkExceptions" : 0,
                "latestSinkExceptions" : [ ],
                "numWrittenToSink" : 9,
                "lastReceivedTime" : 1634616255805,
                "workerId" : "c-standalone-fw-172.20.140.23-9080"
              }
            } ]
          }
          

          其中running为true则代表连接器启动成功

          关闭连接器

          pulsar-admin sinks stop \
          --tenant public \
          --namespace default \
          --name logging_data_sink_test
          

          删除连接器

          pulsar-admin sinks delete \
          --tenant public \
          --namespace default \
          --name test-sink
          

          需要注意的是:

          topic中不要包含"-",会导致hive建表失败

          对于json中的boolean类型的变量,需要注意下set、get方法,可能会和实际不一致,导致hive中字段和hdfs中数据字段不一致。

          11. 附录

          11.1 安装JDK

          进入Oracle官网(https://www.oracle.com/technetwork/java/javase/downloads/index.html),下载对应的JDK版本包进行安装,这里以jdk-8u181-linux-x64.tar.gz版本为例介绍JDK安装流程。

          创建存放java的目录,将jdk安装包解压到特定目录下。

          mkdir /usr/local/java 
          tar –zxvf jdk-8u181-linux-x64.tar.gz  -C /usr/local/java
          

          配置java环境变量。

          vi /etc/profile
          

          在/etc/profile里面添加如下内容,修改完成后,wq保存并退出(先按Esc,接着输入 :wq)。

          export JAVA_HOME=/usr/local/java/jdk1.8.0_181
          export JAVA_BIN=/usr/local/java/jdk1.8.0_181/bin
          export PATH=$PATH:$JAVA_HOME/bin
          export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
          export JAVA_HOME JAVA_BIN PATH CLASSPATH
          

          配置完成后,输入source profile,再输入java -version命令查看是否配置成功,如果显示java version " jdk1.8.0_181”信息,则表示已经配置成功。

          source profile
          java -version
          
          11.2 Zookeeper安装

          进入Zookeeper下载页面选择下载版本进行安装,这里以3.5.9版本为例(https://downloads.apache.org/zookeeper/zookeeper-3.5.9/)。

          解压Zookeeper安装包

          tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz -C /root/
          

          将Zookeeper目录下的conf文件夹中的zoo_sample.cfg重命名为zoo.cfg,然后修改配置

          cp zoo_sample.cfg zoo.cfg
          vim zoo.cfg
          dataDir=/root/Zookeeper/zoodata
          clientPort=2181
          server.0=Master:2888:3888
          server.1=Slave1:2888:3888
          server.2=Slave2:2888:3888
          

          然后在/root/Zookeeper/zoodata目录下创建myid文件并且写入当前服务器的编号,必修保证在集群中唯一,且与zoo.cfg中的id对应,以当前zoo.cfg为例0编号对应的是Master,1对应Slave1,2对应Slave2

          touch /root/Zookeeper/zoodata/myid
          echo "0">>myid
          

          将Zookeeper文件传到其他节点,然后修改myid

          scp -r /root/Zookeeper root@Slave1:/root/
          scp -r /root/Zookeeper root@Slave2:/root/
          

          进入/root/Zookeeper/bin目录启动Zookeeper,三个节点都要启动

          zkServer.sh start
          

          检查Zookeeper状态

          zkServer.sh status
          

          停止Zookeeper

          zkServer.sh stop
          
          11.3 安装MySQL

          AILP的监控平台的运行依赖数据库服务,当前支持MySQL,人大金仓等多种类型的关系数据库部署。此处以MySQL为例介绍数据库的安装过程,其他类型数据库请参考数据库厂商产品安装指南进行。

          1.首先关闭linux的防火墙,执行命令。

          chkconfig iptables off
          

          2.从mysql官网上下载自己适合的mysql版本https://dev.mysql.com/downloads/mysql/5.6.html#downloads,进入mysql官网,进行下载,以下载mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz为例。

          3.将下载好的mysql压缩文件放置在linux的/usr/local文件夹下,解压mysql安装包。

          tar zxvf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
          

          4.将解压后的文件重命名为mysql。

          mv mysql-5.6.46-linux-glibc2.12-x86_64 mysql
          

          5.创建mysql用户组及用户。

          groupadd mysql
          useradd -r -g mysql mysql
          

          6.进入到mysql目录,执行添加MySQL配置的操作。

          cp support-files/my-medium.cnf /etc/my.cnf
          或:cp support-files/my-default.cnf /etc/my.cnf
          

          是否覆盖?按y 回车

          7.编辑/etc/my.cnf文件。

          vim /etc/my.cnf
          

          8.在my.cnf文件中添加或者修改相关配置,更改完成后保存退出。

          #These are commonly set, remove the # and set as required.
          basedir = /usr/local/mysql
          datadir = /usr/local/mysql/data
          port = 3306
          # server_id = .....
          socket = /tmp/mysql.sock
          character-set-server = utf8
          skip-name-resolve
          log-err = /usr/local/mysql/data/error.log
          pid-file = /usr/local/mysql/data/mysql.pid
          

          9.在mysql当前目录下设定目录的访问权限(注意后面的小点,表示当前目录)。

          chown -R mysql .
          chgrp -R mysql .
          scripts/mysql_install_db --user=mysql
          chown -R root .
          chown -R mysql data
          

          10.上面第三步执行可能会出现下面的错误。

          [root@localhost mysql-mult]# ./scripts/mysql_install_db  --defaults-file=conf/3306my.cnf
          FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
          

          11.解决方法 :安装autoconf库。

          yum -y install autoconf
          

          12.初始化数据(在mysql/bin或者mysql/scripts下有个 mysql_install_db 可执行文件初始化数据库),进入mysql/bin或者mysql/scripts目录下,执行下面命令。

          ./mysql_install_db --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
          

          13.启动mysql,进入/usr/local/mysql/bin目录,执行下面命令。

          ./mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root &
          

          ​ 注意,如果光标停留在屏幕上,表示启动成功,需要我们先关闭shell终端,再开启一个新的shell终端,不要执行退出操作。如果出现 mysql ended这样的语句,表示Mysql没有正常启动,你可以到log中查找问题。

          14.设置开机启动,新开启shell中断后,进入mysql目录,执行下面命令。

          cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
          cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
          chmod 700 /etc/init.d/mysql
          chkconfig --add mysqld
          chkconfig --level 2345 mysqld on
          chown mysql:mysql -R /usr/local/mysql/
          

          15.重启linux。

          reboot
          

          16.查看mysql状态。

          service mysqld status
          

          17.添加远程访问权限

          1)添加mysql命令。

          ln  -s /usr/local/mysql/bin/mysql  /usr/bin
          

          ​ 2)登录mysql,更改访问权限。

          mysql -uroot –p  #密码为空直接回车,运行以下三条命令。
          GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' with grant option;
          GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'yourpassword' with grant option;
          

          ​ 3)退出mysql。

          exit
          
          1. mysql安装完毕。
          11.4 配置SSH免密登录

          Hadoop需要Master节点可以通过SSH免密登录到其他节点,首先使用Master节点产生公私钥,在Master节点执行命令

          ssh-keygen
          

          然后在~/.ssh路径下会生成公私钥

          id_rsa (私钥)
          id_rsa.pub (公钥)
          

          通过将公钥发送给其他节点的方式实现免密登录

          ssh-copy-id -i ~/.ssh/id_rsa.pub Slave1
          ssh-copy-id -i ~/.ssh/id_rsa.pub Slave2
          

          使用Master节点执行命令检测是否可以免密登录

          ssh Slave1
          

          如果不需要输入密码则成功

          11.5 安装Redis

          Web控制台运行需要Redis缓存服务,以下是Redis的简要安装步骤。

          1.下载5.05版本在 /usr/local/ 下新建一个 redis 文件夹。

          wget http://download.redis.io/releases/redis-5.0.4.tar.gz
          

          2.在 /usr/local/ 下新建一个 redis 文件夹。

          cd /usr/local
          mkdir redis
          

          3.解压redis-5.0.5.tar.gz安装包。

          tar -zxvf redis-5.0.5.tar.gz
          

          4.安装 gcc 环境。

          yum install gcc-c++
          

          5.进入解压后的 redis-5.0.5 目录,执行 make 命令。

          cd redis-5.0.5
          make 
          

          6.进入 redis-5.0.5的src 目录后执行 make install命令。

          cd src/
          make install
          

          7.在 redis 目录下创建 bin 和 etc 两个文件夹。

          mkdir -p /usr/local/redis/bin
          mkdir -p /usr/local/redis/etc
          

          8.redis-5.0.5 里的主配置文件 redis.conf 移动到刚创建的 etc 文件夹。

          cd redis-5.0.5
          mv redis.conf /usr/local/redis/etc/
          

          9.将 src 目录里带有绿色标识的文件全都移动到刚创建的 bin 文件夹。

          cd src/
          mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel  redis-server redis-trib.rb /usr/local/redis/bin/
          

          10.进入 etc 目录,修改 redis.conf 文件。

          cd /usr/local/redis/etc/
          vi redis.conf
          

          11.注释掉 bind 127.0.0.1 这一行。

          cd /usr/local/redis/etc/
          vi redis.conf
          

          12.将 protected-mode 属性改为 no (关闭保护模式,不然会阻止远程访问;同上,正式服务器项目上线可不修改)。

          protected-mode no
          

          13.将 daemonize 属性改为 yes (这样启动时就在后台启动)。

          daemonize yes
          

          14.设置密码(可选,建议还是设个密码), 修改完成后,保存并退出。

          requirepass redispassword
          

          在 redis 目录下执行,启动redis,查看redis是否成功启动。

          cd /usr/local/redis/
          ./bin/redis-server /usr/local/redis/etc/redis.conf
          ps -ef | grep redis
          
          11.6 二进制部署包目录
          apache-pulsar-2.8.0-bin.tar.gz
          hetu-server-1.4.0.tar.gz
          hadoop-3.3.1.tar.gz
          apache-hive-3.1.2-bin.tar.gz
          
           
打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《大数据平台组件部署说明(pulsar、Openlookeng、Hadoop集群、hive、python、Flink、JDK、Zookeeper、MySQL、Redis等)》
文章链接:https://goodmancom.com/wl/175711.html