flink集群搭建

    工作预研中记录的工作笔记供大家指导借鉴。flink集群的搭建和相关hadoop集群安装步骤和运行脚本。直接上代码。

安装hadoop集群
1、解压缩hadoop
tar zxvf hadoop-2.7.7.tar.gz -C /usr/

2、在 nd-00 ~ nd-02 配置环境变量
vim /etc/profile
export HADOOP_HOME=/usr/hadoop-2.7.7
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:${JAVA_PATH}:${ZOOKEEPER}/bin:${ZOOKEEPER}/conf:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

source /etc/profile

3、Hadoop配置
以下操作均在Master节点,配置完后,使用scp命令,将配置文件拷贝到两个Slave节点即可。
   切换到/usr/hadoop-2.7.7/etc/hadoop/目录下,修改如下文件:
   
 3.1 hadoop-env.sh

 cd /usr/hadoop-2.7.7/etc/hadoop/
 vim hadoop-env.sh
 在文件最后,新增如下配置
 export JAVA_HOME=/usr/java/jdk1.8.0_201
 export HADOOP_PREFIX=/usr/hadoop-2.7.7
 
 3.2 yarn-env.sh
 在文件最后,新增如下配置
 export JAVA_HOME=/usr/java/jdk1.8.0_201
 
 3.3 core-site.xml
 创建tmp目录:#mkdir -p /usr/hadoop-2.7.7/tmp
 <configuration>
  <property>
   <name>fs.defaultFS</name>
   <value>hdfs://nd-00:9000</value>
  </property>
  <property>
   <name>hadoop.tmp.dir</name>
   <value>/mnt/hadoop/tmp</value>
  </property>
 </configuration>
 
 3.4 hdfs-site.xml
 <configuration>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/mnt/hadoop/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/mnt/hadoop/dfs/data</value>
  </property>
</configuration>

 3.5 mapred-site.xml
 <configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property> 
    <name>mapreduce.jobhistory.address</name> 
    <value>nd-00:10020</value> 
  </property> 
  <property> 
    <name>mapreduce.jobhistory.webapp.address</name> 
    <value>nd-00:19888</value> 
  </property> 
</configuration>

 3.6 yarn-site.xml
 <configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value> 
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value> 
  </property>
  <property>
    <name>yarn.resourcemanager.address</name> 
    <value>nd-00:8032</value> 
  </property> 
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>nd-00:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>nd-00:8031</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>nd-00:8033</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name> 
    <value>nd-00:8088</value>
  </property>
  
  <property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>4192</value>
    <discription>每个节点可用内存,单位MB</discription>
</property>  
  
<property>  
    <name>yarn.scheduler.minimum-allocation-mb</name>  
    <value>1024</value>  
    <discription>单个任务可申请最少内存,默认1024MB</discription>  
</property>  
  
<property>  
    <name>yarn.scheduler.maximum-allocation-mb</name>  
    <value>4192</value>  
    <discription>单个任务可申请最大内存,默认8192MB</discription>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>1024</value>
<description>每个Map任务的物理内存限制</description>
</property>

<property>
<name>mapreduce.reduce.memory.mb</name>
<value>1024</value>
<description>每个Reduce任务的物理内存限制</description>
</property>

<property>
<name>mapred.child.java.opts</name>
<value>-Xmx1024m</value>
</property>

<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.5</value>
<description>把拟内存和物理内存比例增大</description>
</property>
</configuration>

 3.7 slaves
 nd-00
 nd-01
 nd-02

 3.8 拷贝配置文件到两个Slave节点
 在Master节点,执行如下命令:   
   # scp -r /usr/hadoop-2.7.7/etc/hadoop/ root@nd-01:/usr/hadoop-2.7.7/etc/
   # scp -r /usr/hadoop-2.7.7/etc/hadoop/ root@nd-02:/usr/hadoop-2.7.7/etc/
   
4、Hadoop使用
 4.1 格式化NameNode
 Master节点上,执行如下命令
    #hdfs namenode -format
 
 4.2 启动HDFS(NameNode、DataNode)
 Master节点上,执行如下命令
    #start-dfs.sh
    使用jps命令,分别在Master以及两个Slave上查看Java进程
    可以在Master上看到如下进程:
  34225 SecondaryNameNode
  33922 NameNode
  34028 DataNode
  49534 Jps
  
 在两个Slave上,看到如下进程:
  34028 DataNode
  49534 Jps
  
 4.3 启动 Yarn(ResourceManager 、NodeManager)
 Master节点上,执行如下命令
    #start-yarn.sh
    使用jps命令,分别在Master以及两个Slave上查看Java进程
 可以在Master上看到如下进程:
 34225 SecondaryNameNode
 33922 NameNode
 34632 NodeManager
 34523 ResourceManager
 34028 DataNode
 49534 Jps
 
 在两个Slave上,看到如下进程:
 34632 NodeManager
 34028 DataNode
 49534 Jps
 
 4.4 通过浏览器查看HDFS信息
 浏览器中,输入http://192.168.139.130:50070
 
 4.5 通过浏览器查看Yarn信息
  浏览器中,输入http://192.168.139.130:8088
  
 4.6 停止Yarn及HDFS
      #stop-yarn.sh
      #stop-dfs.sh
   
   
   
常见错误
virtual memory exhausted: Cannot allocate memory
当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法。

一、问题
       当安装虚拟机时系统时没有设置swap大小或设置内存太小,编译程序会出现virtual memory exhausted: Cannot allocate memory的问题,可以用swap扩展内存的方法。

二、解决方法
在执行free -m的是时候提示Cannot allocate memory:

(swap文件可以放在自己喜欢的位置如/var/swap)

[root@Byrd byrd]# free -m
             total       used       free     shared    buffers     cached
Mem:           512        108        403          0          0         28
-/+ buffers/cache:         79        432
Swap:            0          0          0
[root@Byrd ~]# mkdir /opt/images/
[root@Byrd ~]# rm -rf /opt/images/swap
[root@Byrd ~]# dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 82.7509 s, 25.3 MB/s
[root@Byrd ~]# mkswap /opt/images/swap
mkswap: /opt/images/swap: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2047996 KiB
no label, UUID=59daeabb-d0c5-46b6-bf52-465e6b05eb0b
[root@hz mnt]# swapon /opt/images/swap
[root@hz mnt]# free -m
             total       used       free     shared    buffers     cached
Mem:           488        481          7          0          6        417
-/+ buffers/cache:         57        431
Swap:          999          0        999
内存太小,增加内存可以解决。
使用完毕后可以关掉swap:

[root@hz mnt]# swapoff swap
[root@hz mnt]# rm -f /opt/images/swap
swap文件也可以不删除,留着以后使用,关键是你的虚拟机硬盘够用。

原文:https://blog.csdn.net/taiyang1987912/article/details/41695895 


安装flink集群
1、下载flink
wget http://mirror.bit.edu.cn/apache/flink/flink-1.7.2/flink-1.7.2-bin-hadoop27-scala_2.11.tgz
2、解压缩
tar zxvf flink-1.7.2-bin-hadoop27-scala_2.11.tgz -C /usr/local/
3、配置环境变量 /etc/profile
export FLINK_HOME=/usr/local/flink-1.7.2
export PATH=$PATH:${JAVA_PATH}:${ZOOKEEPER}/bin:${ZOOKEEPER}/conf:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${FLINK_HOME}/bin
source /etc/profile
4、配置flink
cd /usr/local/flink-1.7.2/conf/
 4.1 配置文件说明 这里面需要我们配置的有:slaves和flink-conf.yaml文件,这里面masters文件是用来配置HA的,只要我们不配置HA的话,就不需要配置masters文件(flink也是master/slave结构,但是对于此时master的选择是执行启动脚本的机器为master)。但是slave需要我们配置,配置对应的主机名即可(伪分布式和分布式的区别也就是实际上slave节点的个数,以及分布式在多个节点上而已)。接下来需要我们配置的就是flink-conf.yaml。
 
 4.2 选择master节点修改flink-conf.yaml配置文件,先配置yarn版本
 # 设置jobmanager.rpc.address 配置项为该节点的IP 或者主机名
 jobmanager.rpc.address: 192.168.139.130
 state.backend: filesystem

# Directory for checkpoints filesystem, when using any of the default bundled
# state backends.
#
 state.checkpoints.dir: hdfs://namenode-host:9000/flink-checkpoints


 4.3 配置slaves
 [root@hadoop2 flink-1.7.2]# vi conf/slaves
 192.168.139.131
 192.168.139.132
 
 4.4 启动或者flink集群
 bin/start-cluster.sh
 bin/stop-cluster.sh
 
 4.5 详细可用配置项
 以下都是非常重要的配置项:
  1、TaskManager总共能使用的内存大小(taskmanager.heap.mb)
  2、每一台机器上能使用的 CPU 个数(taskmanager.numberOfTaskSlots)
  3、集群中的总 CPU个数(parallelism.default)
  4、临时目录(taskmanager.tmp.dirs)
 
 4.6 查看前端web
 http://192.168.139.130:8081/#/overview
 
5、Flink on Yarn 
 #!/bin/sh
 flink run -m yarn-cluster \
 -yqu default \
 -ynm DataCleanJob \  //任务名称
 -yn 2 \   //taskManager的个数
 -ys 2 \   //yarnslots
 -yjm 1024 \   //yarnjobManagerMemory
 -ytm 1024 \   //yarntaskManagerMemory
 -c com.eat.DataClean \
 /task/storeCategory/DataClean-1.0-SNAPSHOT-jar-with-dependencies.jar

查看yarn资源情况

http://192.168.139.130:8088

6、杀掉一个jobID

 yarn application -kill application_1541254233708_0003

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值