准备

对所有主机或者虚拟机做好准备

  • 关闭防火墙

    1. systemctl stop firewalld.service
    2. systemctl disable firewalld.service
  • 静态IP

  • 建立好用户: useradd aiops
  • 配置用户密码:passwd aiops
  • 配置用户可以使用root权限: vim /etc/sudoers, 增加aiops ALL(ALL) NOPASSWORD:ALL
  • 配置aiops用户的免密登录
  • 配置hosts,我这里有5台机器,那么5台都要配置

    1. echo "10.15.50.20 node01" >> /etc/hosts
    2. echo "10.15.50.21 node02" >> /etc/hosts
    3. echo "10.15.50.22 node03" >> /etc/hosts
    4. echo "10.15.50.23 node04" >> /etc/hosts
    5. echo "10.15.50.24 node05" >> /etc/hosts
  • 为了跟hosts里的域名一致,还可以修改主机名称

因为要安装hadoop集群,建议安装xsync和xcall化简安装步骤,https://blog.csdn.net/u013634252/article/details/88070694,可以参照该文档。如果遇到端口有变化可以使用 -e ‘ssh -p 2222’

安装hadoop集群

下载&安装JDK

首先查看本机是否已经安装了java

  1. rpm -qa | grep java

如果发现版本比较低,低于1.7,可以先卸载,然后将jdk1.8的包上传到主机上,可以通过lrzsz包,安装

  1. sudo yum install lrzsz

然后通过rz命令就可以上传本地的jdk包到服务器上,上传完毕根据如下命令进行解压

  1. tar -zxvf jdk-8u144-linux-x64.tar.gz -C /home/aiops

配置java的环境变量

  1. sudo vim /etc/profile

然后增加如下内容:

  1. export JAVA_HOME=/home/aiops/jdk1.8.0_141
  2. export PATH=$PATH:$JAVA_HOME/bin

之后让配置生效

  1. source /etc/profile

然后通过xsync将jdk命令和profile文件同步到其他主机上

安装hadoop

首先通过rz将hadoop上传到服务器,然后解压hadoop

  1. tar -zxvf hadoop-2.7.2.tar.gz -C /home/aiops

然后修改/etc/profile文件增加相关环境配置

  1. ##HADOOP_HOME
  2. export HADOOP_HOME=/opt/module/hadoop-2.7.2
  3. export PATH=$PATH:$HADOOP_HOME/bin
  4. export PATH=$PATH:$HADOOP_HOME/sbin
  5. export CLASSPATH=.:$CLASSPATH:$($HADOOP_HOME/bin/hadoop classpath)

再通过source /etc/profile生效,后面就是同步hadoop目录

hadoop集群配置

对hadoop进行集群的规划

node01 node02 node03 node04 node05
HDFS
NameNode
DataNode

DataNode
SecondaryNameNode
DataNode
DataNode DataNode
YARN
NodeManager
ResourceManager
NodeManager

NodeManager
NodeManager NodeManager

core-site.xml

  1. <!-- 指定HDFS中NameNode的地址 -->
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://node01:9000</value>
  5. </property>
  6. <!-- 指定Hadoop运行时产生文件的存储目录 -->
  7. <property>
  8. <name>hadoop.tmp.dir</name>
  9. <value>/data/hadoop/tmp</value>
  10. </property>

hadoop-env.sh

增加java环境变量配置

  1. [atguigu@hadoop102 hadoop]$ vi hadoop-env.sh
  2. export JAVA_HOME=/home/aiops/jdk1.8.0_141

hdfs-site.xml

  1. <property>
  2. <name>dfs.replication</name>
  3. <value>3</value>
  4. </property>
  5. <!-- 指定Hadoop辅助名称节点主机配置 -->
  6. <property>
  7. <name>dfs.namenode.secondary.http-address</name>
  8. <value>node03:50090</value>
  9. </property>

yarn-env.sh

  1. export JAVA_HOME=/home/aiops/jdk1.8.0_141

mapred-site.xml

  1. <!-- 指定MR运行在Yarn上 -->
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>

slaves

  1. node01
  2. node02
  3. node03
  4. node04
  5. node05

集群单点启动&集群启动

建立临时目录

  1. mkdir -p /data/hadoop/hdfs/name
  1. hadoop namenode -format
  2. hadoop-daemon.sh start namenode
  3. hadoop-daemon.sh start datanode
  4. jps

通过上述方法,主要是用来尝试配置,验证用。下面是启动集群的方法,一定要配置slaves

  1. sbin/start-dfs.sh
  2. sbin/start-yarn.sh

PS: ResourceManager需要在启动的机器上,启动start-yarn.sh才可以启动

PS:

安装flink

下载flink的包,然后直接解压,还需要https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/hadoop.html#using-flink-shaded-hadoop-2-uber-jar-for-resolving-dependency-conflicts-legacy,去下载flink-shaded-hadoop-2-uber,并放到lib下

配置hadoop的yarn-site.xml

  1. <property>
  2. <name>yarn.nodemanager.vmem-check-enabled</name>
  3. <value>false</value>
  4. </property>

启动session-cluster模式

  1. bin/yarn-session.sh -n 3 -s 3 -nm flink-session -d -q
  2. yarn logs -applicationId application_1598961253724_0004
  3. bin/flink run -c org.apache.flink.streaming.examples.wordcount.WordCount -yid application_1598961253724_0004 examples/streaming/WordCount.jar
  4. yarn application -kill application_1598961253724_0001

flink-session常用参数

  1. -n(--container):TaskManager的数量。
  2. -s(--slots): 每个TaskManagerslot数量,默认一个slot一个core,默认每个taskmanagerslot的个数为1,有时可以多一些taskmanager,做冗余。
  3. -jmJobManager的内存(单位MB)。
  4. -tm:每个taskmanager的内存(单位MB)。
  5. -nmyarn appName(现在yarnui上的名字)。
  6. -d:后台执行。
  7. -q,--query:显示yarn集群可用资源(内存、core

使用Per Job Cluster 模式配置

  1. bin/flink run -m yarn-cluster -yn 1 -ys 2 -ynm flink-job -c org.apache.flink.streaming.examples.wordcount.WordCount examples/streaming/WordCount.jar

application模式

  1. ./bin/flink run-application -t yarn-application ./flink-fraud-assure-0.1.jar