Hadoop-YARN-SLS模拟器运行

hadoop中提供sls来进行单机模拟。为缺少大集群的用户提供了便利。如何运行?


1.配置hadoop安装前的环境:

hadoop环境准备-centos7 安装java jdk8



2.安装Hadoop:

hadoop安装和本地模式实现

安装好后,对环境变量进行配置:

sudo vim /etc/profile

在最后添加:

HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

这一步是将hadoop的一些二进制文件也就是命令放入环境变量,方便以后调用。

然后将java路径配置给etc/hadoop/hadoop_env.sh

export JAVA_HOME="/usr/java/jdk1.8.0_161"



3.配置并运行SLS

可以参考博文:(SLS)-调度模拟器配置

不想看那么长博文的同学也可以看如下的精简说明:

a. 通过rumen2sls.sh脚本将rumen文件转化为sls文件:

$HADOOP_HOME/share/hadoop/tools/sls/bin/rumen2sls.sh \ 
--rumen-file=$HADOOP_HOME/share/hadoop/tools/sls/sample-data/2jobs2min-rumen-jh.json \ 
--output-dir=/home/c/sls/output2/

在sls/sample-data文件夹下,官方给我们提供了一个rumen的例子文件,转换成的sls文件存在在output-dir中,这里最好用绝对路径,不然容易找不到。

成功后会在output2文件夹下找到两个文件:sls-jobs.json  sls-nodes.json

这两个文件就是runsls.sh脚本需要的。

b.运行runsls.sh脚本:注意,在sls目录下运行

sh $HADOOP_HOME/share/hadoop/tools/sls/bin/slsrun.sh --input-sls=/home/c/sls/output2/sls-jobs.json --nodes=/home/c/sls/output2/sls-nodes.json --output-dir=/home/c/sls/output1 --print-simulation

参数,input-sls就是生成的sls-jobs.json,--nodes参数就是生成的sls-nodes.json,--output-dir就是生成的数据和日志所在位置。

在运行过程中可能会碰到很多问题。

1.报错

Exception in thread "main" java.lang.RuntimeException: 
java.lang.NullPointerException
     at 
org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:131)

2.报错

Java.lang.NullPointerException 
at org.apache.hadoop.yarn.sls.web.SLSWebApp.(SLSWebApp.java:86

3.报错

18/07/11 16:58:48 WARN capacity.CapacityScheduler: Couldn't find application application_1531299523163_0001
解决方案见另一片博文:hadoop-yarn SLS运行中的问题

posted on 2018-07-11 17:56  sichenzhao  阅读(302)  评论(0编辑  收藏  举报

导航