一、软件要求
● Hadoop: 2.7+, 3.1+ (since v2.5)
● Hive: 0.13 - 1.2.1+
● HBase: 1.1+, 2.0 (since v2.5)
● Spark (可选) 2.3.0+
● Kafka (可选) 1.0.0+ (since v2.5)
● JDK: 1.8+ (since v2.5)
● OS: Linux only, CentOS 6.5+ or Ubuntu 16.0.4+
● 已部署ambari+HDP
二、代码下载
VERSION=hdp-select status hadoop-client | sed 's/hadoop-client - \([0-9]\.[0-9]\).*/\1/'
sudo wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz /opt
对hadoop代码解压
tar -xf /opt/hadoop-3.3.1.tar.gz
配置hadoop部分可参考:
https://yuque.antfin.com/docs/share/d0eb3346-3951-4d4c-8dcd-335b858a8b21?#
三、部署apache hadoop
在/var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/ 目录下,创建AHADOOP目录,作为apache_hadoop的服务目录。
cd /var/lib/ambari-agent/cache/stacks/HDP/3.1/services
mkdir AHADOOP
cp -r /var/lib/ambari-agent/cache/stacks/HDP/3.1/services/HDFS/* /var/lib/ambari-agent/cache/stacks/HDP/3.1/services/AHADOOP
查看AHADOOP目录结构:
AHADOOP/
├── alerts.json
├── configuration
│ ├── core-site.xml
│ ├── hadoop-env.xml
│ ├── hadoop-metrics2.properties.xml
│ ├── hadoop-policy.xml
│ ├── hdfs-log4j.xml
│ ├── hdfs-site.xml
│ ├── ranger-hdfs-audit.xml
│ ├── ranger-hdfs-plugin-properties.xml
│ ├── ranger-hdfs-policymgr-ssl.xml
│ ├── ranger-hdfs-security.xml
│ ├── ssl-client.xml
│ ├── ssl-server.xml
│ └── viewfs-mount-table.xml
├── kerberos.json
├── metainfo.xml
├── metrics.json
├── package
│ ├── alerts
│ │ ├── alert_checkpoint_time.py
│ │ ├── alert_checkpoint_time.pyo
│ │ ├── alert_datanode_unmounted_data_dir.py
│ │ ├── alert_datanode_unmounted_data_dir.pyo
│ │ ├── alert_ha_namenode_health.py
│ │ ├── alert_ha_namenode_health.pyo
│ │ ├── alert_metrics_deviation.py
│ │ ├── alert_metrics_deviation.pyo
│ │ ├── alert_upgrade_finalized.py
│ │ └── alert_upgrade_finalized.pyo
│ ├── files
│ │ ├── checkWebUI.py
│ │ └── checkWebUI.pyo
│ ├── scripts
│ │ ├── balancer-emulator
│ │ │ ├── balancer-err.log
│ │ │ ├── balancer.log
│ │ │ ├── hdfs-command.py
│ │ │ └── hdfs-command.pyo
│ │ ├── datanode.py
│ │ ├── datanode.pyo
│ │ ├── datanode_upgrade.py
│ │ ├── datanode_upgrade.pyo
│ │ ├── hdfs_client.py
│ │ ├── hdfs_client.pyo
│ │ ├── hdfs_datanode.py
│ │ ├── hdfs_datanode.pyo
│ │ ├── hdfs_namenode.py
│ │ ├── hdfs_namenode.pyc
│ │ ├── hdfs_namenode.pyo
│ │ ├── hdfs_nfsgateway.py
│ │ ├── hdfs_nfsgateway.pyo
│ │ ├── hdfs.py
│ │ ├── hdfs.pyc
│ │ ├── hdfs.pyo
│ │ ├── hdfs_rebalance.py
│ │ ├── hdfs_rebalance.pyc
│ │ ├── hdfs_rebalance.pyo
│ │ ├── hdfs_snamenode.py
│ │ ├── hdfs_snamenode.pyo
│ │ ├── __init__.py
│ │ ├── __init__.pyo
│ │ ├── install_params.py
│ │ ├── install_params.pyo
│ │ ├── journalnode.py
│ │ ├── journalnode.pyo
│ │ ├── journalnode_upgrade.py
│ │ ├── journalnode_upgrade.pyo
│ │ ├── master.py
│ │ ├── namenode_ha_state.py
│ │ ├── namenode_ha_state.pyc
│ │ ├── namenode_ha_state.pyo
│ │ ├── namenode.py
│ │ ├── namenode.pyo
│ │ ├── namenode_upgrade.py
│ │ ├── namenode_upgrade.pyc
│ │ ├── namenode_upgrade.pyo
│ │ ├── nfsgateway.py
│ │ ├── nfsgateway.pyo
│ │ ├── params_linux.py
│ │ ├── params_linux.pyc
│ │ ├── params_linux.pyo
│ │ ├── params.py
│ │ ├── params.pyc
│ │ ├── params.pyo
│ │ ├── params_windows.py
│ │ ├── params_windows.pyo
│ │ ├── service_check.py
│ │ ├── service_check.pyo
│ │ ├── setup_ranger_hdfs.py
│ │ ├── setup_ranger_hdfs.pyc
│ │ ├── setup_ranger_hdfs.pyo
│ │ ├── snamenode.py
│ │ ├── snamenode.pyo
│ │ ├── status_params.py
│ │ ├── status_params.pyc
│ │ ├── status_params.pyo
│ │ ├── utils.py
│ │ ├── utils.pyc
│ │ ├── utils.pyo
│ │ ├── zkfc_slave.py
│ │ ├── zkfc_slave.pyc
│ │ └── zkfc_slave.pyo
│ └── templates
│ ├── exclude_hosts_list.j2
│ ├── hdfs.conf.j2
│ ├── hdfs_dn_jaas.conf.j2
│ ├── hdfs_jaas.conf.j2
│ ├── hdfs_jn_jaas.conf.j2
│ ├── hdfs_nn_jaas.conf.j2
│ ├── include_hosts_list.j2
│ ├── input.config-hdfs.json.j2
│ └── slaves.j2
├── quicklinks
│ └── quicklinks.json
├── service_advisor.py
├── service_advisor.pyc
├── service_advisor.pyo
├── themes
│ ├── directories.json
│ └── theme.json
└── widgets.json
修改master.py文件
!/usr/bin/env python
coding=
from resource_management import *
class Master(Script):
def install(self, env):
print 'Install the hadoop Master'
def stop(self, env):
Execute('/opt/hadoop-3.2.1/sbin/stop-dfs.sh && /opt/hadoop-3.2.1/sbin/stop-yarn.sh')
print 'Stop the hadoop Master'
def start(self, env):
Execute('/opt/hadoop-3.2.1/sbin/start-dfs.sh && /opt/hadoop-3.2.1/sbin/start-yarn.sh')
def status(self, env):
check_process_status("/opt/hadoop-3.2.1/etc/hadoop/pids/hadoop-hdfs-namenode.pid")
def configure(self, env):
print 'Configure the apacheHadoop';
if name == "__main__":
Master().execute()
重启ambari-server服务
ambari-server restart
重启完成之后,即可以在ambari前端页面service添加服务菜单中看到apache_hadoop
按照菜单提示进行安装部署apache_hadoop