栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

大数据软件安装配置教程[Linux, JDK, MySQL, Hadoop, ZooKeeper, Hive, Flume, Kafka, HBase-Phoenix, Scala, Spark等等]

大数据软件安装配置教程[Linux, JDK, MySQL, Hadoop, ZooKeeper, Hive, Flume, Kafka, HBase-Phoenix, Scala, Spark等等]

    声明: 1. 本文为我的个人复习总结, 并非那种从零基础开始普及知识 内容详细全面, 言辞官方的文章
              2. 由于是个人总结, 所以用最精简的话语来写文章
              3. 若有错误不当之处, 请指出
整理了大数据领域常用的15个软件的安装, 除了最后4个 其他都有对应的安装包, 这4个以后会进行补充;
不同版本的安装包可能有不同的安装配置方式, 为了不必要的报错, 请使用和我一样版本的安装包 以及 Linux系统

目录:

    LinuxJDKMySQLHadoopZooKeeperHiveFlumeKafkaHbase-PhoenixScalaSparkRedisClickHouseFlinkElasticSearch

01. Linux基础配置 Linux(CentOS-7.6-x64位)基础配置, 虚拟机平台VmWare15

CentOS-7.6-x64镜像下载–> 百度云链接: https://pan.baidu.com/s/1iWfsCydjEU6soT7HO2OYRA 提取码:1111

VmVare15安装包下载–> 百度云链接: https://pan.baidu.com/s/1SfaWn3xpwDBNEGYqipRtaw 提取码:1111

    虚拟机网络配置好,使用静态ip, 确保网关(ip地址如 192.168.80.86 的前3段 192.168.80 为网关 )使用正确, 和虚拟网卡一致

      VmWare的虚拟网络编辑器里

      点开上图的NAT设置

    >
    >
    > 与前一张图同网段, 网关为.2, 因为.1给Windows的虚拟网卡了
    >
    > 
    

      确认要启动的虚拟机的网络适配器类型是NAT模式

      修改虚拟机配置文件

      vi  /etc/sysconfig/network-scripts/ifcfg-ens33 
      

      DEVICE=“eth0”
      BOOTPROTO=“static”
      HWADDR=“00:0C:29:83:7F:54”
      IPV6INIT=“yes”
      NM_ConTROLLED=“yes”
      onBOOT=“yes”

      TYPE=“Ethernet”
      UUID=“aae85c0a-42db-4772-b940-0fc9c875afd2”

      IPADDR=192.168.80.86 (同网段,别选.0, .1, .2)

      GATEWAY=192.168.80.2

      NETMASK=255.255.255.0

      DNS1=192.168.80.2 (和网关一样即可)

      DNS2=114.114.114.114

      重启网络服务

      systemctl restart network 
      

    yum下载 相关必备的软件包

    yum install -y rsync gcc gcc-c++  vim wget perl  ntp ntpdate net-tools  lrzsz  libaio  
    

    配置hosts文件

    vim /etc/hosts
    
    192.168.80.11 hadoop102
    192.168.80.12 hadoop103
    192.168.80.13 hadoop104
    

    windows的hosts文件也配置一下,配完别忘了保存文件, 它在 C:WINDOWSSystem32driversetc 目录下

    配置SSH免密登录

      执行ssh-keygen -t rsa (一直回车)生成公钥私钥

      cd ~/.ssh

      在 ~/.ssh目录下 ssh-copy-id hadoop102 ssh-copy-id hadoop103

      ssh-copy-id hadoop104 (hadoop104访问不通hadoop102时,在hadoop104上执行这些命令)

    脚本编写:

      自己编写xsync.sh脚本(放在家目录下,家目录配置到环境变量/etc/profile的Path里),对rsync做封装,在集群间发送拷贝文件

      修改的配置文件必须source一下才能生效

      export PATH=$PATH:~/bin
      

      xsync.sh的编写

      #!/bin/bash
      #1. 判断参数个数
      if [ $# -lt 1 ]
      then
        echo Not Enough Arguement!
        exit;
      fi
      #2. 遍历集群所有机器
      for host in hadoop102 hadoop103 hadoop104
      do
        echo ====================  $host  ====================
        #3. 遍历所有目录,挨个发送
        for file in $@
        do
          #4 判断文件是否存在
          if [ -e $file ]
          then
            #5. 获取父目录
            pdir=$(cd -P $(dirname $file); pwd)
            #6. 获取当前文件的名称
            fname=$(basename $file)
            ssh $host "mkdir -p $pdir"
            rsync -av $pdir/$fname $host:$pdir
          else
            echo $file does not exists!
          fi
        done
      done
      

      cd 软连接, pwd一下显示是软连接指向的实际文件所在目录; 而 cd -P 软连接, pwd一下显示的是软连接所在目录

      chmod +x xsync.sh

      转发命令脚本all

      #!/bin/bash
      for i in hadoop102 hadoop103 hadoop104
      do
          echo --------- $i ----------
          ssh $i "$*"
      done
      

      chmod +x all

    关闭并禁用防火墙自启

    systemctl stop firewalld && systemctl disable firewalld
    

    调整时间为网络时间, 时间同步

    ntpdate ntp.aliyun.comhwclock --systohc 
    

最好现在创建下快照,保留最基础配置,以后可以多次测试练习

02. JDK安装配置 Linux下 OpenJDK1.8 的安装与环境变量配置

安装包下载–> 百度云链接: https://pan.baidu.com/s/1aN9VVMYc9_Fw_xq0Q-lOxA 提取码:1111

    解压到指定目录并修改名字为 /opt/module/jdk-1.8

    配置环境变量

    vim  /etc/profile.d/jdk.sh
    

    检查是否安装成功

    java -version
    

    配置环境变量

    vim  /etc/profile.d/jdk.sh
    
    # JAVA
    export JAVA_HOME=/opt/module/jdk-1.8
    export PATH=$PATH:$JAVA_HOME/bin
    
    source   /etc/profile.d/jdk.sh
    
    chmod 755 /tmp/hsperfdata_*
    

    xsyn.sh同步分发

    集群同步分发文件

    集群同步分发配置文件/etc/profile.d/jdk.sh的话,还要source一下

03. MySQL安装配置 MySQL 5.7.16 安装配置, 默认连接端口3306

安装包下载–> 百度云链接: https://pan.baidu.com/s/19PlQdOiInNxXzFpGDqjhHA 提取码:1111

    检查是否曾经安装过mysql

    rpm -qa|grep mariadb
    
    # 若有,则卸载
    rpm -e --nodeps  mariadb-libs
    

    检查mysql的以依赖环境 libaio和 net-tools 和 perl

     rpm -qa|grep libaio
     rpm -qa|grep net-tools
     rpm -qa|grep perl
     # 若没有,可以到自带的media光盘里找安装包进行安装 
    

    授予文件夹读写可执行权限

    # 由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限
    chmod -R 777 /tmp
    

    安装, 用rpm安装, 或者用简易的tar.gz安装

    # 在mysql的安装文件目录下执行:(必须按照顺序执行)
    rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
    

    检查是否安装成功

    mysqladmin --version
    

    mysql服务的初始化

    mysqld --initialize --user=mysql
    
    # 查看密码:
    cat /var/log/mysqld.log | grep  root@localhost   # root@localhost: 后面就是初始化的密码,   :+空格+密码
    

    服务开停

    启动:  systemctl  start  mysqld
    关闭:  systemctl  stop  mysqld
    自启动: systemctl  enable  mysqld (mysqld.service)
    

    首次登录

    # 登陆后修改密码,不然用初始密码做不了事
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root12345'; 
    # 然后退出,用新密码重新登录
    

    mysql的安装目录

    开启允许远程访问

    grant all privileges on *.*  to root@'%'  identified by 'root12345';flush privileges;
    

    sqlmode

    show variables like ‘sql_mode’;
    set sql_mode=‘ONLY_FULL_GROUP_BY’;

    sql_mode常用值如下:

    ONLY_FULL_GROUP_BY:
    对于GROUP BY聚合操作,如果在SELECt中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中

    NO_AUTO_VALUE_ON_ZERO:
    该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。

    STRICT_TRANS_TABLES:
    在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
    NO_ZERO_IN_DATE:
    在严格模式下,不允许日期和月份为零

    NO_ZERO_DATE:
    设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。

    ERROR_FOR_DIVISION_BY_ZERO:
    在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL

    NO_AUTO_CREATE_USER:
    禁止GRANT创建密码为空的用户

    NO_ENGINE_SUBSTITUTION:
    如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

    PIPES_AS_CONCAT:
    将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

    ANSI_QUOTES:
    启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

    ORACLE: 设置等同PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,

    ​ NO_KEY_OPTIONS, NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER

    修改字符集

    vim /etc/my.cnf

    在最后加上中文字符集配置 character_set_server=utf8mb4, 重启mysql

    对已经存在的库修改: alter database mydb character set ‘utf8mb4’;

    对已经存在的表修改: alter table mytbl convert to character set ‘utf8mb4’;

    对已经存在的数据,若要修改只能删除这条数据重新输入了

    然后重启mysqld服务 systemctl restart mysqld.service


mysql报错

    Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’

    解决办法: 配置文件的mysqld下指明socket实际路径,比如加上socket = /var/lib/mysql/mysql.sock

    [ERROR] Plugin ‘InnoDB’ init function returned error.

​ [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.

​ 解决办法: 吧/var/lib/mysql下ib_logfile开头的文件删除掉

    mysql启动失败时,可以把var/run/mysqld目录删了重建

maxwell时配置

server-id=1
log-bin=master
binlog_format=row

启动mysqld的命令: /usr/sbin/mysqld --user=root

04. Hadoop集群搭建 Hadoop[3.1.3] 完全分布式模式搭建配置

安装包下载 --> 百度云链接: https://pan.baidu.com/s/1HDEF-JoWfD-Nj_9rEkyyBg 提取码:1111

    解压到指定目录并修改名字为 /opt/module/hadoop-3.1.3

    配置环境变量 vim /etc/profile.d/hdp.sh

    #HADOOP
    export HADOOP_HOME=/opt/module/hadoop-3.1.3
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    
Hadoop重要目录

(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本

(2)etc目录:Hadoop的配置文件目录

(3)lib目录: 存放Hadoop的本地库(对数据进行压缩解压缩功能)

(4)sbin目录:存放启动或停止Hadoop相关服务的脚本

(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

Hadoop的运行模式:
    本地模式: 非分布式, 无需任何配置, 直接简单的Java进程运行, 无需启动 HDFS&Yarn伪分布式模式: HDFS&Yarn都在同一台机器的同一个Hadoop上完全分布式模式: HDFS&Yarn在不同机器的不同Hadoop上
集群规划部署:

NameNode和SecondaryNameNode不要安装在同一台服务器

ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上

hadoop103至少给cpu (1*2)个,8g内存, 因为Yarn太耗资源

hadoop102hadoop103hadoop104
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
YARNNodeManagerResourceManager NodeManagerNodeManager
配置文件:

在$HADOOP_HOME/etc/hadoop/hadoop-env.sh里添加

export  JAVA_HOME=/opt/module/jdk-1.8

在$HADOOP_HOME/etc/hadoop/workers里写上: (别有多余空格空行)

hadoop102
hadoop103
hadoop104

四类配置文件: core, hdfs, mapred, yarn, 对于site文件间,大部分都配置在哪个-site.xml都一样,但核心重要配置还是放到core-site.xml下

core-site.xml:

    
    
    
        hadoop.tmp.dir
        /opt/module/hadoop-3.1.3/data
    

    
    
        hadoop.proxyuser.root.hosts
        *
    
    
        hadoop.proxyuser.root.groups
        *
    
    
        hadoop.http.staticuser.user
        root
    
        
    
    fs.defaultFS
    hdfs://hadoop102:8020
     
    

hdfs-site.xml:

    
    
    
        dfs.safemode.threshold.pct
        0
    
    
    
        dfs.namenode.secondary.http-address
        hadoop104:9868
    
    
    
        dfs.namenode.http-address
        hadoop102:9870
    
    
    
        dfs.replication
        1
    


mapred.xml:

    
    
    
        mapreduce.framework.name
        yarn
    
    
    
        mapreduce.jobhistory.address
        hadoop102:10020
    
    
    
        mapreduce.jobhistory.webapp.address
        hadoop102:19888
    
    
    
        mapreduce.application.classpath
        
            ${HADOOP_HOME}/etc/hadoop,
            ${HADOOP_HOME}/share/hadoop/common/*,
            ${HADOOP_HOME}/share/hadoop/common/lib/*,
            ${HADOOP_HOME}/share/hadoop/hdfs/*,
            ${HADOOP_HOME}/share/hadoop/hdfs/lib/*,
            ${HADOOP_HOME}/share/hadoop/mapreduce/*,
            ${HADOOP_HOME}/share/hadoop/mapreduce/lib/*,
            ${HADOOP_HOME}/share/hadoop/yarn/*,
            ${HADOOP_HOME}/share/hadoop/yarn/lib/*
        
    
    

yarn-site.xml:


    
    
        yarn.scheduler.minimum-allocation-mb
        512
    
    
        yarn.scheduler.maximum-allocation-mb
        4096
    

    
    
        yarn.nodemanager.resource.memory-mb
        4096
    

    
    
        yarn.nodemanager.pmem-check-enabled
        false
    
    
        yarn.nodemanager.vmem-check-enabled
        false
    

    
    
        yarn.timeline-service.enabled
        true
    
    
        yarn.timeline-service.hostname
        ${yarn.resourcemanager.hostname}
    
    
        yarn.timeline-service.http-cross-origin.enabled
        true
    

    
    
        yarn.log-aggregation-enable
        true
    
    
    
        yarn.log.server.url
        http://hadoop102:19888/jobhistory/logs
    
    
    
        yarn.log-aggregation.retain-seconds
        604800
    
    
    
        yarn.resourcemanager.address
        hadoop103:8032
    
    
        yarn.resourcemanager.scheduler.address
        hadoop103:8030
    
    
        yarn.resourcemanager.resource-tracker.address
        hadoop103:8031
    

    
    
        yarn.application.classpath
        /opt/module/hadoop-3.1.3/etc/hadoop:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/*:/opt/module/hadoop-3.1.3/share/hadoop/common/*:/opt/module/hadoop-3.1.3/share/hadoop/hdfs:/opt/module/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/opt/module/hadoop-3.1.3/share/hadoop/hdfs/*:/opt/module/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/opt/module/hadoop-3.1.3/share/hadoop/mapreduce/*:/opt/module/hadoop-3.1.3/share/hadoop/yarn:/opt/module/hadoop-3.1.3/share/hadoop/yarn/lib/*:/opt/module/hadoop-3.1.3/share/hadoop/yarn/*
    
    
    
        yarn.resourcemanager.hostname
        hadoop103
    
    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
    
        yarn.nodemanager.env-whitelist
        JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
        
    


安全用户:

1、对于start-dfs.sh和stop-dfs.sh文件,添加下列参数:

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

2、对于start-yarn.sh和stop-yarn.sh文件,添加下列参数:

YARN_RESOURCEMANAGER_USER=rootHADOOP_SECURE_DN_USER=yarnYARN_NODEMANAGER_USER=root
启动集群 1. 格式化:

​ 第一次启动时在hadoop102格式化NameNode, 如果格式化失败,需要杀死所有的hadoop进程,然后删除指定的本地data目录 (防止重新格式化生成的clusterId和data目录下老的clusterId不一致)

hdfs namenode -format

2. xsync.sh集群分发

集群同步分发文件

集群同步分发配置文件/etc/profile.d/hdp.sh的话,还要source一下

3. 启动停止命令:

sbin/start-all.sh

sbin/start-dfs.sh

sbin/start-yarn.sh

sbin/mr-jobhistory-daemon.sh start historyserver

hdfs --daemon start namenode/datanode/secondarynamenode

yarn --daemon start resourcemanager/nodemanager

4.测试官方案例wordcount

编写wc.txt 上传到HDFS上, 计算结果放到HDFS的/out下, 若能计算成功, 则说明安装配置OK了

hadoop  jar  /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar  wordcount  /wc.txt  /out
5. Web端访问:
    查看NN http://hadoop102:9870/查看2NN http://hadoop104:9868/status.html查看MR的日志 http://hadoop102:19888/jobhistory查看Yarn的监控日志(更全,不只有MR) http://hadoop103:8088/
05. ZooKeeper集群搭建 ZooKeeper [3.5.7] 部署有单机部署版和集群部署版, 默认连接端口号2181

安装包下载–> 百度云链接: https://pan.baidu.com/s/1PsiwnwILw8pk_gDh726tIw 提取码:1111

    单机版

      解压到指定目录并修改名字为 /opt/module/zookeeper-3.5.7

      配置环境变量

      vim  /etc/profile.d/zk.sh
      
      # ZOOKEEPER
      export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.7
      export PATH=$PATH:$ZOOKEEPER_HOME/bin
      
      source  /etc/profile.d/zk.sh
      

      创建ZooKeeper所需要的工作目录

        mkdir  /opt/module/zookeeper-3.5.7/zkData
      

      复制模板生成配置文件

        cp  /opt/module/zookeeper-3.5.7/conf/zoo_sample.cfg  /opt/module/zookeeper-3.5.7/conf/zoo.cfg
      

      编辑配置文件

       vim  /opt/module/zookeeper-3.5.7/conf/zoo.cfg
      
        #修改如下内容:
      dataDir=/opt/module/zookeeper-3.5.7/zkData
      

      ZooKeeper的启动和停止

      服务端启动: /opt/module/zookeeper-3.5.7/bin/zkServer.sh start

      服务端状态查看: /opt/module/zookeeper-3.5.7/bin/zkServer.sh status

      服务端关闭: /opt/module/zookeeper-3.5.7/bin/zkServer.sh stop

      jps一下出现:

      4020 Jps
      4001 QuorumPeerMain  #即为ZooKeeper进程
      

    客户端启动: /opt/module/zookeeper-3.5.7/bin/zkCli.sh

    客户端退出: quit

    集群版

    在配置完单机版的基础上, 在每个机器的 /opt/module/zookeeper-3.5.7/zkData下新建一个myid的文件,里面写上自己的id(整数, 不重复就行)

    然后在配置文件/opt/module/zookeeper-3.5.7/conf/zoo.cfg下添加

    #######################cluster##########################server.2=hadoop102:2888:3888server.3=hadoop103:2888:3888server.4=hadoop104:2888:3888#以server.2=hadoop102:2888:3888为例, 2指的是myid的id号,#2888端口是这个服务器Follower与集群中的Leader服务器交换信息的端口,#3888端口是选举时通讯要用的端口
    

    集群同步分发文件后别忘了修改myid文件,使每个机器的id都不一样,

    集群同步分发配置文件/etc/profile.d/zk.sh的话,还要source一下

客户端基本命令:
命令基本语法功能描述
help显示所有操作命令
ls path使用 ls 命令来查看当前znode的子节点 -w 监听子节点变化 -s 附加次级信息
create普通创建 -s 含有序列 -e 临时(重启或者超时消失)
get path获得节点的值 -w 监听节点内容变化 -s 附加次级信息
set设置节点的具体值
stat查看节点状态
delete删除节点
deleteall递归删除节点
配置文件解读:

1)tickTime =2000:通信心跳数,ZooKeeper服务器与客户端心跳时间,单位毫秒

ZooKeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。

它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)

2)initLimit =10:LF初始通信时限

Follwer和Leader超过 initLimit * tickTime还没初始连接时连接上进行通信,即踢出Follwer

3)syncLimit =5:LF同步通信时限

Follwer和Leader超过 syncLimit * tickTime还没成功进行同步,即踢出Follwer

4)dataDir:数据文件目录**+**数据持久化路径

主要用于保存ZooKeeper中的数据。

5)clientPort =2181:服务端端口

06. Hive安装配置 Hive [3.1.2] 部署有客户端进行 直接本地连接, 以metastore服务方式本地连接, 和hiveserver2-JDBC远程连接(端口号10000)3种

Hive安装包下载–> 百度云链接: https://pan.baidu.com/s/1NrCB-Qi-hO0n8EfHnu3HLw 提取码:1111

MySQL的JDBC连接驱动包下载–> 百度云链接: https://pan.baidu.com/s/1u_vThTJI0z-oP2pPOODJ9g 提取码:1111

依赖于Hadoop的HDFS和MapReduce, 所以请先启动Hadoop的HDFS和Yarn

    直接本地连接

      解压到指定目录并修改名字为 /opt/module/hive-3.1.2

      配置环境变量

      vim  /etc/profile.d/hive.sh
      
      # HIVE
      export HIVE_HOME=/opt/module/hive-3.1.2
      export PATH=$PATH:$HIVE_HOME/bin
      
      source  /etc/profile.d/h.sh
      

      解决日志jar包冲突, 在Hive的lib下

       mv  log4j-slf4j-impl-2.10.0.jar  log4j-slf4j-impl-2.10.0.jar.bak
      

      不以默认的derby作为元数据库,以mysql作为元数据库,首先在lib下添加mysql的jdbc驱动包(如果你用的是我给你的安装包,就不用执行这一步了,因为我给你的是我修改后重新打包的,已经做好这一步了)

      mysql下新建一个库,我这里命名为metastore,你也可以用其他名字

      在conf 目录下新建 hive-site.xml 文件,注意修改里面的jdbc(用户名,密码,url,驱动)配置

       
      
      
      
      
      javax.jdo.option.ConnectionURL
      jdbc:mysql://hadoop102:3306/metastore?useSSL=false
      
      
      
         
      javax.jdo.option.ConnectionDriverName
      com.mysql.jdbc.Driver
      
      
      
         
      javax.jdo.option.ConnectionUserName
      root
      
      
      
         
      javax.jdo.option.ConnectionPassword
      root12345
      
      
      
         
      hive.metastore.schema.verification
      false
      
      
      
         
      hive.metastore.event.db.notification.api.auth
      false
      
      
      
         
      hive.cli.print.current.db
      true
      
      
      
         
      hive.cli.print.header
      true
      
      
      
         
      hive.metastore.warehouse.dir
      /user/hive/warehouse
      
      
       
      
      
      

      初始化 Hive 元数据库

       schematool -initSchema -dbType mysql - verbose
      

      启动Hive

      bin/hive    #即可进入到类似于mysql的命令行, 可以写sql
      
       测试: 
       show databases; 
       use default;
       create table test (id int); 
       insert into test values(1); 
       select * from test;
      
    以metastore服务方式本地连接

    在做完上面本地连接的基础上

      在 hive-site.xml 文件中添加如下配置信息

      
      hive.metastore.uris
      thrift://hadoop102:9083
      
      

      启动metastore

      hive --service metastore 
      
    以hiveserver2的JDBC服务方式远程连接

    在做完上面本地连接的基础上,因为hiveserver2依赖于metastore

      在 hive-site.xml 文件中添加如下配置信息

      hive.server2.thrift.bind.hosthadoop102hive.server2.thrift.port10000
      

      修改hiveserver2堆内存配置,

      在bin/hive-config.sh下面:

      export HADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-256}

      改为export HADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-1500}

      先启动metastore服务, hive --service metastore

      再启动hiveserver2服务 hive --service hiveserver2 (等待较为漫长)

      服务端启动完毕后,即可开始进行客户端远程访问

      客户端执行 bin/beeline -u jdbc:hive2://hadoop102:10000 -n root 名字为HDFS里设置的用户名字

07. Flume安装配置 Flume [1.9.0] 安装配置

安装包下载–> 百度云链接: https://pan.baidu.com/s/1BtYeNNRwa0yxv2dEfMWhww 提取码:1111

    解压到指定目录并修改名字为 /opt/module/flume-1.9.0

    将lib文件夹下的guava-11.0.2.jar删除以兼容Hadoop 3.1.3

    rm -f /opt/module/flume-1.9.0/lib/guava-11.0.2.jar
    

    测试

      安装nc

      yum install -y nc
      

      在flume目录下创建job并进入

      新建编辑 flume-netcat-logger.conf配置文件

      # Name the components on this agent
      a1.sources = r1
      a1.sinks = k1
      a1.channels = c1
      
      # Describe/configure the source
      a1.sources.r1.type = netcat
      a1.sources.r1.bind = localhost
      a1.sources.r1.port = 44444
      
      # Describe the sink
      a1.sinks.k1.type = logger
      
      # Use a channel which buffers events in memory
      a1.channels.c1.type = memory
      a1.channels.c1.capacity = 1000
      a1.channels.c1.transactionCapacity = 100
      
      # Bind the source and sink to the channel
      a1.sources.r1.channels = c1
      a1.sinks.k1.channel = c1
      

      在flume目录下启动flume

      bin/flume-ng  agent  -c  conf/  -n  a1 -f  job/flume-netcat-logger.conf  -Dflume.root.logger=INFO,console
      

      新建一个终端 向44444端口发送数据, 观察flume控制台采集数据打印情况

      nc -lk  44444
      
08. Kafka集群搭建 Kafka [2.11-0.11.0.0] 集群搭建

安装包下载–> 百度云链接: https://pan.baidu.com/s/1sLSqZEisEfcNiACTEF-0Mw 提取码:1111

依赖于ZooKeeper,先启动ZooKeeper

集群搭建

    解压到指定目录并修改名字为 /opt/module/kafka_2.11-0.11.0.0

    配置环境变量

    vim  /etc/profile.d/kfk.sh
    
    # KAFKA
    export KAFKA_HOME=/opt/module/kafka_2.11-0.11.0.0
    export PATH=$PATH:$KAFKA_HOME/bin
    
    source  /etc/profile.d/kfk.sh
    

    在/opt/module/kafka_2.11-0.11.0.0 目录下创建logs文件夹

    修改配置文件 config/server.properties

    #修改: 
    #broker的全局唯一编号,不能重复
    broker.id=2
    log.dirs=/opt/module/kafka_2.11-0.11.0.0/logs
    #配置连接Zookeeper集群地址
    zookeeper.connect=hadoop102:2181/kafka
    #zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka
    
    #添加:
    #删除topic功能使用
    delete.topic.enable=true
    #配置允许远程访问
    listeners=PLAINTEXT://:9092
    advertised.listeners=PLAINTEXT://hadoop101:9092
    
    #其他说明
    #num.partitions=1      topic在当前broker上的分区个数    
    #log.retention.hours=168    segment文件保留的最长时间, 超时将被删除  
    

    分发配置文件/etc/profile.d/kfk.sh并source, 分发kafka, 再修改broker.id使每个机器的broker.id都不一样

    先启动ZooKeeper,

    再启动Kafka kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties

    停止Kafka kafka-server-stop.sh

    测试

    创建一个topic

 kafka-topics.sh --zookeeper hadoop102:2181/kafka --create --replication-factor 3 --partitions 1 --topic demo

​ 生产者发送消息

kafka-console-producer.sh --broker-list hadoop102:9092 --topic demo

​ 消费者消费消息

kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic demo
09. Hbase-Phoenix集群搭建 Hbase [2.2.7] 集群搭建, Phoenix版本5.0.0

安装包下载–> 百度云链接: https://pan.baidu.com/s/1W8Szu4MAWTSZW3ursz8RGQ 提取码:1111

依赖于ZooKeeper,HDFS, 先启动ZooKeeper和HDFS

Hbase集群搭建

    解压到指定目录并修改名字为 /opt/module/hbase-2.2.7-bin-phoenix5.0.0

    配置环境变量

    vim  /etc/profile.d/hbase.sh
    
    # Hbase
    export Hbase_HOME=/opt/module/hbase-2.2.7
    export PATH=$PATH:$Hbase_HOME/bin
    
    source  /etc/profile.d/hbase.sh
    

    编辑conf下的 hbase-env.sh, 添加

    export Hbase_MANAGES_ZK=false
    export JAVA_HOME=/opt/module/jdk-1.8
    

    编辑conf下的hbase-site.xml

    
      
        hbase.rootdir
        hdfs://hadoop102:8020/hbase
      
      
        hbase.cluster.distributed
        true
      
      
        hbase.zookeeper.quorum
        hadoop102,hadoop103,hadoop104
      
       
        hbase.tmp.dir
        ./tmp
      
      
        hbase.unsafe.stream.capability.enforce
        false
      
    
    hbase.wal.provider
    filesystem
    
    
    

    编辑conf下的reginservers

    hadoop102
    hadoop103
    hadoop104
    

    软连接Hadoop配置文件到Hbase:

    ln -s /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml /opt/module/hbase-2.2.7/conf/core-site.xml
    ln -s /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml /opt/module/hbase-2.2.7/conf/hdfs-site.xml
    

    分发配置文件/etc/profile.d/hbase.sh并source, 分发Hbase

    3台机器上都执行时间同步

    ntpdate ntp.aliyun.com
    hwclock --systohc 
    

    先启动ZooKeeper,

    再启动Hbase start-hbase.sh

    停止Hbase stop-hbase.sh

    查看访问Hbase的Web页面: http://hadoop102:16010

    测试

    Hbase的Shell操作

    hbase shelllistcreate 'student','info'put 'student','1001','info:sex','male'scan 'student'
    
Phoenix的使用

Phoenix是Hbase的开源SQL皮肤。可以使用sql代替Hbase客户端API来创建表,插入数据和查询Hbase数据

我给的安装包是我已经集成了Phoenix之后重新打包的, 使用我的安装包 就不用从官网下载Phoenix了; 若使用官网的,则用附录里面的步骤安装配置

    配置环境变量

    vim  /etc/profile.d/hbase.sh
    
    #PHOENIXexport PHOENIX_HOME=/opt/module/hbase-2.2.7/phoenixexport PHOENIX_CLASSPATH=$PHOENIX_HOMEexport PATH=$PATH:$PHOENIX_HOME/bin
    
    source  /etc/profile.d/hbase.sh
    

    启动Phoenix

     /opt/module/hbase-2.2.7/phoenix/bin/sqlline.py hadoop102,hadoop103,hadoop104:2181
    

    测试:

    在sql命令行里,

    !tablesCREATE  TABLE "teacher"("username" VARCHAr(30)  PRIMARY KEY);upsert into "teacher"  values('zhangsan');select * from "teacher";
    

附录(官网下载Phoenix, 安装配置目录自己根据实际情况,不一样的地方修改一下):

    安装bsdtar3

    sudo yum install -y epel-releasesudo yum install -y bsdtar3
    

    上传并解压tar包(这里可能会报不识别的文件头,忽略即可,或者可以改用bsdtar)

    tar -zxvf /opt/software/apache-phoenix-5.0.0-Hbase-2.0-bin.tar.gz -C /opt/module

    mv apache-phoenix-5.0.0-Hbase-2.0-bin phoenix

    复制server包并拷贝到各个节点的hbase-2.2.7/lib

    复制client包并拷贝到各个节点的hbase-2.2.7/lib

    配置环境变量

    vim  /etc/profile.d/hbase.sh
    
    #PHOENIXexport PHOENIX_HOME=/opt/module/phoenixexport PHOENIX_CLASSPATH=$PHOENIX_HOMEexport PATH=$PATH:$PHOENIX_HOME/bin
    
    source  /etc/profile.d/hbase.sh
    

    启动Phoenix

     /opt/module/phoenix/bin/sqlline.py hadoop102,hadoop103,hadoop104:2181
    
10. Scala安装配置 Linux下 Scala-2.12.11 的安装与环境变量配置

安装包下载–> 百度云链接: https://pan.baidu.com/s/1_KYhe95mcUqQBiqtQAkVBA 提取码:1111

    解压到指定目录并修改名字为 /opt/module/scala-2.12.11

    配置环境变量

    vim  /etc/profile.d/scala.sh
    
    # SCALA
    export SCALA_HOME=/opt/module/scala-2
    export PATH=$PATH:$SCALA_HOME/bin
    
    source   /etc/profile.d/scala.sh
    

    xsyn.sh同步分发

    集群同步分发文件

    集群同步分发配置文件/etc/profile.d/scala.sh的话,还要source一下

    检查是否安装成功

    scala -version
    
11. Spark集群搭建 Spark [3.0.0] 集群搭建, 有Local, Standalone,和Yarn三种模式

Spark安装包下载–> 百度云链接: https://pan.baidu.com/s/1LIMwN_MCevenyzDZsyVkhQ 提取码:1111

    Local 模式:

      解压到指定目录并修改名字为 /opt/module/spark-3.0.0-bin-hadoop3.2

      配置环境变量

      vim  /etc/profile.d/spark.sh
      
      # SPARK
      export SPARK_HOME=/opt/module/spark-3.0.0-bin-hadoop3.2
      export PATH=$PATH:$SPARK_HOME/bin
      
      source  /etc/profile.d/spark.sh
      

      输入spark-shell即可进入交互界面

      测试官方案例,计算圆周率的值

      spark-submit --class org.apache.spark.examples.SparkPi --master local[2] /opt/module/spark-3.0.0-bin-hadoop3.2/examples/jars/spark-examples_2.12-3.0.0.jar 10
      
    Standalone模式

    在Local模式的配置的基础上

      在conf下

      mv  slaves.template  slaves
      mv  spark-env.sh.template spark-env.sh
      

      vim slaves

      hadoop102
      hadoop103
      hadoop104
      

      vim spark-env.sh

      export JAVA_HOME=/opt/module/jdk-1.8
      SPARK_MASTER_HOST=hadoop102
      SPARK_MASTER_PORT=7077
      

      xsyn.sh同步分发

      集群同步分发文件

      集群同步分发配置文件/etc/profile.d/spark.sh的话,还要source一下

      启动 sbin/start-all.sh

      关闭 sbin/stop-all.sh

      查看 Master 资源监控 Web UI 界面: http://hadoop102:8080

      测试官方案例,计算圆周率的值

      spark-submit --class org.apache.spark.examples.SparkPi --master spark://hadoop102:7077 /opt/module/spark-3.0.0-bin-hadoop3.2/examples/jars/spark-examples_2.12-3.0.0.jar 10
      
    Yarn模式

    在完成Standalone的基础上

      vim spark-env.sh 添加

      YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
      

      xsyn.sh同步分发

      集群同步分发文件

      集群同步分发配置文件/etc/profile.d/spark.sh的话,还要source一下

      启动HDFS和Yarn, 然后执行sbin/start-all.sh 启动spark

      测试官方案例,计算圆周率的值

      spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster /opt/module/spark-3.0.0-bin-hadoop3.2/examples/jars/spark-examples_2.12-3.0.0.jar 10
      
12. Redis搭建 Redis6 有单机, 集群两种模式 一: 单机模式

    解压

    安装依赖

    yum install -y centos-release-scl scl-utils-build gcc gcc-c++
    yum install -y devtoolset-8-toolchain
    

    设置环境

    scl enable devtoolset-8 bash
    

    进入redis根目录 make, 如果make失败, make distclean 是清除上一次的make

    make
    #make distclean
    
     mv src bin
     mkdir /opt/module/redis-6.0.6/logs/
     touch /opt/module/redis-6.0.6/logs/redis.log
    

    修改redis.conf文件

    vim redis.conf
    
    bind 127.0.0.1       	 注释掉它  
    protected-mode yes    改为 no
    daemonize no          	改为 yes
    logfile ""	      	         改为 logfile /opt/module/redis-6.0.6/logs/redis.log
    

    启动

bin/redis-server /xxx/redis.conf
    进入客户端:
bin/redis-cli
bin/redis-cli -h hadoop101 -p 6379
bin/redis-cli -h hadoop101 -p 6379 -a root12345
    关闭
bin/redis-cli shutdown
13. ClickHouse安装配置 ClickHouse 安装配置, 默认连接端口8123 一: 单机模式

    修改Linux本身的一些限制

    vim /etc/security/limits.conf
    #添加
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 131072
    * hard nproc 131072
    
    vim /etc/security/limits.d/20-nproc.conf
    #添加
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 131072
    * hard nproc 131072
    
    vim /etc/selinux/config
    #修改
    SELINUX=disabled
    

    安装依赖

    sudo yum install -y libtool
    yum install -y *unixODBC*	
    

    方法一: rpm安装, 遇到输入user,直接回车跳过就好

    rpm -ivh  clickhouse-common-static-21.7.3.14-2.x86_64.rpm
    rpm -ivh  clickhouse-common-static-dbg-21.7.3.14-2.x86_64.rpm
    rpm -ivh  clickhouse-client-21.7.3.14-2.noarch.rpm
    rpm -ivh  clickhouse-server-21.7.3.14-2.noarch.rpm
    

    方法二: 执行命令进行yum在线安装:

    sudo yum install yum-utils
    sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
    sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/clickhouse.repo
    sudo yum install clickhouse-server clickhouse-client
    

    修改配置:

    vim /etc/clickhouse-server/config.xml
    #添加
    0.0.0.0
    

    启动

    /etc/init.d/clickhouse-server start
    

    进入客户端

clickhouse-client      #换行代表一条语句的结束
clickhouse-client -m   #分号代表一条语句的结束, 但粘贴的语句里只能有一个分号

若发生错误: Connecting to localhost:9000 as user default. Code: 210. DB::NetException: Connection refused (localhost:9000)

解决办法:

使用systemctl来启动停止, 而不是直接用原生/etc/init.d下的文件

sudo systemctl stop clickhouse-server

sudo systemctl start clickhouse-server

    关闭

    /etc/init.d/clickhouse-server stop
    

重要文件:

    数据文件: /var/lib/clickhouse/日志文件: /var/log/clickhouse-server/clickhouse-server.log
14. Flink集群搭建 Flink [1.1.13] 集群搭建, 有Standalone,Yarn 和 Kubernetes三种模式 一: Standalone模式

    解压

    修改配置文件

    vim conf/flink-conf.yaml
    # 修改
    jobmanager.rpc.address: localhost  修改为对应的ip
    taskmanager.numberOfTaskSlots: 1   修改成4
    
    vim conf/slaves
    #添加
    hadoop101
    

    启动

    bin/start-cluster.sh
    

    访问Web-UI http://localhost:8081

    提交任务

    bin/flink run examples/batch/WordCount.jar
    
    bin/flink run -c com.atguigu.wc.StreamWordCount myJar/flink-1-1.0-SNAPSHOT-jar-with-dependencies.jar
    

    关闭

    bin/stop-cluster.sh
    
二: Yarn模式

在上述Standalone完成的基础上, 注意这时插槽等资源是Yarn动态分配的

先启动HDFS和YARN

再配置HADOOP_CLASSPATH环境变量, 并source

export HADOOP_CLASSPATH=`${HADOOP_HOME}/bin/hadoop classpath`

参数:

-n(–container): TaskManager 的数量

-s(–slots): 每个TaskManager的slot数量, 默认每个TaskManager有1个slot, 一个slot一个core

-jm: JobManager 的内存(单位 MB)

-tm: 每个 taskmanager 的内存(单位 MB)。

-nm: 起个appName

-d: 后台执行

一: Session-Cluster 模式

启动一个永久的Flink集群, 每来一个job都放在这个集群运行 (不推荐)

    启动, 它会创建一个 /tmp/.yarn-properties-root的临时文件

    bin/yarn-session.sh -jm 1024 -tm 1024 -d
    

    访问http://localhost:8088/cluster 的Yarn界面中 任务列表的Tracking UI这一列即可进入到监控界面

    提交任务

    bin/flink run examples/batch/WordCount.jar
    
    bin/flink run -c com.atguigu.wc.StreamWordCount myJar/flink-1-1.0-SNAPSHOT-jar-with-dependencies.jar
    

    关闭

    yarn application -kill application_1631431602106_0001
    
二: yarn-per-job 模式

启动一个临时的Flink集群, 每来一个job都新开一个集群运行 (推荐, 任务间相互独立, 便于管理)

在提交任务时才新起集群

提交任务:

bin/flink run -t yarn-per-job -yjm 1024m -ytm 1024m examples/batch/WordCount.jar

参数加上 -t yarn-per-job

jm变成yjm

tm变成ytm

15. ElasticSearch集群搭建 ElasticSearch 有单机, 集群两种模式 一: 单机模式

    解压

    创建Linux普通用户, 因为Elasticsearch不允许root用户直接运行

    useradd es   #新增es用户
    passwd es    #为es用户设置密码
    chown -R es:es /opt/module/elasticsearch-7.8.0    #赋予用户访问目录权限
    

    修改配置

    vim config/elasticsearch.yml
    
    # 加入如下配置
    cluster.name: elasticsearch
    node.name: node-1
    network.host: 0.0.0.0
    http.port: 9200
    cluster.initial_master_nodes: ["node-1"]
    
    vim /etc/security/limits.conf
    #增加
    #每个进程可以打开的文件数的限制
    es soft nofile 65536
    es hard nofile 65536
    
    vim /etc/security/limits.d/20-nproc.conf
    #增加
    #每个进程可以打开的文件数的限制
    es soft nofile 65536
    es hard nofile 65536
    #操作系统级别对每个用户创建的进程数的限制, *带表Linux所有用户名称
    * hard nproc 4096
    
    vim /etc/sysctl.conf
    #增加
    #一个进程可以拥有的VMA(虚拟内存区域)的数量,默认值为65536
    vm.max_map_count=655360
    

    刷新加载配置

    sysctl -p
    

    切换es用户, 启动

    su es
    bin/elasticsearch
    # -d代表后台启动
    bin/elasticsearch -d
    

    WebUI访问: http://hadoop102:9200

二: 集群模式

其它跟单机模式一样

每台机器都要改Linux系统配置

修改elasticsearch配置文件:

vim config/elasticsearch.yml
#增加
#集群名称
cluster.name: cluster-es
#节点名称,每个节点的名称不能重复
node.name: node-1
#ip地址,每个节点的地址不能重复
network.host: hadoop102
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举 master
cluster.initial_master_nodes: ["node-1"]	# TODO


#是不是有资格主节点
node.master: true
node.data: true
http.port: 9200
# head 插件需要这打开这两个配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["hadoop102:9300","hadoop103:9300","hadoop104:9300"]	  # TODO
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
#集群内同时启动的数据任务个数,默认是 2 个
cluster.routing.allocation.cluster_concurrent_rebalance: 16
#添加或删除节点及负载均衡时并发恢复的线程个数,默认 4 个
cluster.routing.allocation.node_concurrent_recoveries: 16
#初始化数据恢复时,并发恢复线程的个数,默认 4 个
cluster.routing.allocation.node_initial_primaries_recoveries: 16
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/761555.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号