首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ambari系统及应用(四):应用开发与实现

本文作者:张皓 张浩然 黎竹平

Ambari作为大数据平台的监控工具,具有管理和监控服务的功能。Ambari可以自动配置hadoop和spark服务。并且可以灵活安装删除服务。

ambari作为大数据平台管理工具具有两个特点:

能够便捷地为集群添加服务

能够进行大数据分析的任务

接下来,以添加服务和使用hadoop为例,进而展示ambari作为大数据平台管理工具的强大的一面。

我们需要两个实验来展示Ambari的两方面特点:

通过ambari的web客户端完成添加服务的功能,以展示Ambari管理集群的便捷。

通过简单的在hadoop环境下运行的wordcount的程序,来展示测试Ambari上hadoop集群实用性。

相关代码如下

import java.io.IOException;

import org.apache.hadoop.mapreduce.Mapper;

public class WordCountNewAPIV2 extends Configured implements Tool{

public static class MyMapper extends Mapper {

private final static IntWritable one = new IntWritable(1);

public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {

String w = value.toString();

context.write(new Text(w), one);

} }

public static class MyReducer extends Reducer {

public void reduce(Text key, Iterable values, Context context)

throws IOException, InterruptedException {

if(StringUtils.isAlphanumeric(key.toString()) && !StringUtils.isAlphaSpace(key.toString()) ){

int sum = 0;

for (IntWritable val : values) {

sum += val.get();

}

context.write(key, new IntWritable(sum));

}

}

}

public int run(String[] allArgs) throws Exception {

Job job = Job.getInstance(getConf());

job.setJarByClass(WordCountNewAPIV2.class);

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(IntWritable.class);

job.setMapperClass(MyMapper.class);

job.setReducerClass(MyReducer.class);

job.setInputFormatClass(TextInputFormat.class);

job.setOutputFormatClass(TextOutputFormat.class);

String[] args = new GenericOptionsParser(getConf(), allArgs).getRemainingArgs();

FileInputFormat.setInputPaths(job, new Path(args[0]));

FileOutputFormat.setOutputPath(job, new Path(args[1]));

job.submit();

return 0;

}

public static void main(String[] args) throws Exception {

Configuration conf = new Configuration();

ToolRunner.run(new WordCountNewAPIV2(), args);

}

操作步骤

1. 在Ambari上添加服务

(1). 首先在ambari界面选择Dashboard界面。左边服务栏最下边有一个Action按钮,选择 +Add Service,如图22所示:

图22 选择Add Service

(2). 然后在出现的界面中选择想要安装的服务。这里我选择了Spark(注意连带Spark会有很多其他的服务也需要安装,点击OK即可)。如图23所示:

图23 选择服务

(3). 进而出现在节点分配服务的界面,这里选择了默认,如图24所示:

图24 分配服务

(4). 分配节点和客户端,同样采用默认的方式,如图25:

图25 分配节点和客户端

(5). 在Review会看到综述,如图26所示,同样的步骤我们选择Deploy,进行到安装界面,如图27:

图26 综述

图27 安装界面

(6). 安装成功,如图28所示:

图28 安装成功

2. 在Ambari上运行hadoop环境程序

(1). 此时测试hadoop的hdfs,如图29:

图29 hdfs

(2). 此时的hdfs是没有给当前用户使用权限的。所以要切换到hdfs用户在hdfs上创建当前用户的工作路径,并更改用户权限,如图30所示:

图30 在hdfs上创建root用户

(3). 编辑test.txt文件,传输到hdfs上:

图31 test.txt

(4). 运行jar包:

图32 hadoop运行情况

(5). 在web上追踪job:

图33 在web上追踪job

(6). 观察hdfs上的输出:

图34 输出结果

通过上面的两个实践案例,读者可以感受到Ambari的强大功能:可以自动部署安装配置Hadoop和Spark等环境,并且有Web端的显示,可以对整个集群进行监控,这对于集群管理员来说是福音。Ambari的集成情况非常好,采用了很多开源的服务,但是更改成了自己的风格。融合了各家的服务但是确没有看出分离的感觉,这对于各种开源服务的融合性要求很高。

“大数据与数据科学家”公众号

主编:王宏志

特邀副主编: 朱劼

副主编: 丁小欧

责任编辑: 齐志鑫,宋扬

编辑: 陶颖安

-精彩内容,记得分享到朋友圈-

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180324G1ER5X00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券