赞
踩
本篇⽂章所有组件安装包均在/opt/software⽬录下
安装⽬录在/opt/module
由于是容器环境,不能修改静态主机名,可以使用hostname [主机名]方式修改,使用bash命令初始化主机名
列如:
[root@bigdata1 ~]# hostname master
[root@bigdata1 ~]# bash
[root@master ~]#
[root@master /]# vi /etc/hosts
在文件底部添加ip映射,ip为集群主机的真实ip,可使用 ip addr 命令查看
192.168.XXX.XXX master
192.168.XXX.XXX slave1
192.168.XXX.XXX slave2
#XXX为三台主机的ip
分别在slave1、slave2上也进行添加
[root@master /]# ssh-keygen -t rsa
#一直回车
#将密钥分发至所有主机
[root@master /]# ssh-copy-id master
[root@master /]# ssh-copy-id slave1
[root@master /]# ssh-copy-id slave2
分别在slave1、slave2上也执行上述命令
[root@master /]# ssh slave1
Last login: Tue Mar 28 20:28:14 2023 from 192.168.10.1
[root@slave1 ~]#
进入/opt/software目录下
[root@master software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
[root@master software]# tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
解压完成后,进入/opt/module目录下,修改目录名(便于配置路径)
[root@master module]# mv jdk1.8.0_212/ jdk
[root@master module]# mv hadoop-3.1.3/ hadoop
进入/etc/profile文件
[root@master module]# vi /etc/profile
在文件底部添加如下
export JAVA_HOME=/opt/module/jdk
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#hadoop3.0必须配置
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
保存后,需要执行source命令
[root@master module]# source /etc/profile
测试环境变量是否配置成功
[root@master module]# java -version
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
[root@master module]# hadoop version
Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-common-3.1.3.jar
[root@master module]#
进入/opt/module/hadoop/etc/hadoop目录
修改hadoop-env.sh
export JAVA_HOME=/opt/module/jdk
修改core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/tmp</value>
</property>
</configuration>
修改hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
</configuration>
修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
修改workers文件
master
slave1
slave2
#分发jdk
[root@master /]# scp -r /opt/module/jdk/ slave1:/opt/module/
[root@master /]# scp -r /opt/module/jdk/ slave2:/opt/module/
#分发hadoop
[root@master /]# scp -r /opt/module/hadoop/ slave1:/opt/module/
[root@master /]# scp -r /opt/module/hadoop/ slave2:/opt/module/
#分发环境变量
[root@master /]# scp /etc/profile slave1:/etc/profile
[root@master /]# scp /etc/profile slave2:/etc/profile
#注意:环境变量分发完后,需要在对应主机上执行 source /etc/profile 命令,否则环境变量不生效。
[root@master /]# hdfs namenode -format
查看格式化最后结果,出现 successfully formatted 等字符,即为成功。
第一种方式:单独启动hdfs和yarn
[root@master /]# start-dfs.sh
[root@master /]# start-yarn.sh
第二种方式:全部启动
[root@master /]# start-all.sh
使用jps命令查看进程
[root@master /]# jps
分别在三台主机上,以下是所有的进程分布:
master:NameNode、DataNode、ResourceManager、NodeManager
slave1:SecondaryNamenode、DataNode、NodeManager
slave2:DataNode、NodeManager
注意:如果hdfs格式化成功后,因错误问题要再次格式化hdfs系统,需要把集群所有主机hadoop目录下的tmp和logs目录删除才能再次格式化。
进入/opt/software目录
[root@master software]# tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/
解压完成后,进入/opt/module目录下,修改目录名(便于配置路径)
[root@master module]# mv apache-zookeeper-3.5.7-bin/ zookeeper
进入/etc/profile文件,在文件中增加ZK_HOME环境变量
export JAVA_HOME=/opt/module/jdk
export HADOOP_HOME=/opt/module/hadoop
export ZK_HOME=/opt/module/zookeeper
#在PATH变量后边追加ZK_HOME
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin
保存后,需要执行source命令
[root@master module]# source /etc/profile
进入/opt/module/zookeeper/conf目录
复制zoo_sample.cfg文件 并命名为 zoo.cfg
[root@master conf]# cp zoo_sample.cfg zoo.cfg
修改zoo.cfg文件
#修改data存储目录
dataDir=/opt/data/zookeeper/zkdata
#在文件底部添加
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
由于/opt/data/zookeeper/zkdata目录并没有创建,所以要新建此目录
[root@master /]# mkdir -p /opt/data/zookeeper/zkdata
进入/opt/data/zookeeper/zkdata目录,执行以下命令
[root@master zkdata]# echo 1 >> myid
#将zookeeper分发至集群
[root@master /]# scp -r /opt/module/zookeeper/ slave1:/opt/module/
[root@master /]# scp -r /opt/module/zookeeper/ slave2:/opt/module/
#将环境变量分发至集群
[root@master /]# scp /etc/profile slave1:/etc/profile
[root@master /]# scp /etc/profile slave2:/etc/profile
#注意:环境变量分发完后,需要在对应主机上执行 source /etc/profile 命令,否则环境变量不生效。
#将myid分发至集群
[root@master /]# scp -r /opt/data/ slave1:/opt/
[root@master /]# scp -r /opt/data/ slave2:/opt/
分别在slave1、slave2修改myid的内容为2和3
[root@master /]# zkServer.sh start
#分别在三台主机上执行上述命令
#可以在三台主机上执行以下命令查看状态
[root@master /]# zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
进入/opt/software目录
[root@master software]# tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/module/
解压完成后,进入/opt/module目录下,修改目录名(便于配置路径)
进入/etc/profile文件,在文件中增加FLUME_HOME环境变量
export JAVA_HOME=/opt/module/jdk
export HADOOP_HOME=/opt/module/hadoop
export ZK_HOME=/opt/module/zookeeper
export FLUME_HOME=/opt/module/flume
#在PATH变量后边追加FLUME_HOME
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin:$FLUME_HOME/bin
保存后,需要执行source命令
[root@master module]# source /etc/profile
进入/opt/module/flume/conf目录
复制flume-env.sh.template并改名为flume-env.sh
修改flume-env.sh文件,修改如下:
export JAVA_HOME=/opt/module/jdk
进入/opt/module/flume/lib目录下,复制hadoop/share/hadoop/common/lib目录下的guava到此目录。
[root@master lib]# cp /opt/module/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar ./
#将原本的guava删除
[root@master lib]# rm -rf guava-11.0.2.jar
用flume收集hadoop的NameNode、DataNode日志
在/opt/module/flume/conf目录下新建hdfs-log.conf文件,编写如下内容:
a1.sources=r1 a1.sinks=k1 a1.channels=c1 a1.sources.r1.type=TAILDIR a1.sources.r1.filegroups=f1 f2 a1.sources.r1.filegroups.f1=/opt/module/hadoop/logs/hadoop-root-namenode.*log.* a1.sources.r1.filegroups.f2=/opt/module/hadoop/logs/hadoop-root-datanode.*log.* a1.sources.r1.positionFile=/opt/module/flume/data/taildir_position.json a1.sources.r1.headers.f1.headerKey1=namenode a1.sources.r1.headers.f2.headerKey1=datanode a1.sources.r1.fileHeader=true a1.sinks.k1.type=hdfs a1.sinks.k1.hdfs.path=hdfs://master:9000/tmp/flume/%Y%m%d/%H a1.sinks.k1.hdfs.round=true a1.sinks.k1.hdfs.roundValue=10 a1.sinks.k1.hdfs.roundUnit=minute a1.sinks.k1.hdfs.fileType=DataStream a1.sinks.k1.hdfs.rollInterval=30 a1.sinks.k1.hdfs.batchSize=0 a1.sinks.k1.hdfs.rollSize=0 a1.sinks.k1.hdfs.rollCount=0 a1.sinks.k1.hdfs.useLocalTimeStamp=true a1.channels.c1.type=memory a1.channels.c1.capacity=5000 a1.channels.c1.transactionCapacity=2000 a1.channels.c1.keep-alive=10 a1.sources.r1.channels=c1 a1.sinks.k1.channel=c1
进入到/opt/module/flume/目录下
启动命令为:flume-ng agent -c conf/ -f conf/hdfs-log.conf -n a1 -Dflume.root.logger=INFO,console
复制master的会话窗口,使用 echo命令向NameNode或DataNode写入信息,查看Flume是否正确收集。
进入/opt/software目录,将hive解压到/opt/module目录下,并改名为hive
在/etc/profile文件添加
export HIVE_HOME=/opt/module/hive
#在PATH变量末尾追加
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin:$FLUME_HOME/bin:$HIVE_HOME/bin
别忘记执行source命令
进入/opt/module/hive/conf目录
修改hive-env.sh
HADOOP_HOME=/opt/module/hadoop
新建hive-site.xml文件,并添加内容如下
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> </configuration>
进入/opt/module/hive/lib/目录
将hadoop里的guava包替换到此处
[root@master lib]# cp /opt/module/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar ./
#将原本的guava删除
[root@master lib]# rm -rf guava-19.0.jar
将mysql的驱动包复制到此处
[root@master lib]# cp /opt/software/mysql-connector-java-5.1.37.jar ./
执行命令
[root@master lib]# schematool -dbType mysql -initSchema
结果最后一行为:schemaTool completed
使用hive命令,即可进入命令行。
进入/opt/software目录,将kafka解压到/opt/module目录下,并改名为kafka
在/etc/profile文件添加
export KAFKA_HOME=/opt/module/kafka
#在PATH变量末尾追加
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin:$FLUME_HOME/bin:$HIVE_HOME/bin:$KAFKA_HOME/bin
别忘记执行source命令
进入/opt/module/kafka/config目录
修改server.properties文件
broker.id=0
log.dirs=/opt/data/kafka/
zookeeper.connect=master:2181,slave1:2181,slave2:2181
delete.topic.enable=true
host.name=master
#将kafka分发至集群
[root@master /]# scp -r /opt/module/kafka/ slave1:/opt/module/
[root@master /]# scp -r /opt/module/kafka/ slave2:/opt/module/
#将环境变量分发至集群
[root@master /]# scp /etc/profile slave1:/etc/profile
[root@master /]# scp /etc/profile slave2:/etc/profile
#注意:环境变量分发完后,需要在对应主机上执行 source /etc/profile 命令,否则环境变量不生效。
注意:分发完后,分别修改对应主机server.properties文件,修改如下
slave1:
broker.id=1
log.dirs=/opt/data/kafka/
zookeeper.connect=master:2181,slave1:2181,slave2:2181
delete.topic.enable=true
host.name=slave1
slave2:
broker.id=2
log.dirs=/opt/data/kafka/
zookeeper.connect=master:2181,slave1:2181,slave2:2181
delete.topic.enable=true
host.name=slave2
分别在三台主机执行:
[root@master kafka]# kafka-server-start.sh -daemon config/server.properties
注意:server.properties文件所在路径
使用jps命令查看进程
进入/opt/software目录,将hbase解压到/opt/module目录下,并改名为hbase
在/etc/profile文件添加
export HBASE_HOME=/opt/module/hbase
#在PATH变量末尾追加
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin:$FLUME_HOME/bin:$HIVE_HOME/bin:$KAFKA_HOME/bin:$HBASE_HOME/bin
别忘记执行source命令
进入/opt/module/hbase/conf/目录
修改hbase-env.sh文件
export JAVA_HOME=/opt/module/jdk
HBASE_MANAGES_ZK=false
修改hbase-site.xml文件
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master:2181,slave1:2181,slave2:2181</value> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>
修改regionservers文件
slave1
slave2
新增backup-masters文件(防止单点故障而备用的主节点),添加如下内容
slave1
#将zookeeper分发至集群
[root@master /]# scp -r /opt/module/hbase/ slave1:/opt/module/
[root@master /]# scp -r /opt/module/hbase/ slave2:/opt/module/
#将环境变量分发至集群
[root@master /]# scp /etc/profile slave1:/etc/profile
[root@master /]# scp /etc/profile slave2:/etc/profile
#注意:环境变量分发完后,需要在对应主机上执行 source /etc/profile 命令,否则环境变量不生效。
在master主机运行以下命令:
[root@master /]# start-hbase.sh
使用jps命令查看进程
进程分布:
master:HMaster
slave1:HMaster、HRegionServer
slave2:HRegionServer
进入/opt/software目录,将spark解压到/opt/module目录下,并改名为spark
在/etc/profile文件添加
export SPARK_HOME=/opt/module/spark
#在PATH变量末尾追加
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin:$FLUME_HOME/bin:$HIVE_HOME/bin:$KAFKA_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin
别忘记执行source命令
进入/opt/module/spark/conf/目录
修改spark-env.sh文件(先复制spark-env.sh.template再改名)
#添加java环境变量
export JAVA_HOME=/opt/module/jdk
#指定Master的IP
export SPARK_MASTER_HOST=master
#指定Master的端口
export SPARK_MASTER_PORT=7077
修改workers文件(先复制workers.template再改名)
slave1
slave2
#将zookeeper分发至集群
[root@master /]# scp -r /opt/module/spark/ slave1:/opt/module/
[root@master /]# scp -r /opt/module/spark/ slave2:/opt/module/
#将环境变量分发至集群
[root@master /]# scp /etc/profile slave1:/etc/profile
[root@master /]# scp /etc/profile slave2:/etc/profile
#注意:环境变量分发完后,需要在对应主机上执行 source /etc/profile 命令,否则环境变量不生效。
启动命令为:start-all.sh
因为命令与hadoop的命令重复,所以只能在/opt/module/spark/sbin/目录下使用:
[root@master bin]# ./start-all.sh
进程分布:
master:Master
slave1:Worker
slave2:Worker
进入/opt/module/hadoop/etc/hadoop/目录下:
修改yarn-site.xml文件:
<!--在configuration标签里追加如下内容-->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
修改完后需要分发集群,
再次修改spark-env.sh文件
#添加java环境变量
export JAVA_HOME=/opt/module/jdk
#将这两个注释掉
#export SPARK_MASTER_HOST=master
#export SPARK_MASTER_PORT=7077
#添加yarn的配置文件路径
YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop
修改后分发集群
注意:重启yarn或hadoop集群 ,yarn模式不需要启动spark
测试命令:
spark-submit --master yarn --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars/spark-examples_2.12-3.1.1.jar
(jar包版本可自行切换)
进入/opt/software目录,将flink解压到/opt/module目录下,并改名为flink
在/etc/profile文件添加
export FLINK_HOME=/opt/module/flink
#在PATH变量末尾追加
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZK_HOME/bin:$FLUME_HOME/bin:$HIVE_HOME/bin:$KAFKA_HOME/bin:$HBASE_HOME/bin:$SPARK_HOME/bin:$FLINK_HOME/bin
别忘记执行source命令
进入/opt/module/flink/conf/目录
修改flink-conf.yaml文件
jobmanager.rpc.address: master
#在末尾添加(冒号:后面含有空格)
classloader.check-leaked-classloader: false
修改workers文件
slave1
slave2
#将flink分发至集群
[root@master /]# scp -r /opt/module/flink/ slave1:/opt/module/
[root@master /]# scp -r /opt/module/flink/ slave2:/opt/module/
#将环境变量分发至集群
[root@master /]# scp /etc/profile slave1:/etc/profile
[root@master /]# scp /etc/profile slave2:/etc/profile
#注意:环境变量分发完后,需要在对应主机上执行 source /etc/profile 命令,否则环境变量不生效。
在master主机执行命令:start-cluster.sh
进程分布:
master:standalonesession…
slave1:taskManagerRunner
slave2:taskManagerRunner
在/etc/profile文件添加如下内容:
#注意要在PATH变量下边添加
export HADOOP_CLASSPATH=`hadoop classpath`
export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop
重启hadoop后,测试:
[root@master /]# flink run -m yarn-cluster $FLINK_HOME/examples/batch/WordCount.jar
首先在/opt/module/目录下创建一个名为clickhouse文件夹
进入/opt/software/目录,分别解压:
[root@master software]# tar -zxvf clickhouse-common-static-21.9.4.35.tgz -C /opt/module/clickhouse
[root@master software]# tar -zxvf clickhouse-common-static-dbg-21.9.4.35.tgz -C /opt/module/clickhouse
[root@master software]# tar -zxvf clickhouse-server-21.9.4.35.tgz -C /opt/module/clickhouse
[root@master software]# tar -zxfv clickhouse-client-21.9.4.35.tgz -C /opt/module/clickhouse
分别执行:
#执行顺序固定
[root@master clickhouse]# ./clickhouse-common-static-21.9.4.35/install/doinst.sh
[root@master clickhouse]# ./clickhouse-common-static-dbg-21.9.4.35/install/doinst.sh
#执行此条命令会设置客户端连接密码
[root@master clickhouse]# ./clickhouse-server-21.9.4.35/install/doinst.sh
[root@master clickhouse]# ./clickhouse-client-21.9.4.35/install/doinst.sh
进入/etc/clickhouse-server/目录
修改config.xml文件
<!--将clickhouse的端口改为9001-->
<tcp_port>9001</tcp_port>
<!--修改监听地址-->
<listen_host>0.0.0.0</listen_host>
再进入当前目录config.d/目录
修改listen.xml文件
<!--修改监听端口-->
<listen_host>0.0.0.0</listen_host>
启动命令为:systemctl start clickhouse-server
查看状态:systemctl status clickhouse-server
状态为:active (running) 为启动正常
连接命令为:clickhouse-client --password [自己设置的密码] --port 9001
编写日期:2023-04-03
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。