本文作者:张皓 张浩然 黎竹平
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的集成情况非常好,采用了很多开源的服务,但是更改成了自己的风格。融合了各家的服务但是确没有看出分离的感觉,这对于各种开源服务的融合性要求很高。
“大数据与数据科学家”公众号
主编:王宏志
特邀副主编: 朱劼
副主编: 丁小欧
责任编辑: 齐志鑫,宋扬
编辑: 陶颖安
-精彩内容,记得分享到朋友圈-
领取专属 10元无门槛券
私享最新 技术干货