Ambari作为Apache的顶级项目,是一个基于Web的工具,主要用来创建、管理、监控Hadoop集群。
HDP(Hortonworks Data Platform)是Hortonworks开源的数据平台,几乎包含了Hadoop生态系统中的所有项目,如HDFS、MapReduce、Hive、HBase、Pig、Oozie等等。
本文总结Ambari的基本原理,并在本地安装HDP Hadoop集群。
Ambari采用的是Client/Server模式(C/S模式)。由一个Ambari-server和多个Ambari-agent组成。
Ambari-server(Ambari服务节点):向agent发送指令
Ambari-agent(Ambari代理节点):接收server的指令并执行操作;向server发送心跳汇报所在节点状态等。
注:
1、Ambari-agent不需要手动安装,在安装Ambari-server后,可在WebUI界面配置安装。
2、Ambari-server需要在root用户下安装、配置、启动,并且Ambari-server需要能免密登录到其他节点。
HOST | Ambari角色 |
---|---|
node1 | ambari-agent |
node2 | ambari-agent |
node3 | ambari-agent |
node4 | ambari-agent 和ambari-server |
注:通过WebUI来安装Hadoop、Spark时,ambari会自动分配,因此,这里可先不指定。
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.222.101 node1
192.168.222.102 node2
192.168.222.103 node3
192.168.222.104 node4
临时生效:service iptables stop
service iptables status
永久生效:chkconfig iptables off
chkconfig --list | grep iptables (2 3 4 5为off即可)
配置系统时间、硬件时间,自动和时间服务器同步
yum –y install ntp
临时生效:service ntpd start
ntpdate -u cn.pool.ntp.org
永久生效:chkconfig ntpd on
chkconfig --list | grep ntpd (2 3 4 5为on即可)
硬件时间和系统时间同步:clock -w
配置自动同步:/etc/crontab写入 */1 * * * * root ntpdate -u cn.pool.ntp.org >> /dev/null 2>&1
rpm -ivh jdk-8u11-linux-x64.rpm
/etc/profile
JAVA_HOME=/usr/java/jdk1.8.0_11
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
如在node1节点
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node3
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node4
注:这里node4既是ambari-server节点,也是ambari-agent节点,因此,node4和node4之间也需要配置公钥免密。
[root@node4 ~]# wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.6.1.0/ambari.repo -O /etc/yum.repos.d/ambari
.repo
[root@node4 ~]# yum install ambari-server
注:安装的时候也会默认安装PostgreSQL。
[root@node4 ~]# ambari-server setup
Checking JDK... 选择[3] Custom JDK 自定义JDK,然后输入本机JDK HOME路径
[root@node4 ~]# ambari-server start
http://node4:8080/#/login
注:在这里可以选择要安装的HDP版本,同时能看到对应的HDFS、YARN、Spark、Kafka、Storm、Hive、HBase等版本信息。这里选择HDP 2.6.4版本,由于没有配置HDP本地仓库,选择公共仓库。
注:这里node4既是server节点也是agent节点。Ambari-server SSH私钥文件默认位置:Ambari-server节点 /root/.ssh/id_rsa
某节点Agent安装失败,可单独在此节点手动安装agent并启动,如下:
yum install ambari-agent
vi /etc/ambari-agent/conf/ambari-agent.ini
[server]
hostname=node4
url_port=8440
secured_url_port=8441
ambari-agent start
注:这里会设置Hive MetaStore Mysql等的密码,按提示操作即可。
A、可以配置本地仓库安装。
B、默认使用公共仓库安装,主要会因为网络等因素导致安装不成功。如在node2节点安装slider-client报No more mirrors to try错误,解决方法如下:
在node2节点yum clean all && yum makecache 然后重新安装
C、类似错误Cannot match package for regexp name livy2_${stack_version}
可尝试如下解决方式:
yum list installed |grep livy2_*
yum remove livy2_*
然后在Ambari WebUI 上Retry
D、安装好了之后,会自动启动所有服务,但有些服务启动不起来,不用管,稍后在Ambari 监控页面手动启动即可。
E、网络不行,首次安装就不要安装太多组件,可以去除不必须的组件如Zeppelin等,以后用到的时候再安装。
Ambari WebUI Dashboard/HDFS/Configs/Advanced/Advanced hdfs-site/设置dfs.permissions.enabled=false,然后重启受到影响的服务。
A、HDFS Namenode:http://node1:50070/dfshealth.html#tab-overview
B、YARN:http://node2:8088/cluster
C、测试MapReduce
[root@node3 ~]# hdfs dfs -mkdir /data/
[root@node3 ~]# cat mr_test_data.txt
hadoop
hadoop
spark
hbase
hbase
hbase
[root@node3 ~]# hdfs dfs -put mr_test_data.txt /data/
[root@node3 hadoop-mapreduce]# hadoop jar /usr/hdp/2.6.4.0-91/hadoop-mapreduce/hadoop-mapreduce-examples-2.7.3.2.6.4.0-91.jar wordcount /data/mr_test_data.txt /result/
D、测试Spark yarn-client
[root@node1 ~]# cd /usr/hdp/2.6.4.0-91/spark2/ && bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 540M --num-executors 1 examples/jars/spark-examples_2.11-2.2.0.2.6.4.0-91.jar 100
E、测试Spark yarn-cluster
[root@node1 ~]# cd /usr/hdp/2.6.4.0-91/spark2/ && bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster
--executor-memory 750M --num-executors 1 examples/jars/spark-examples_2.11-2.2.0.2.6.4.0-91.jar 10