准备
对所有主机或者虚拟机做好准备
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
静态IP
- 建立好用户: useradd aiops
- 配置用户密码:passwd aiops
- 配置用户可以使用root权限: vim /etc/sudoers, 增加aiops ALL(ALL) NOPASSWORD:ALL
- 配置aiops用户的免密登录
配置hosts,我这里有5台机器,那么5台都要配置
echo "10.15.50.20 node01" >> /etc/hosts
echo "10.15.50.21 node02" >> /etc/hosts
echo "10.15.50.22 node03" >> /etc/hosts
echo "10.15.50.23 node04" >> /etc/hosts
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
rpm -qa | grep java
如果发现版本比较低,低于1.7,可以先卸载,然后将jdk1.8的包上传到主机上,可以通过lrzsz包,安装
sudo yum install lrzsz
然后通过rz命令就可以上传本地的jdk包到服务器上,上传完毕根据如下命令进行解压
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /home/aiops
配置java的环境变量
sudo vim /etc/profile
然后增加如下内容:
export JAVA_HOME=/home/aiops/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
之后让配置生效
source /etc/profile
然后通过xsync将jdk命令和profile文件同步到其他主机上
安装hadoop
首先通过rz将hadoop上传到服务器,然后解压hadoop
tar -zxvf hadoop-2.7.2.tar.gz -C /home/aiops
然后修改/etc/profile文件增加相关环境配置
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
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
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
hadoop-env.sh
增加java环境变量配置
[atguigu@hadoop102 hadoop]$ vi hadoop-env.sh
export JAVA_HOME=/home/aiops/jdk1.8.0_141
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node03:50090</value>
</property>
yarn-env.sh
export JAVA_HOME=/home/aiops/jdk1.8.0_141
mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
slaves
node01
node02
node03
node04
node05
集群单点启动&集群启动
建立临时目录
mkdir -p /data/hadoop/hdfs/name
hadoop namenode -format
hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
jps
通过上述方法,主要是用来尝试配置,验证用。下面是启动集群的方法,一定要配置slaves
sbin/start-dfs.sh
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
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
启动session-cluster模式
bin/yarn-session.sh -n 3 -s 3 -nm flink-session -d -q
yarn logs -applicationId application_1598961253724_0004
bin/flink run -c org.apache.flink.streaming.examples.wordcount.WordCount -yid application_1598961253724_0004 examples/streaming/WordCount.jar
yarn application -kill application_1598961253724_0001
flink-session常用参数
-n(--container):TaskManager的数量。
-s(--slots): 每个TaskManager的slot数量,默认一个slot一个core,默认每个taskmanager的slot的个数为1,有时可以多一些taskmanager,做冗余。
-jm:JobManager的内存(单位MB)。
-tm:每个taskmanager的内存(单位MB)。
-nm:yarn 的appName(现在yarn的ui上的名字)。
-d:后台执行。
-q,--query:显示yarn集群可用资源(内存、core)
使用Per Job Cluster 模式配置
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模式
./bin/flink run-application -t yarn-application ./flink-fraud-assure-0.1.jar