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)成功。