20190721_flink安装

查看系统版本号

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

添加如下配置:

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://singlecluster:9000</value>

<description>HDFS的URI,文件系统://namenode标识:端口号</description>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/bigdata/hadoop/tmp</value>

<description>namenode上本地的hadoop临时文件夹</description>

</property>

</configuration>

5)配置hdfs-site.xml

vi hdfs-site.xml

添加如下配置

<configuration>

<property>

<name>dfs.name.dir</name>

<value>/home/bigdata/hadoop/hdfs/name</value>

<description>namenode上存储hdfs名字空间元数据</description>

</property>

<property>

<name>dfs.data.dir</name>

<value>/home/bigdata/hadoop/hdfs/data</value>

<description>datanode上数据块的物理存储位置</description>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

<description>副本个数,配置默认是3,应小于datanode机器数量</description>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

</configuration>

6)配置mapred-site.xml

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

添加如下配置:

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

<!-- 开启uber模式(针对小作业的优化) -->

<property>

<name>mapreduce.job.ubertask.enable</name>

<value>true</value>

</property>

<!-- 启动uber模式的最大map数 -->

<property>

<name>mapreduce.job.ubertask.maxmaps</name>

<value>9</value>

</property>

<!-- 启动uber模式的最大reduce数 -->

<property>

<name>mapreduce.job.ubertask.maxreduces</name>

<value>1</value>

</property>

</configuration>

mapred-site.xml文件全部内容

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!--

  Licensed under the Apache License, Version 2.0 (the "License");

  you may not use this file except in compliance with the License.

  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software

  distributed under the License is distributed on an "AS IS" BASIS,

  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  See the License for the specific language governing permissions and

  limitations under the License. See accompanying LICENSE file.

-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

</property>

</configuration>

7)配置yarn-site.xml

vi yarn-site.xml

添加如下配置:

<configuration>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

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 <path/to/jar.jar> 或 --addclasspath <path/to/jar.jar>参数来添加依赖。

1)本地连接

${FLINK_HOME}/bin/start-scala-shell.sh local

2)集群连接

${FLINK_HOME}/bin/start-scala-shell.sh remote <hostname> <portnumber>

3)带有依赖包的格式

${FLINK_HOME}/bin/start-scala-shell.sh [local|remote<host><port>] --addclasspath<path/to/jar.jar>

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] <args>...

Command: local [options]

Starts Flink scala shell with a local Flink cluster

  -a, --addclasspath <path/to/jar>

                           Specifies additional jars to be used in Flink

Command: remote [options] <host> <port>

Starts Flink scala shell connecting to a remote cluster

  <host>                   Remote host name as string

  <port>                   Remote port as integer

  -a, --addclasspath <path/to/jar>

                           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 <value>      Set a custom name for the application on YARN

  -qu, --queue <arg>       Specifies YARN queue

  -s, --slots <arg>        Number of slots per TaskManager

  -tm, --taskManagerMemory <arg>

                           Memory per TaskManager container

  -a, --addclasspath <path/to/jar>

                           Specifies additional jars to be used in Flink

  --configDir <value>      The configuration directory.

  -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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容