前言
随着大环境的影响和制造业的落寞,我赶上了裁员潮...... 这就意味着,我又要从熟悉的环境去到陌生的环境,一切从零开始!有幸在老东家接触了数位转型,工业4.0,也知道了很多大数据工具,例如apache nifi, apache kafka, Elasticsearch,Apache Flink等等。每天都在使用着这些工具,却从来没想过自己要去搭建一个大数据平台,这不机会来了么,现任也想搞这些玩意儿,于是我就榜上了度娘,各种搜索,从win10系统到Linux CentOS系统,我统统尝试了一番,结果还是喜人的,至少现在nifi每天都在耕耘!
在CentOS7环境下集群部署
准备工作:
- VM上分配3个IP,分别为:168.102.2.201;168.102.2.202;168.102.2.203,用来模拟三台服务器(条件艰苦,没有服务器)
- 版本选择
- JDK:1.8
- Zookeeper:3.6.4
- Scala:2.11.12
- Kafka:3.5.1
- Nifi:1.25.0
JDK1.8安装
S1:官网下载JDK1.8,并将文档放在/usr/local/java目录下
S2:解压安装包
命令:tar -xvf jdk-8u411-linux-x64.tar.gz
S3: 配置环境变量
进入编辑状态命令:vim /etc/profile,其中
/etc/profile是一个全局配置文件, 所有用户登录都会使用该文件构建用户环境。
export JAVA_HOME=/usr/local/java/jdk1.8.0_411
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存并退出vim编辑器(:wq)
使得修改内容生效命令:source /etc/profile
S4:验证JDK1.8是否安装成功
java -version
echo $JAVA_HOME
javac
Scala2.11.12安装
S1:创建目录
mkdir -p /usr/local/scala cd /usr/local/scala
S2:下载scala并解压
下载网址:www.scala-lang.org/download/
解压命令:tar -zvxf scala-2.11.12.tgz
S3:配置环境变量
export SCALA_HOME=/usr/local/scala/scala-2.11.12
export PATH=$SCALA_HOME/bin:$PATH
使得修改内容生效:source /etc/profile
S4:查看是否安装成功 scala
Zookeeper3.6.4安装
S1:创建目录
mkdir -p /usr/local/zookeeper
cd /usr/local/zookeeper
S2:下载并安装
官网:archive.apache.org/dist/zookee…
解压命令:tar -zxvf apache-zookeeper-3.6.4-bin.tar.gz
S3:配置zookeeper参数
1.配置zoo.cfg
复制一份新的配置文件zoo.cfg, 命令:cp zoo_sample.cfg zoo.cfg
2.修改zoo.cfg配置项
dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log
server.1=168.102.2.201:2888:3888
server.2=168.102.2.202:2888:3888
server.3=168.102.2.203:2888:3888
3.在/tmp/zookeeper目录下新建data文件夹和log文件夹, 然后在data文件夹下创建myid文件,并写入数字1
S4:配置环境变量
export ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.6.4-bin
export PATH=$ZOOKEEPER_HOME/bin:$PATH
S5:启动 命令:zkServer.sh start
其它两台同上,需要注意的就是myid文件的内容要修改!
Kafka3.5.1安装
S1:创建目录
mkdir -p /usr/local/kafka
cd /usr/local/kafka
S2:下载并安装
解压命令:tar -zxvf kafka_2.12-3.5.1.tgz
S3:修改kafka 服务的配置
broker.id=1
listeners=PLAINTEXT://168.102.2.201:9092
log.dirs=/usr/local/kafka/kafka_2.12-3.5.1/kafka-logs
zookeeper.connect=168.102.2.201:2181,168.102.2.202:2181,168.102.2.203:2181
S4:修改zookeeper的配置
dataDir=/usr/local/kafka/kafka_2.12-3.5.1/zookeeper-data
S5:启动
cd /usr/local/kafka/kafka_2.12-3.5.1
启动zookeeper
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动kafka
./bin/kafka-server-start.sh -daemon config/server.properties
S6:查看是否启动成功
jps -l
S6:创建kafka topic
命令:kafka-topics.sh --create --bootstrap-server 168.102.2.201:9092 --replication-factor 1 --partitions 1 --topic test
S7:生产消息
命令:kafka-console-producer.sh --broker-list 168.102.2.201:9092 --topic test
S8:消费消息
命令:kafka-console-consumer.sh --bootstrap-server 168.102.2.201:9092 --topic test --from-beginning
获取所有topic命令:kafka-topics.sh --list --bootstrap-server 168.102.2.201:9092
nifi1.25.0安装
这里使用的是外部zookeeper
S1:创建目录
mkdir -p /usr/local/nifi
cd /usr/local/nifi
S2:下载并安装
解压命令:unzip nifi-1.25.0-bin.zip
S3:修改conf/nifi.properties文件
#####指定此NiFi实例是否应运行嵌入式ZooKeeper服务器,默认是false (连接外部zookeeper服务器)
nifi.state.management.embedded.zookeeper.start=false
nifi.remote.input.host=168.102.2.201
nifi.remote.input.secure=false
nifi.remote.input.socket.port=9998
##### HTTP主机。默认为空白
nifi.web.http.host=168.102.2.201
##### HTTP端口。默认值为8080
nifi.web.http.port=8000
##### 如果实例是群集中的节点,请将此设置为true。默认值为false
nifi.cluster.is.node=true
nifi.cluster.node.address=168.102.2.201
nifi.cluster.node.protocol.port=9999
nifi.cluster.flow.election.max.wait.time=20 sec
nifi.cluster.flow.election.max.candidates=1
##### 连接外部的时候使用外部ZooKeeper连接地址
nifi.zookeeper.connect.string=168.102.2.201:2181,168.102.2.202:2181,168.102.2.203:2181
其它两台的web IP分别为:168.102.2.202;168.102.2.203,端口可以用同一个
S4:配置环境变量
略
S5:启动 nifi.sh start
Nifi用例分享
资料同步