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

4 篇文章 0 订阅
2 篇文章 0 订阅

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

目录:

  1. Linux
  2. JDK
  3. MySQL
  4. Hadoop
  5. ZooKeeper
  6. Hive
  7. Flume
  8. Kafka
  9. HBase-Phoenix
  10. Scala
  11. Spark
  12. Redis
  13. ClickHouse
  14. Flink
  15. ElasticSearch

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

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

    1. VmWare的虚拟网络编辑器里

      在这里插入图片描述

    1. 点开上图的NAT设置

      在这里插入图片描述

    >
    >
    > 与前一张图同网段, 网关为.2, 因为.1给Windows的虚拟网卡了
    >
    > 
    
    1. 确认要启动的虚拟机的网络适配器类型是NAT模式

      在这里插入图片描述

    1. 修改虚拟机配置文件

      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

    2. 重启网络服务

      systemctl restart network 
      
  2. yum下载 相关必备的软件包

    yum install -y rsync gcc gcc-c++  vim wget perl  ntp ntpdate net-tools  lrzsz  libaio  
    
  3. 配置hosts文件

    vim /etc/hosts
    
    192.168.80.11 hadoop102
    192.168.80.12 hadoop103
    192.168.80.13 hadoop104
    

    windows的hosts文件也配置一下,配完别忘了保存文件, 它在 C:\WINDOWS\System32\drivers\etc 目录下

  4. 配置SSH免密登录

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

    2. cd ~/.ssh

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

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

  5. 脚本编写:

    1. 自己编写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

    2. 转发命令脚本all

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

      chmod +x all

  6. 关闭并禁用防火墙自启

    systemctl stop firewalld && systemctl disable firewalld
    
  7. 调整时间为网络时间, 时间同步

    ntpdate ntp.aliyun.comhwclock --systohc 
    

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

02. JDK安装配置

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

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

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

  2. 配置环境变量

    vim  /etc/profile.d/jdk.sh
    
  3. 检查是否安装成功

    java -version
    
  4. 配置环境变量

    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_*
    
  5. xsyn.sh同步分发

    集群同步分发文件

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

03. MySQL安装配置

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

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

  1. 检查是否曾经安装过mysql

    rpm -qa|grep mariadb
    
    # 若有,则卸载
    rpm -e --nodeps  mariadb-libs
    
  2. 检查mysql的以依赖环境 libaio和 net-tools 和 perl

     rpm -qa|grep libaio
     rpm -qa|grep net-tools
     rpm -qa|grep perl
     # 若没有,可以到自带的media光盘里找安装包进行安装 
    
  3. 授予文件夹读写可执行权限

    # 由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限
    chmod -R 777 /tmp
    
  4. 安装, 用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
    
  5. 检查是否安装成功

    mysqladmin --version
    
  6. mysql服务的初始化

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

    启动:  systemctl  start  mysqld
    关闭:  systemctl  stop  mysqld
    自启动: systemctl  enable  mysqld (mysqld.service)
    
  8. 首次登录

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

    在这里插入图片描述

  10. 开启允许远程访问

    grant all privileges on *.*  to root@'%'  identified by 'root12345';flush privileges;
    
  11. 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

  12. 修改字符集

    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报错

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

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

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

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

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

    1. 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

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

  2. 配置环境变量 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的运行模式:

  1. 本地模式: 非分布式, 无需任何配置, 直接简单的Java进程运行, 无需启动 HDFS&Yarn
  2. 伪分布式模式: HDFS&Yarn都在同一台机器的同一个Hadoop上
  3. 完全分布式模式: 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:

<configuration>
    
    <!--存储目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>

    <!--允许的主机,用户,和组-->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
        <!-- 运行hadoop fs -ls 命令显示本地目录问题解决-->
    <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop102:8020</value>
    </property> 
    
</configuration>

hdfs-site.xml:

<configuration>
    
    <!--负数,0代表不开启安全模式,大于等于1代表开启安全模式 -->
    <property>
        <name>dfs.safemode.threshold.pct</name>
        <value>0</value>
    </property>
    <!--secondnode的地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
    <!-- nn web 端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
    <!-- 指定HDFS副本的数量,默认为3 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

</configuration>

mapred.xml:

<configuration>
    
    <!-- 指明MR在哪里运行 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop102:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop102:19888</value>
    </property>
    <!-- 怕找不到classpath -->
    <property>
        <name>mapreduce.application.classpath</name>
        <value>
            ${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/*
        </value>
    </property>
    
</configuration>

yarn-site.xml:

<configuration>

    <!--单个Task容器的最小最大内存-->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
    </property>

    <!--NodeManager总内存-->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
    </property>

    <!--虚拟内存检测关掉, jdk8检测内存会和centos7检测内存冲突-->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

    <!-- 日志服务器 -->
    <property>
        <name>yarn.timeline-service.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.timeline-service.hostname</name>
        <value>${yarn.resourcemanager.hostname}</value>
    </property>
    <property>
        <name>yarn.timeline-service.http-cross-origin.enabled</name>
        <value>true</value>
    </property>

    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址(把每个机器的日志放到一块) -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://hadoop102:19888/jobhistory/logs</value>
    </property>
    <!-- 设置日志保留时间为 7 天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
    <!-- yarn的ip:port -->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop103:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>hadoop103:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>hadoop103:8031</value>
    </property>

    <!-- 怕找不到类路径 -->
    <property>
        <name>yarn.application.classpath</name>
        <value>/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/*</value>
    </property>
    <!-- 指定 ResourceManager 的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
    </property>
    <!-- 指定 MR 走 shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
        </value>
    </property>

</configuration>

安全用户:

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端访问:

  1. 查看NN http://hadoop102:9870/
  2. 查看2NN http://hadoop104:9868/status.html
  3. 查看MR的日志 http://hadoop102:19888/jobhistory
  4. 查看Yarn的监控日志(更全,不只有MR) http://hadoop103:8088/

05. ZooKeeper集群搭建

ZooKeeper [3.5.7] 部署有单机部署版和集群部署版, 默认连接端口号2181

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

  1. 单机版

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

    2. 配置环境变量

      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
      
    3. 创建ZooKeeper所需要的工作目录

        mkdir  /opt/module/zookeeper-3.5.7/zkData
      
    4. 复制模板生成配置文件

        cp  /opt/module/zookeeper-3.5.7/conf/zoo_sample.cfg  /opt/module/zookeeper-3.5.7/conf/zoo.cfg
      
    5. 编辑配置文件

       vim  /opt/module/zookeeper-3.5.7/conf/zoo.cfg
      
        #修改如下内容:
      dataDir=/opt/module/zookeeper-3.5.7/zkData
      
    6. 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

  2. 集群版

    在配置完单机版的基础上, 在每个机器的 /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递归删除节点

配置文件解读:

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

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

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

2initLimit =10LF初始通信时限

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

3syncLimit =5LF同步通信时限

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

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

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

5clientPort =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

  1. 直接本地连接

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

    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
      
    3. 解决日志jar包冲突, 在Hive的lib下

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

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

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

       <?xml version="1.0"?>
      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
      <configuration>
      <!-- jdbc 连接的 URL, 这里用的库,是上面创建的 放元数据的库metastore-->
      <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
      </property>
      
      <!-- jdbc 连接的 Driver-->
         <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      </property>
      
      <!-- jdbc 连接的 username-->
         <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
      </property>
      
      <!-- jdbc 连接的 password -->
         <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>root12345</value>
      </property>
      
      <!-- Hive 元数据存储版本的验证 -->
         <property>
      <name>hive.metastore.schema.verification</name>
      <value>false</value>
      </property>
      
      <!--元数据存储授权-->
         <property>
      <name>hive.metastore.event.db.notification.api.auth</name>
      <value>false</value>
      </property>
      
      <!--显示 当前库-->
         <property>
      <name>hive.cli.print.current.db</name>
      <value>true</value>
      </property>
      
      <!--显示 当前表头-->
         <property>
      <name>hive.cli.print.header</name>
      <value>true</value>
      </property>
      
      <!-- Hive 默认在 HDFS 的工作目录 -->
         <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/user/hive/warehouse</value>
      </property>
      
       <!-- <property>
                     <name>hive.exec.mode.local.auto</name>
              <value>true</value>
          </property> -->
      
      </configuration>
      
    7. 初始化 Hive 元数据库

       schematool -initSchema -dbType mysql - verbose
      
    8. 启动Hive

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

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

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

      <!-- 指定存储元数据服务所在的地址  -->
      <property>
      <name>hive.metastore.uris</name>
      <value>thrift://hadoop102:9083</value>
      </property>
      
    2. 启动metastore

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

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

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

      <!-- 指定 hiveserver2 连接的 host --><property><name>hive.server2.thrift.bind.host</name><value>hadoop102</value></property><!-- 指定 hiveserver2 连接的端口号 --><property><name>hive.server2.thrift.port</name><value>10000</value></property>
      
    2. 修改hiveserver2堆内存配置,

      在bin/hive-config.sh下面:

      export HADOOP_HEAPSIZE=${HADOOP_HEAPSIZE:-256}

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

    3. 先启动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

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

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

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

    1. 安装nc

      yum install -y nc
      
    2. 在flume目录下创建job并进入

    3. 新建编辑 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
      
    4. 在flume目录下启动flume

      bin/flume-ng  agent  -c  conf/  -n  a1 -f  job/flume-netcat-logger.conf  -Dflume.root.logger=INFO,console
      
    5. 新建一个终端 向44444端口发送数据, 观察flume控制台采集数据打印情况

      nc -lk  44444
      

08. Kafka集群搭建

Kafka [2.11-0.11.0.0] 集群搭建

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

依赖于ZooKeeper,先启动ZooKeeper

集群搭建

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

  2. 配置环境变量

    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
    
  3. 在/opt/module/kafka_2.11-0.11.0.0 目录下创建logs文件夹

  4. 修改配置文件 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文件保留的最长时间, 超时将被删除  
    
  5. 分发配置文件/etc/profile.d/kfk.sh并source, 分发kafka, 再修改broker.id使每个机器的broker.id都不一样

  6. 先启动ZooKeeper,

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

    停止Kafka kafka-server-stop.sh

  7. 测试

    创建一个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集群搭建

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

  2. 配置环境变量

    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
    
  3. 编辑conf下的 hbase-env.sh, 添加

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

    编辑conf下的hbase-site.xml

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

    编辑conf下的reginservers

    hadoop102
    hadoop103
    hadoop104
    
  4. 软连接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
    
  5. 分发配置文件/etc/profile.d/hbase.sh并source, 分发HBase

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

    ntpdate ntp.aliyun.com
    hwclock --systohc 
    
  7. 先启动ZooKeeper,

    再启动HBase start-hbase.sh

    停止HBase stop-hbase.sh

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

  8. 测试

    HBase的Shell操作

    hbase shelllistcreate 'student','info'put 'student','1001','info:sex','male'scan 'student'
    

Phoenix的使用

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

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

  1. 配置环境变量

    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
    
  2. 启动Phoenix

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

    在sql命令行里,

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

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

  1. 安装bsdtar3

    sudo yum install -y epel-releasesudo yum install -y bsdtar3
    
  2. 上传并解压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

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

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

  5. 配置环境变量

    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
    
  6. 启动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

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

  2. 配置环境变量

    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
    
  3. xsyn.sh同步分发

    集群同步分发文件

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

  4. 检查是否安装成功

    scala -version
    

11. Spark集群搭建

Spark [3.0.0] 集群搭建, 有Local, Standalone,和Yarn三种模式

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

  1. Local 模式:

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

    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
      
    3. 输入spark-shell即可进入交互界面

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

      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
      
  2. Standalone模式

    在Local模式的配置的基础上

    1. 在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
      
    2. xsyn.sh同步分发

      集群同步分发文件

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

    3. 启动 sbin/start-all.sh

      关闭 sbin/stop-all.sh

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

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

      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
      
  3. Yarn模式

    在完成Standalone的基础上

    1. vim spark-env.sh 添加

      YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
      
    2. xsyn.sh同步分发

      集群同步分发文件

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

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

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

      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 有单机, 集群两种模式

一: 单机模式

  1. 解压

  2. 安装依赖

    yum install -y centos-release-scl scl-utils-build gcc gcc-c++
    yum install -y devtoolset-8-toolchain
    
  3. 设置环境

    scl enable devtoolset-8 bash
    
  4. 进入redis根目录 make, 如果make失败, make distclean 是清除上一次的make

    make
    #make distclean
    
  5.  mv src bin
     mkdir /opt/module/redis-6.0.6/logs/
     touch /opt/module/redis-6.0.6/logs/redis.log
    
  6. 修改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
    
  7. 启动

bin/redis-server /xxx/redis.conf
  1. 进入客户端:
bin/redis-cli
bin/redis-cli -h hadoop101 -p 6379
bin/redis-cli -h hadoop101 -p 6379 -a root12345
  1. 关闭
bin/redis-cli shutdown

13. ClickHouse安装配置

ClickHouse 安装配置, 默认连接端口8123

一: 单机模式

  1. 修改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
    
  2. 安装依赖

    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
        
  3. 修改配置:

    vim /etc/clickhouse-server/config.xml
    #添加
    <listen_host>0.0.0.0</listen_host>
    
  4. 启动

    /etc/init.d/clickhouse-server start
    
  5. 进入客户端

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

  1. 关闭

    /etc/init.d/clickhouse-server stop
    

重要文件:

  1. 数据文件: /var/lib/clickhouse/
  2. 日志文件: /var/log/clickhouse-server/clickhouse-server.log

14. Flink集群搭建

Flink [1.1.13] 集群搭建, 有Standalone,Yarn 和 Kubernetes三种模式

一: Standalone模式

  1. 解压

  2. 修改配置文件

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

    bin/start-cluster.sh
    
  4. 访问Web-UI http://localhost:8081

  5. 提交任务

    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
    
  6. 关闭

    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都放在这个集群运行 (不推荐)

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

    bin/yarn-session.sh -jm 1024 -tm 1024 -d
    
  2. 访问http://localhost:8088/cluster 的Yarn界面中 任务列表的Tracking UI这一列即可进入到监控界面

  3. 提交任务

    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
    
  4. 关闭

    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 有单机, 集群两种模式

一: 单机模式

  1. 解压

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

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

    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
    
  4. 刷新加载配置

    sysctl -p
    
  5. 切换es用户, 启动

    su es
    bin/elasticsearch
    # -d代表后台启动
    bin/elasticsearch -d
    
  6. 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
  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 很抱歉,我是AI语言模型,无法提供完整的shell脚本安装jdkmysqlhadoopzookeeperhbasehivespark等大一统的解决方案。但是,您可以在网上搜索相关的安装教程和脚本,或者参考官方文档进行安装。同时,也建议您在安装前仔细阅读相关文档,确保安装过程顺利。 ### 回答2: shell脚本是一种非常强大的脚本语言,可以用来自动化执行一些操作,例如安装软件配置环境等。在Linux系统中,使用shell脚本可以非常方便地安装 JDKMySQLHadoopZookeeperHBaseHiveSpark大数据相关软件,实现大一统的管理。 首先,需要下载相应的软件包,然后将其解压缩至指定路径。在编写shell脚本时,可以将这些步骤用命令的形式实现,例如: ``` wget https://download.oracle.com/otn-pub/java/jdk/11.0.12+7/0d1cfde4252546c6931946de8db48ee2/jdk-11.0.12_linux-x64_bin.tar.gz --no-check-certificate tar -xf jdk-11.0.12_linux-x64_bin.tar.gz -C /usr/local/ echo "export JAVA_HOME=/usr/local/jdk-11.0.12" >> /etc/bashrc echo "export PATH=$JAVA_HOME/bin:$PATH" >> /etc/bashrc source /etc/bashrc ``` 这段脚本代码实现了下载JDK 11,解压至 /usr/local 目录,然后配置了 JAVA_HOME 和 PATH 环境变量。 类似地,可以使用类似的命令,来安装 MySQLHadoopZookeeperHBaseHiveSpark软件,并自动配置配置文件和环境变量等,从而实现快速自动化部署和管理。 需要注意的是,在使用shell脚本时需要特别注意安全性问题,防止脚本被篡改或者恶意攻击。最好在执行脚本之前,先对脚本做一些基本的检查和验证,例如比较下载软件的SHA256值是否与官方提供的一致,以及是否有使用未知的软件源等。 总之,shell脚本是一种非常强大和方便的工具,通过编写脚本可以快速管理和部署各种大数据软件,提高工作效率和精准度。 ### 回答3: 在Linux系统中,可以使用shell脚本来自动化安装配置多个开源软件,以便更方便地搭建大数据开发环境。下面我们来看如何通过shell脚本来一次性安装jdkmysqlhadoopzookeeperhbasehivespark。 1. 安装JDKLinux终端中输入以下命令即可安装JDK: ```bash sudo apt-get update sudo apt-get install default-jdk ``` 2. 安装MySQLLinux终端中输入以下命令即可安装MySql: ```bash sudo apt-get update sudo apt-get install mysql-server sudo mysql_secure_installation ``` 3. 安装HadoopLinux终端中输入以下命令即可安装Hadoop: ```bash wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz tar -xzvf hadoop-3.3.0.tar.gz sudo mv hadoop-3.3.0 /usr/local/hadoop ``` 4. 安装ZookeeperLinux终端中输入以下命令即可安装Zookeeper: ```bash wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz tar -xzvf apache-zookeeper-3.6.3-bin.tar.gz sudo mv apache-zookeeper-3.6.3-bin /usr/local/zookeeper ``` 5. 安装HbaseLinux终端中输入以下命令即可安装Hbase: ```bash wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.3.3/hbase-2.3.3-bin.tar.gz tar -xzvf hbase-2.3.3-bin.tar.gz sudo mv hbase-2.3.3 /usr/local/hbase ``` 6. 安装HiveLinux终端中输入以下命令即可安装Hive: ```bash wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz tar -xzvf apache-hive-3.1.2-bin.tar.gz sudo mv apache-hive-3.1.2-bin /usr/local/hive ``` 7. 安装SparkLinux终端中输入以下命令即可安装Spark: ```bash wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.0.1/spark-3.0.1-bin-hadoop3.2.tgz tar -xzvf spark-3.0.1-bin-hadoop3.2.tgz sudo mv spark-3.0.1-bin-hadoop3.2 /usr/local/spark ``` 写一个shell脚本用于自动安装这些软件: ```bash #!/bin/bash set -e # 安装OpenJDK sudo apt update sudo apt install -y openjdk-11-jdk # 安装MySQL sudo apt update sudo apt install -y mysql-server sudo mysql_secure_installation # 安装Hadoop wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz tar -xzvf hadoop-3.3.0.tar.gz sudo mv hadoop-3.3.0 /usr/local/hadoop # 安装Zookeeper wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz tar -xzvf apache-zookeeper-3.6.3-bin.tar.gz sudo mv apache-zookeeper-3.6.3-bin /usr/local/zookeeper # 安装Hbase wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.3.3/hbase-2.3.3-bin.tar.gz tar -xzvf hbase-2.3.3-bin.tar.gz sudo mv hbase-2.3.3 /usr/local/hbase # 安装Hive wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz tar -xzvf apache-hive-3.1.2-bin.tar.gz sudo mv apache-hive-3.1.2-bin /usr/local/hive # 安装Spark wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-3.0.1/spark-3.0.1-bin-hadoop3.2.tgz tar -xzvf spark-3.0.1-bin-hadoop3.2.tgz sudo mv spark-3.0.1-bin-hadoop3.2 /usr/local/spark ``` 以上就是通过shell脚本一次性安装jdkmysqlhadoopzookeeperhbasehivespark的方法。但是请注意,这只是一个简单的示例。在实际使用中,你需要根据自己的需求进行定制。同时,也应该注意版本的兼容性问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值