6.5 hadoop集群运行

1.1  集群运行

1.1.1         集群运行步骤

(1)打包

打作业jar包发送给集群,hadoop通过搜索驱动程序的类路径(驱动程序中通过setJarByClass设置)自动查找作业的的jar文件,打包命令:

mvn package –DskipTests      //–DskipTests 跳过测试的意思

(2)设置路径

作业jar包路径,依赖库路径,HADOOP_CLASS定义的类路径。

(3)启动作业

hadoop jar hadoop-examples.jar v2.MaxTempertureDrive –conf conf/Hadoop-cluster.xml -jt local input/ncdc/all output

1.1.2         作业ID任务ID和任务尝试ID

作业ID由资源管理器创建的YARN的应用ID生成。Application_14112131314234_0003,资源管理器开始时间戳,0003是资源管理器自动分配的增量ID,下一个应用就是0004。将application替换为job,即为作业ID:job_14112131314234_0003。任务属于作业,任务ID: task_14112131314234_0003_m_000004表示作业的第5个map任务(000004,从0开始计数);任务执行会失败,所以有多个任务尝试ID,attempt_14112131314234_0003_m_000004_0表示第一次尝试(任务id从0计数)

1.1.3         Mapreduce的web界面

Web界面用于查看作业进度,日志统计信息。http://10.22.2.3:8088

点击Nodes会显示集群的服务器,显示内存总额。内存剩余,Vcore使用和剩余量。点击左侧的application,可以看到正在运行的应用。作业历史文件由mapreduce的application master保存在HDFS中,路径由参数mapreduce.jobhistory.done-dir属性设置。点击应用列表中一个, 可以查看应用的详细信息。

执行完成后,会在max-temp文件夹生成多个文件。可以用hadoop fs –getmerger max-temp max-temp-local 命令将多个文件合并为一个文件。然后用sort max-temp-local | tail命令来查看排序后的值。

1.1.4         作业调试

获取的天气温度大于100则认为是不正常的温度,需要将记录过滤出来。在map函数中需要对温度做一个判断和日志输出。

enum Temperature{

OVER_100

}

if(airTemperature>1000)

{

System.err.println(“temperature over 100 degrees for input ”+value);//输出完整行到标准错误输出。

Context.setStatus(“detected possibly corrupt record :see log.”);//在8808界面的application最后一列Teacking UI ,点击application master 进入job界面,job界面下有map连接,点击进入map任务界面,在status状态列可以看到这条日志。

Content.getCounter(Temperatue.OVER_100.increment(1));//将计数器的值加1,统计。在web界面或者命令行输入 mapred job –counter job_12324543245_0006 v3.MaxtempratureMapper&Temperature’ OVER_100  可以输出计数器的值。

}

1.1.5         Hadoop 日志

Yarn有个日志聚合服务,将任务日志搬移到HDFS,存储在容器文件中。服务可yarn.log-aggregation-enable设置为true,可以在任务尝试web界面查看logs连接。或者用mapred job –logs命令查看。

通常日志聚合服务为关闭状态,可以通过http://node-manage-host/8042/logs/userlogs查看任务日志。

可以用Apache Common Logging API将日志写入任务的系统日志syslog中

private static log Log=LogFactory.getLog(LoggingIdentityMapper.class);

Log.Info(“Map key: ”+key);

日志级别可以通过命令设置

% hadoop jar hadoop-examples.jar LogingDriver –conf conf/Hadoop-cluster.xml –D mapreduce.map.log.level=DEBUG input/ncdc/sample.txt logging –out

1.1.6         远程调试

任务执行失败,可以将执行失败的文件复制到本地,用jvm调试运行。需要阿寂静mapreduce.task.files.preserve.failedtasks设为true来保存失败的任务文件。

自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

https://www.cnblogs.com/bclshuai/p/11380657.html

猜你喜欢

转载自www.cnblogs.com/bclshuai/p/12168746.html
6.5