Ambari自动部署hadoop

Ambari是一个用于配置、管理和监控ApacheHadoop集群的工具,提供直观的WebUI和RESTfulAPI。它包括AmbariServer和Agent两部分,实现集群安装、状态监控和警报通知功能。文章详细介绍了Ambari的架构、环境准备步骤以及Hadoop集群的部署过程。

1、Ambari介绍

Apache Ambari项目旨在通过开发用于配置,管理和监控Apache Hadoop集群的软件来简化Hadoop管理.
Ambari提供了一个由RESTful API支持的直观,易用的Hadoop管理Web Ul。
Ambari使系统管理员能够:

提供Hadoop集群

 Ambari提供了跨任意数量的主机安装Hadoop服务的分步向导
Ambari处理集群的Hadoop服务配置
管理Hadoop集群
Ambari提供集中管理,用于在整个集群中启动,停止和重新配置Hadoop服务监控Hadoop集群
Ambari提供了一个仪表板,用于监控Hadoop集群的运行状况和状态
Ambari利用Ambari指标系统进行指标收集
Ambari利用Ambari Alert Framework进行系统警报,并在需要您注意时通知您(例如,节点出现故障剩余磁盘空间不足等)。

Ambari使应用程序开发人员和系统集成商能够

使用Ambari RESTfulAPI轻松将Hadoop配置,管理和监控功能集成到自己的应用程序中

2、架构

Ambari本身是一个分布式架构软件,主要由两部分组成:Ambari Server和Ambari Agent。用户通过Ambari Server通知Ambari Agent安装对应的软件,Agent会定时发送各个机器每个软件模块的状态给Server,最终这些状态信息会呈现给Ambari的GU1,方便用户了解到集群中各组件状态,做出相应的维护策略。

官网有部署文档

3、环境准备

3.1、硬件环境

系统
centos7.6        数量:7台
 硬件        CPU:1G        MEM : 2G        Disk:越大越好,最低不能低于所采集的数据量

3.2、ip分配

 3.3、多机互信

[root@localhost ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ' '

因为sshd_config文件中有公钥认证规定 authorized_keys

 修改公钥

[root@localhost ~]# cd /root/.ssh

[root@localhost .ssh]# Is
id_rsa id_rsa.pub known_hosts
[root@localhost .ssh]# cp id_rsa.pub authorized_keys
[root@localhost .ssh]# Is

authorized_keys id_rsa id_rsa.pub  known_hosts

[root@localhost .ssh]# rm -rf known_hosts

删除known_hosts是因为里面存储的是主机域名信息

用for循环把公钥复制到其他服务器
[root@loc

### 使用Ambari部署和测试Hadoop集群 #### 安装Ambari服务器和服务端组件 为了使用Ambari部署Hadoop集群,首先需要准备环境并安装必要的服务。这包括设置好操作系统、网络配置以及数据库支持。 对于Linux系统而言,可以通过命令行工具`yum`快速完成Ambari Server的安装: ```bash sudo yum -y install ambari-server ``` 接着初始化Ambari Server,并指定JDBC驱动程序的位置以便连接到外部关系型数据库(如MySQL)。这里假设已经下载好了相应的MySQL Connector/J包[^3]: ```bash sudo ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar ``` 创建用于存储Ambari元数据信息的MySQL数据库及其权限授予操作如下所示: ```sql mysql> create database ambari; mysql> use ambari; mysql> CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari123'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%'; mysql> FLUSH PRIVILEGES; mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql; ``` 启动Ambari Server之后就可以通过Web界面访问它了,默认地址为http://<server-ip>:8080,在浏览器中打开此URL即可进入下一步骤。 #### 配置节点与选择组件 登录至Ambari Web UI后,按照向导提示输入集群名称和其他基本信息;随后定义各个主机角色分配情况——即哪些机器作为NameNode, DataNode等不同类型的节点参与进来形成分布式文件系统的架构体系结构。此时还需要挑选想要安装的服务列表,比如YARN、MapReduce2、HDFS等等属于核心层的部分,也可以加入更多高级特性像Hive、Pig、Spark等扩展应用[^1]。 #### 执行安装过程 确认无误提交表单以后,Ambari自动执行一系列脚本来完成实际物理机上的软件分发工作直至最终成功构建起完整的Hadoop生态系统实例。期间可能会遇到一些依赖项缺失等问题,则需参照官方文档或社区资源解决相应报错现象[^2]。 #### 测试验证功能正常与否 当所有任务都顺利完成之后便可以着手检验新建立起来的数据处理平台能否正常使用啦!一种简单的方式是在HDFS上上传本地文件再尝试读取查看其内容是否一致;另外还可以编写一段简单的WordCount MapReduce作业代码来进行更深入的功能检测: ```java import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; public class WordCount { public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); @Override protected void map(Object key, Text value, Context context) throws IOException, InterruptedException { String[] words = value.toString().split("\\s+"); for (String w : words) { word.set(w.toLowerCase()); context.write(word, one); } } } public static class SumReducer extends Reducer<Text, IntWritable, Text, IntWritable> { @Override protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = Job.getInstance(conf, "word count"); job.setJarByClass(WordCount.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.setMapperClass(TokenizerMapper.class); job.setCombinerClass(SumReducer.class); job.setReducerClass(SumReducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); System.exit(job.waitForCompletion(true) ? 0 : 1); } } ``` 编译上述Java源码生成可执行jar包后传送到任意一台已知存活状态良好的DataNode上面去运行该应用程序,观察输出结果判断集群健康状况良好程度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值