ambari系列--报错问题

来源:互联网 发布:迅龙数据恢复免费版 编辑:程序博客网 时间:2024/05/21 06:59
hbase 启动不起来,通常是因为节点日期不同步。


HDFS 无法启动,通常是因为hdfs 进入了安全模式,需要先退出来,再启动。

hadoop dfsadmin -safemode leave 


repo源的地址是可以随时更改的。

更改路径:admin -> stacks and Versions -> Versions -> 点击框的右上角笔样编辑图标 . 替换对应repo的url即可。


如何删除节点(hosts)

顶部hosts 菜单 -> 点选相应的主机名 -> 右上角 host Actions -> delete host


新增节点如果是基于原有的镜像创建,需要做host cleanup .

如果发现datanode启动,但是不是live , 很可能是新节点和其他节点配置冲突。这也就是为什么要做host cleanup 的原因。


另外,新添加的节点为非live, 不要试图通过调整namenode所在节点来解决,否则问题越来越多。




ambari.repo 指定了ambari的源; 通过在ambari web配置HDP源,自动生成 “HDP*.repo” 文件。




提示 /var/log/ambari-metrics-monitor/ambari-metrics-monitor.out 没有权限修改之类

这个问题,可以采取两种解决办法:

赋权: chown ams:hadoop  /var/log/ambari-metrics-monitor/ambari-metrics-monitor.out

在安装ambari metrics monitor 之前,先把这个文件删除。


本地用户administrator(本机windows用户)想要远程操作hadoop系统,没有权限引起的。
如果是测试环境,可以取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性修改为false(默认为true)OK了。


ambari 界面上的 hdfs balancer 有时不管用。


可以通过手工执行命令来平衡:


 hadoop balancer 




ambari 可以通过 RESTful api 访问,例如:


 curl --user admin:admin http://10.0.2.11:8080/api/v1/clusters


ambari 每个组件的页面中间上方都有外部链接可以指向组件本身的管理和监控页面。


500 status code received on GET method for API: /api/v1/stacks/HDP/versions/2.4/recommendations 
Error message: Error occured during stack advisor command invocation: Cannot create /var/run/ambari-server/stack-recommendations
解决方案:sudo chown -R ambari /var/run/ambari-server




删除已安装服务:
Ambari 借鉴了很多成熟分布式软件的 API 设计。Rest API 就是一个很好地体现。通过 Ambari 的 Rest API,可以在脚本中通过 curl 维护整个集群。
目前 Ambari 不支持在 GUI 上面卸载已安装的 Service。所以当一个 Service 不再需要的时候,用户没法删除掉该 Service。幸运的是 Ambari 提供了 DELETE 的 Rest API,我们可以通过该 API 来删除 Ambari 中 Service。不过这里需要注意,这个方法只是从 Ambari Service 中删除了 Service。这样一来,Ambari 的 GUI 界面中不再显示这个 Service。但是 Service 本身还安装在 Agent 所在的机器。如果用户需要彻底的清除掉这个 Service,仍需要手工的到每个机器卸载(例如,在每个机器执行 yum erase)。
这里我以删除 SPARK 为例。卸载之前,需要确认是否停掉了该 Service。我们通过 GET 方法来得到这个结果(这里当然也可以直接从 GUI 上面看到 Service 状态)。具体的命令如下:
curl -u admin:admin -H "X-Requested-By: ambari" -X GET http://172.xx.xx.xx:8080/api/v1/clusters/hadoop1/services/SPARK


命令中的 172.xx.xx.xx 为 Ambari Server 的机器名(端口默认为 8080),hadoop1 为 cluster 名字,SPARK 为 Service 的名字。
在返回的报文中,可以看到 State 字段。如果是 INSTALLED,代表这个 Service 已经是停掉的状态。我们可以继续删除步骤。如果不是 INSTALLED,则需要先停掉这个 Service,可以从 WEB 上操作,也可以用 Rest API。
用 Rest API 停掉 Service 的命令格式如下,有兴趣的朋友可以尝试一下。
curl -u admin:admin -H "X-Requested-By: ambari" -X PUT -d '{"RequestInfo":{"context":"Stop Service"},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}' http://172.xx.xx.xx:8080/api/v1/clusters/hadoop1/services/SPARK


执行如下命令删除 SPARK:
curl -u admin:admin -H "X-Requested-By: ambari" -X  DELETE  http://172.xx.xx.xx:8080/api/v1/clusters/hadoop1/services/SPARK


执行完成后,SPARK就从 Ambari 的 Service 里面删掉了,但是 SPARK 的 package 还存在于机器。
执行rpm -qa | grep spark
如果需要彻底清除掉 spark 的 package,则需要到各个 Agent 机器执行如下命令。
yum erase "spark*"
执行完后,这个 Service 就被彻底的清除掉了。
在web上查看一下


删除安装包:
对于安装了很多hadoop组件的话,这个工作很繁琐。接下来是我整理的清理过程。
1,通过ambari将集群中的所用组件都关闭,如果关闭不了,直接kill -9 XXX
2,关闭ambari-server,ambari-agent
ambari-server stop  
ambari-agent stop  
3,卸载安装的软件
yum remove hadoop_2* hdp-select* ranger_2* zookeeper* bigtop* atlas-metadata* ambari* postgresql spark*  
yum list | grep @HDP  
yum remove -y  sqoop.noarch  
yum remove -y  lzo-devel.x86_64  
yum remove -y  hadoop-libhdfs.x86_64  
yum remove -y  rrdtool.x86_64  
yum remove -y  hbase.noarch  
yum remove -y  pig.noarch  
yum remove -y  lzo.x86_64  
yum remove -y  ambari-log4j.noarch  
yum remove -y  oozie.noarch  
yum remove -y  oozie-client.noarch  
yum remove -y  gweb.noarch  
yum remove -y  snappy-devel.x86_64  
yum remove -y  hcatalog.noarch  
yum remove -y  python-rrdtool.x86_64  
yum remove -y  nagios.x86_64  
yum remove -y  webhcat-tar-pig.noarch  
yum remove -y  snappy.x86_64  
yum remove -y  libconfuse.x86_64    
yum remove -y  webhcat-tar-hive.noarch  
yum remove -y  ganglia-gmetad.x86_64  
yum remove -y  extjs.noarch  
yum remove -y  hive.noarch  
yum remove -y  hadoop-lzo.x86_64  
yum remove -y  hadoop-lzo-native.x86_64  
yum remove -y  hadoop-native.x86_64  
yum remove -y  hadoop-pipes.x86_64  
yum remove -y  nagios-plugins.x86_64  
yum remove -y  hadoop.x86_64  
yum remove -y  zookeeper.noarch      
yum remove -y  hadoop-sbin.x86_64  
yum remove -y  ganglia-gmond.x86_64  
yum remove -y  libganglia.x86_64  
yum remove -y  perl-rrdtool.x86_64
yum remove -y  epel-release.noarch
yum remove -y  compat-readline5*
yum remove -y  fping.x86_64
yum remove -y  perl-Crypt-DES.x86_64
yum remove -y  exim.x86_64
yum remove -y ganglia-web.noarch
yum remove -y perl-Digest-HMAC.noarch
yum remove -y perl-Digest-SHA1.x86_64
yum remove -y bigtop-jsvc.x86_64
4.删除快捷方式
cd /etc/alternatives
rm -rf hadoop-etc 
rm -rf zookeeper-conf 
rm -rf hbase-conf 
rm -rf hadoop-log 
rm -rf hadoop-lib 
rm -rf hadoop-default 
rm -rf oozie-conf 
rm -rf hcatalog-conf 
rm -rf hive-conf 
rm -rf hadoop-man 
rm -rf sqoop-conf 
rm -rf hadoop-conf
5,删除postgresql的数据
postgresql软件卸载后,其数据还保留在硬盘中,需要把这部分数据删除掉。
rm -rf /var/lib/pgsql  
6.删除用户
userdel oozie  
userdel hive  
userdel ambari-qa  
userdel flume    
userdel hdfs    
userdel knox    
userdel storm    
userdel mapred  
userdel hbase    
userdel tez    
userdel zookeeper  
userdel kafka    
userdel falcon  
userdel sqoop    
userdel yarn    
userdel hcat  
userdel atlas  
userdel spark  
rm -rf /home/atlas  
rm -rf /home/accumulo  
rm -rf /home/hbase  
rm -rf /home/hive  
rm -rf /home/oozie  
rm -rf /home/storm  
rm -rf /home/yarn  
rm -rf /home/ambari-qa  
rm -rf /home/falcon  
rm -rf /home/hcat  
rm -rf /home/kafka  
rm -rf /home/mahout  
rm -rf /home/spark  
rm -rf /home/tez  
rm -rf /home/zookeeper  
rm -rf /home/flume  
rm -rf /home/hdfs 
rm -rf /home/knox  
rm -rf /home/mapred  
rm -rf /home/sqoop   
7,删除ambari遗留数据
rm -rf /var/lib/ambari*   
rm -rf /usr/lib/python2.6/site-packages/ambari_*  
rm -rf /usr/lib/python2.6/site-packages/resource_management  
rm -rf /usr/lib/ambari-*  
rm -rf /etc/ambari-*   
8,删除其他hadoop组件遗留数据
rm -rf /etc/ambari-* 
rm -rf /etc/hadoop  
rm -rf /etc/hbase  
rm -rf /etc/hive   
rm -rf /etc/oozie  
rm -rf /etc/sqoop   
rm -rf /etc/zookeeper  
rm -rf /etc/flume   
rm -rf /etc/storm   
rm -rf /etc/hive-hcatalog  
rm -rf /etc/tez   
rm -rf /etc/falcon   
rm -rf /etc/knox   
rm -rf /etc/hive-webhcat  
rm -rf /etc/kafka   
rm -rf /etc/slider   
rm -rf /etc/storm-slider-client  
rm -rf /etc/spark   
rm -rf /var/run/spark  
rm -rf /var/run/hadoop  
rm -rf /var/run/hbase  
rm -rf /var/run/zookeeper  
rm -rf /var/run/flume  
rm -rf /var/run/storm  
rm -rf /var/run/webhcat  
rm -rf /var/run/hadoop-yarn  
rm -rf /var/run/hadoop-mapreduce  
rm -rf /var/run/kafka  
rm -rf /var/log/hadoop  
rm -rf /var/log/hbase  
rm -rf /var/log/flume  
rm -rf /var/log/storm  
rm -rf /var/log/hadoop-yarn  
rm -rf /var/log/hadoop-mapreduce  
rm -rf /var/log/knox   
rm -rf /usr/lib/flume  
rm -rf /usr/lib/storm  
rm -rf /var/lib/hive   
rm -rf /var/lib/oozie  
rm -rf /var/lib/flume  
rm -rf /var/lib/hadoop-hdfs  
rm -rf /var/lib/knox   
rm -rf /var/log/hive   
rm -rf /var/log/oozie  
rm -rf /var/log/zookeeper  
rm -rf /var/log/falcon  
rm -rf /var/log/webhcat  
rm -rf /var/log/spark  
rm -rf /var/tmp/oozie  
rm -rf /tmp/ambari-qa  
rm -rf /var/hadoop  
rm -rf /hadoop/falcon  
rm -rf /tmp/hadoop   
rm -rf /tmp/hadoop-hdfs  
rm -rf /usr/hdp  
rm -rf /usr/hadoop  
rm -rf /opt/hadoop  
rm -rf /tmp/hadoop  
rm -rf /var/hadoop  
rm -rf /hadoop  
清理yum数据源
#yum clean all  


通过以上清理后,重新安装ambari和hadoop集群(包括HDFS,YARN+MapReduce2,Zookeeper,Ambari Metrics,Spark)成功。