查看系统版本号
cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
查看系统磁盘挂载情况
df -h
/home 目录下有 873G 磁盘存储空间
故把程序应该安装在 /home 目录下
一、Java JDK 安装
上传jdk安装包 jdk-8u191-linux-x64.tar.gz 至 /home/bigdata 目录下
cd /home/bigdata
ls
sudo tar -zxvf jdk-8u191-linux-x64.tar.gz
创建软链接
ln -s jdk1.8.0_191 jdk
配置 java 环境变量
在 vi 编辑中, 使用 Shift + g 快速定位至最后一行
sudo vi /etc/profile
export JAVA_HOME=/home/bigdata/jdk
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
验证 java jdk 是否安装成功
java -version
二、Scala安装
上传scala安装包 scala-2.11.11.tgz 至 /home/bigdata 目录下
cd /home/bigdata
ls
sudo tar -zxvf scala-2.11.11.tgz
创建软链接
ln -s scala-2.11.11 scala
配置 scala 环境变量
在 vi 编辑中, 使用 Shift + g 快速定位至最后一行
sudo vi /etc/profile
export SCALA_HOME=/home/bigdata/scala
export PATH=$SCALA_HOME/bin:$PATH
source /etc/profile
验证 scala 是否安装成功
scala -version
测试scala环境
scala
1+1
:q 退出
三、ssh 免密登录设置
cd /home/nifi
pwd
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
sudo chmod 600 ~/.ssh/authorized_keys
验证 ssh 免密登录是否设置成功
ssh singlecluster
备注:配置 ssh 免密登录应注意
配置 ssh 免密登录时,应设置 /home/nifi 目录权限为 755,
/home/nifi/.ssh/authorized_keys 目录权限为 600,
否则可能 ssh 免密登录设置不成功!!
四、hadoop安装
4.1、上传hadoop安装包 hadoop-2.7.3.tar.gz 至 /home/bigdata 目录下
cd /home/bigdata
sudo tar -zxvf hadoop-2.7.3.tar.gz
创建软链接
ln -s hadoop-2.7.3 hadoop
ll
4.2、在/home/bigdata/hadoop目录下,建立tmp、hdfs/name、hdfs/data目录,执行如下命令
cd /home/bigdata/hadoop
sudo chmod -R 777 /home
mkdir -p tmp hdfs/name hdfs/data
4.3、配置 hadoop 环境变量
在 vi 编辑中, 使用 Shift + g 快速定位至最后一行
sudo vi /etc/profile
export HADOOP_HOME=/home/bigdata/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile
验证 hadoop 变量是否配置成功
hadoop version
4.4、Hadoop配置文件配置
进入/home/bigdata/hadoop/etc/hadoop目录,配置 hadoop-env.sh等。涉及的配置文件如下:
hadoop-env.sh
yarn-env.sh
mapred-env.sh
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
1)配置hadoop-env.sh
vi hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/bigdata/jdk
2)配置yarn-env.sh
vi yarn-env.sh
#export JAVA_HOME=/home/y/libexec/jdk1.7.0/
export JAVA_HOME=/home/bigdata/jdk
3)配置mapred-env.sh
vi mapred-env.sh
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/home/bigdata/jdk
4)配置core-site.xml
cd /home/hadoop/etc/hadoop
vi core-site.xml
添加如下配置:
5)配置hdfs-site.xml
vi hdfs-site.xml
添加如下配置
6)配置mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
添加如下配置:
mapred-site.xml文件全部内容
7)配置yarn-site.xml
vi yarn-site.xml
添加如下配置:
8)修改masters
sudo vi masters
singlecluster
9)修改slaves
sudo vi slaves
singlecluster
10)修改 /etc/hosts
sudo vi /etc/hosts
192.168.1.26 singlecluster
4.5、进入/home/bigdata/hadoop目录,格式化namenode节点
bin/hadoop namenode -format
4.6、进入/home/bigdata/hadoop目录下启动hadoop集群
cd /home/bigdata/hadoop
ls
sbin/start-all.sh
使用jps命令查看进程,检验hadoop集群是否已经启动。
jps
3393 NameNode
4481 Jps
3907 ResourceManager
3543 DataNode
4023 NodeManager
3737 SecondaryNameNode
进入/home/bigdata/hadoop目录下关闭hadoop集群
cd /home/bigdata/hadoop
sbin/stop-all.sh
4.7、打开浏览器查看 HDFS、YARN 的运行状态
查看 HDFS 运行状态
http://192.168.1.26:50070/
查看 YARN 运行状态
http://192.168.1.26:8088
备注:若页面输入对应的ip端口号地址查看不了网页,需验证服务器防火墙是否关闭,应保持防火墙关闭
关闭Centos7防火墙,不然端口无法访问
查看防火墙状态
systemctl status firewalld.service
临时关闭防火墙(下次重启防火墙再次开启)
systemctl stop firewalld.service
永久关闭防火墙
systemctl disable firewalld.service
4.8、Hadoop程序实例 wordcount程序运行
hadoop fs -mkdir -p /user/nifi/jobs/wordcount/input
hadoop fs -put /home/bigdata/hadoop/etc/hadoop/*.xml /user/nifi/jobs/wordcount/input
hadoop jar /home/bigdata/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /user/nifi/jobs/wordcount/input /user/nifi/jobs/wordcount/output
hadoop fs -ls -R /
hadoop fs -cat /user/nifi/jobs/wordcount/output/*
五、安装 kafka
5.1、上传kafka安装包 kafka_2.11-2.1.1.tgz 至 /home/bigdata 目录下
cd /home/bigdata
ls
sudo tar -zxvf kafka_2.11-2.1.1.tgz
创建软链接
ln -s kafka_2.11-2.1.1 kafka
5.2、修改 zookeeper、kafka 配置文件 zookeeper.properties,server.properties
cd /home/bigdata/kafka/config
sudo vi zookeeper.properties
dataDir=/home/bigdata/kafka/tmp/zookeeper
sudo vi server.properties
log.dirs=/home/bigdata/kafka/tmp/kafka-logs
5.3、启动zookeeper和kafka(这里,zookeeper集成于kafka中)
cd /home/bigdata/kafka
启动zookeeper(后台运行)
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
查看zookeeper是否运行
jps
6740 QuorumPeerMain
关闭zookeeper
bin/zookeeper-server-stop.sh config/zookeeper.properties &
启动kafka(后台运行)
nohup bin/kafka-server-start.sh config/server.properties &
或者
nohup bin/kafka-server-start.sh config/server.properties >/dev/null 2>&1 &
查看kafka是否运行
jps
7587 Kafka
关闭kafka
bin/kafka-server-stop.sh config/server.properties
5.4、使用kafka
1)、创建topic:
/home/bigdata/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic apache-flink-test
2)、查看topic:
/home/bigdata/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
3)、生产者
/home/bigdata/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic apache-flink-test
4)、消费者
/home/bigdata/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic apache-flink-test --from-beginning
该命令中含有过时方法 --zookeeper,该方法在老版本kafka0.90之前使用
/home/bigdata/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:9092 --topic apache-flink-test --from-beginning
备注:消费kafka时遇到的问题:kafka 创建消费者报错 consumer zookeeper is not a recognized option
在做kafka测试的时候,使用命令bin/kafka-console-consumer.sh --zookeeper 192.168.0.140:2181,192.168.0.141:2181 --topic test --from-beginning启动消费者,发现一只报错consumer zookeeper is not a recognized option,搜索了半天,一只没有解决,最后,换了一个低版本的kakfa,发现在启动的时候说使用 --zookeeper是一个过时的方法,此时,才知道原来在最新的版本中,这种启动方式已经被删除了,
最后附上0.90版本之后启动消费者的方法: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
CSDN参考链接:
kafka 创建消费者报错 consumer zookeeper is not a recognized option
https://blog.csdn.net/csdn_sunlighting/article/details/81516646
kafka中消费 kafka topic 后应该关闭消费进程
(1)使用消费命令时,用 Ctrl + C 关闭消费进程
(2)jps -m 查看kafka消费进程号,之后杀死对应的进程
jps -m
kill -9 进程号
5)、删除topic
/home/bigdata/kafka/bin/kafka-topics --delete --zookeeper 【zookeeper server:port】 --topic 【topic name】
[server.properties需要 设置delete.topic.enable=true]
六、安装 flink
6.1、上传flink安装包 flink-1.7.2-bin-hadoop27-scala_2.11.tgz 至 /home/bigdata 目录下
cd /home/bigdata
ls
sudo tar -zxvf flink-1.7.2-bin-hadoop27-scala_2.11.tgz
创建软链接
ln -s flink-1.7.2 flink
6.2、配置 flink 环境变量
在 vi 编辑中, 使用 Shift + g 快速定位至最后一行
sudo vi /etc/profile
export FLINK_HOME=/home/bigdata/flink
export PATH=$FLINK_HOME/bin:$PATH
source /etc/profile
验证 flink 变量是否配置成功
flink --version
或者
flink --v
6.3、启动flink
cd /home/bigdata/flink
./bin/start-cluster.sh
查看flink是否成功启动(新增两个进程)
jps
18469 TaskManagerRunner
18025 StandaloneSessionClusterEntrypoint
6.4、打开浏览器查看Flink任务运行状态
http://192.168.1.26:8081
6.5、flink伪分布式验证
使用 start-scala-shell.sh 来验证
${FLINK_HOME}/bin/start-scala-shell.sh是flink提供的交互式clinet,可以用于代码片段的测试,方便开发工作,
它有两种启动方式,一种是工作在本地,另一种是工作到集群。
本例中因为机器连接非常方便,就直接使用集群进行测试,在开发中,如果集群连接不是非常方便,可以连接到本地,在本地开发测试通过后,再连接到集群进行部署工作。
如果程序有依赖的jar包,则可以使用 -a
1)本地连接
${FLINK_HOME}/bin/start-scala-shell.sh local
2)集群连接
${FLINK_HOME}/bin/start-scala-shell.sh remote
3)带有依赖包的格式
${FLINK_HOME}/bin/start-scala-shell.sh [local|remote
4)查看帮助
${FLINK_HOME}/bin/start-scala-shell.sh --help
cd /home/bigdata/flink
bin/start-scala-shell.sh --help
Flink Scala Shell
Usage: start-scala-shell.sh [local|remote|yarn] [options]
Command: local [options]
Starts Flink scala shell with a local Flink cluster
-a, --addclasspath
Specifies additional jars to be used in Flink
Command: remote [options]
Starts Flink scala shell connecting to a remote cluster
-a, --addclasspath
Specifies additional jars to be used in Flink
Command: yarn [options]
Starts Flink scala shell connecting to a yarn cluster
-n, --container arg Number of YARN container to allocate (= Number of TaskManagers)
-jm, --jobManagerMemory arg
Memory for JobManager container
-nm, --name
-qu, --queue
-s, --slots
-tm, --taskManagerMemory
Memory per TaskManager container
-a, --addclasspath
Specifies additional jars to be used in Flink
--configDir
-h, --help Prints this usage text
5)使用集群模式去验证
cd /home/bigdata/flink
bin/start-scala-shell.sh remote 192.168.1.26 8081
批处理验证:
val text = benv.fromElements("To be, or not to be,--that is the question:--", "Whether 'tis nobler in the mind to suffer", "The slings and arrows of outrageous fortune", "Or to take arms against a sea of troubles,")
val counts = text.flatMap { _.toLowerCase.split("\\W+") }.map { (_, 1) }.groupBy(0).sum(1)
counts.print()
流处理验证:
val dataStream = senv.fromElements(1, 2, 3, 4)
dataStream.countWindowAll(2).sum(0).print()
senv.execute("My streaming program")
参考CSDN博客链接:
Flink部署-standalone模式 - kwame211的博客 - CSDN博客
https://blog.csdn.net/kwame211/article/details/89332391