一、平台环境

  1. 操作系统:CentOS release 6.5 (Final)
  2. Java版本:jdk1.8.0_60
  3. Ambari版本:2.2.1.0
  4. HDP版本:2.4.0
  5. MySQL版本:MySQL-5.6.25-1
  6. 用户权限:cent,sudo无密码
  7. 主机IP:192.168.234.145
  8. 安装包路径:~/packages

二、环境准备
1、 增加系统打开文件数和进程数
在每台服务器命令行执行:

2、永久关闭linux swap

执行:cat /proc/sys/vm/swappiness

结果为0表示已经关闭,否则执行

sudo sysctl -w vm.swappiness=0

sudo vi /etc/sysctl.conf

在最后添加: vm.swappiness=0

然后执行: sudo sysctl -p /etc/sysctl.conf

可以看到刚才设置的vm.swappiness=0,设置成功

3、永久关闭防火墙

执行关闭命令:sudo service iptables stop

执行关闭开机启动命令:sudo chkconfig iptables off

查看防火墙当前状态:sudo service iptables status

4、永久关闭selinux

执行立即关闭命令:setenforce 0

查看状态:getenforce

显示:Permissive

表示已经关闭

永久关闭:sudo vim /etc/selinux/config

将SELINUX=enforcing改成SELINUX=disabled

保存,然后需要重启系统

查看selinux状态,执行:sestatus -v

显示:SELinux status:       disabled

表示已经关闭。

5、取消CPU节能运行模式

6、修改主机名

查看当前主机名:hostname

修改当前主机名:hostname 主机名

断开重连后查看主机名:hostname

将主机名写入/etc/sysconfig/network: vi /etc/sysconfig/network

修改:HOSTNAME=主机名

然后保存。

7、关闭THP

在/etc/rc.local文件中添加

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then

echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled

fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then

echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag

fi

然后重新启动服务器

8、配置/etc/hosts

在每台服务器的/etc/hosts进行配置,配置方式为: IP    hostname

格式,示例如下

192.168.4.202    hostname1

192.168.4.203    hostname2

9、配置互通无密码连接

执行: ssh-keygen

然后一路回车

cd ~/.ssh

cat id_rsa.pub

将需要免密码登录到其他服务器的公钥复制,然后在每台要连接到的机器上执行

cd ~/.ssh

vim authorized_keys

将复制好的公钥粘贴上去,保存。然后执行: chmod 600 authorized_keys

然后执行:ssh 主机名

然后按照提示输入yes,所有的服务器都做一遍。

10、配置启动ntp服务

执行

sudo yum install ntp

sudo chkconfig ntpd on

sudo service ntpd start

结束

三、创建本地源

1、 下载源文件

Ambari:http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.1.0/ambari-2.2.1.0-centos6.tar.gz

HDP:http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0/HDP-2.4.0.0-centos6-rpm.tar.gz

HDP_UTILS:http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6/HDP-UTILS-1.1.0.20-centos6.tar.gz

JDK:http://download.oracle.com/otn/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz

http://public-repo-1.hortonworks.com/ARTIFACTS/jdk-8u60-linux-x64.tar.gz

JCE:http://public-repo-1.hortonworks.com/ARTIFACTS/jce_policy-8.zip

2、下载源配置文件

Ambari源:

sudo wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.1.1/ambari.repo -O /etc/yum.repos.d/ambari.repo

HDP源:

sudo wget -nv http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0/hdp.repo -O /etc/yum.repos.d/hdp.repo

3、创建本地源服务

1)安装httpd

sudo yum install httpd

sudo chkconfig httpd on

sudo service httpd start

2)创建源

sudo yum install yum-utils createrepo

sudo mkdir -p /var/www/html/

切换到安装包目录

sudo tar xzvf ambari-2.2.1.0-centos6.tar.gz -C /var/www/html/

sudo tar xzvf HDP-2.4.0.0-centos6-rpm.tar.gz -C /var/www/html/

sudo tar xzvf HDP-UTILS-1.1.0.19-centos6.tar.gz -C /var/www/html/

sudo mkdir -p /var/www/html/java

sudo mv jdk-8u60-linux-x64.gz /var/www/html/java/

sudo mv jce_policy-8.zip /var/www/html/java/

3)重启httpd服务

sudo service httpd restart

4)配置repos文件

sudo vim /etc/yum.repos.d/ambari.repo

修改如下:

#VERSION_NUMBER=2.2.1.1-161

baseurl=http://192.168.234.145/AMBARI-2.2.1.0/centos6/2.2.1.0-161

gpgkey=http://192.168.234.145/AMBARI-2.2.1.0/centos6/2.2.1.0-161/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

保存。

sudo vim /etc/yum.repos.d/hdp.repo

[HDP-2.4.0.0]下修改如下:

#VERSION_NUMBER=2.4.0.0-161

baseurl=http://192.168.234.145/HDP/centos6/2.x/updates/2.4.0.0

gpgkey=http://192.168.234.145/HDP/centos6/2.x/updates/2.4.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

[HDP-UTILS-1.1.0.20]下修改如下:

baseurl=http://192.168.234.145/HDP-UTILS-1.1.0.19/repos/centos6

gpgkey=http://192.168.234.145/HDP-UTILS-1.1.0.19/repos/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

保存。

四、MySQL安装

1、下载安装包

wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-5.6.30-1.linux_glibc2.5.x86_64.rpm-bundle.tar -P ~/packages

2、安装过程

cd ~/packages

tar xvf MySQL-5.6.30-1.linux_glibc2.5.x86_64.rpm-bundle.tar

sudo rpm -qa | grep mysql

sudo rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64

sudo yum search libaio

sudo yum install libaio-devel.x86_64

sudo rpm -ivh MySQL-client-5.6.25-1.linux_glibc2.5.x86_64.rpm

sudo rpm -ivh MySQL-devel-5.6.25-1.linux_glibc2.5.x86_64.rpm

sudo rpm -ivh MySQL-server-5.6.25-1.linux_glibc2.5.x86_64.rpm

3、配置过程(配置文件/etc/my.cnf)

[client]

default-character-set=utf8

[mysqld]

datadir=/data/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

#default-character-set=utf8

character_set_server=utf8

init_connect='SET NAMES utf8'

innodb_buffer_pool_size=64M

max_connections=800

wait_timeout=86400

[mysqld_safe]

default-character-set=utf8

log-error=/var/log/mysql/mysql.log

pid-file=/var/run/mysql/mysql.pid

4、初始化设置

sudo mkdir -p /data/mysql

sudo chown mysql:mysql /data/mysql

sudo mkdir -p /var/lib/mysql

sudo chown mysql:mysql /var/lib/mysql

sudo mkdir -p /var/log/mysql

sudo chown mysql:mysql /var/log/mysql

sudo mkdir -p /var/run/mysql

sudo chown mysql:mysql /var/run/mysql

sudo mysql_install_db

sudo service mysql start

sudo /usr/bin/mysql_secure_installation

Set root password? [Y/n]Y

输入两次密码

New password:

Re-enter new password:

Remove anonymous users? [Y/n]Y

Disallow root login remotely? [Y/n]n

Remove test database and access to it? [Y/n]Y

Reload privilege tables now? [Y/n]Y

5、可能问题

执行: sudo /usr/bin/mysql_secure_installation

报错

Enter current password for root (enter for none):

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

这是由于: /var/lib/mysql/mysql.sock

在该命令文件里写死了,可以手工设置

mysql -uroot

mysql> set password=PASSWORD("sdfsad#23234$");

mysql> flush privileges;

五、Ambari安装部署(在ambari-server服务器上部署)

1、安装ambari-server

sudo yum search ambari-server

sudo yum install ambari-server

2、 配置java发布源(默认网上下载地址)

sudo vim /etc/ambari-server/conf/ambari.properties

jdk1.8.url=http://192.168.234.145/java/jdk-8u60-linux-x64.tar.gz

jdk1.8.jcpol-url=http://192.168.234.145/java/jce_policy-8.zip

3、配置ambari-server

sudo ambari-server setup

Customize user account for ambari-server daemon [y/n] (n)?y

Enter user account for ambari-server daemon (root):ambari

Checking JDK...

[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8

[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7

[3] Custom JDK

==============================================================================

Enter choice (1):1

Do you accept the Oracle Binary Code License Agreement [y/n] (y)? y

Enter advanced database configuration [y/n] (n)?y

==============================================================================

Choose one of the following options:

[1] - PostgreSQL (Embedded)

[2] - Oracle

[3] - MySQL

[4] - PostgreSQL

[5] - Microsoft SQL Server (Tech Preview)

[6] - SQL Anywhere

==============================================================================

Enter choice (1):3

Hostname (localhost): cent00

Port (3306): 3306

Database name (ambari): ambari

Username (ambari): ambari

Enter Database Password (bigdata):

Re-enter password:

WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java.

新开窗口,单独执行:

sudo mkdir -p /usr/share/java

cd /usr/share/java

sudo rz -y

添加mysql-connector-java-5.1.35-bin.jar

返回点击Enter继续

WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

新开窗口,执行

mysql -uroot -p123456

mysql>create database ambari;

mysql>grant all privileges on ambari.* to ambari@cent00 identified by '123456';

mysql>flush privileges;

mysql>use ambari;

mysql>source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;

返回原窗口

Proceed with configuring remote database connection properties [y/n] (y)? y

若返回: Ambari Server 'setup' completed successfully.

安装成功

添加MySQ连接器jdbc:cd /usr/lib/ambari-server

上传jar包mysql-connector-java-5.1.35-bin.jar

4、启动ambari-server

sudo service ambari-server start

返回:Ambari Server 'start' completed successfully.

启动成功

5、修改ambari-server访问端口

在部署server的服务器上执行:sudo vim /etc/ambari-server/conf/ambari.properties

在文件末尾添加:client.api.port=端口号

保存,重启生效。

六、配置部分

1)、登录server,登录地址:http://192.168.234.145:8080/#/login

2)、初始用户名密码:admin/admin

3)、进入主页面:

4)、点击Users,可以进入用户管理页面,此处可以添加用户或进行密码修改。

安装过程

点击launch Install Wizard,进入如下页面

填写集群名称并点击Next

选择安装包

进入如下页面:

选择HDP2.4,高级选项,展开如下页面:

配置HDP和HDP-UTILS本地源路径,然后Next

配置连接服务器

进入如下页面:

添加服务器列表ubt202-ubt206,下载ubt202的/home/Ubuntu/.ssh/id_rsa文件到本地,然后点击“选择文件”上传,填写登录名,然后点击“Register and Confirm”,出现如下弹框:

点击“OK”,出现以下对话框

我们不管他,点“OK”继续。跳转到:

当状态变为如下:

先点击“Click here to see the warnings”看警告是否要紧。如果不要紧点击“Next”继续。如果有警告未处理,会弹窗:

需要处理则点“Cancel”,否则“OK”,这里我们选择处理警告。

警告处理

关闭THP,执行如下命令:

vi /etc/init.d/disable-transparent-hugepages

复制如下内容到该文件并保存:

#!/bin/sh

### BEGIN INIT INFO

# Provides:  disable-transparent-hugepages

# Required-Start:$local_fs

# Required-Stop:

# X-Start-Before:mongod mongodb-mms-automation-agent

# Default-Start: 2 3 4 5

# Default-Stop:  0 1 6

# Short-Description: Disable Linux transparent huge pages

# Description:   Disable Linux transparent huge pages, to improve

#database performance.

### END INIT INFO

case $1 in

  start)

    if [ -d /sys/kernel/mm/transparent_hugepage ]; then

      thp_path=/sys/kernel/mm/transparent_hugepage

    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then

      thp_path=/sys/kernel/mm/redhat_transparent_hugepage

    else

      return 0

    fi

    echo 'never' > ${thp_path}/enabled

    echo 'never' > ${thp_path}/defrag

    unset thp_path

  ;;

esac

然后执行命令:

sudo chmod 755 /etc/init.d/disable-transparent-hugepages

sudo update-rc.d disable-transparent-hugepages defaults

然后重启服务器(这部一定要提前做)

之后从页面登录开始把前面做的部分重新做一遍

卸载多余安装包使用命令,具体如下图所示:

图中黄色三角形的部分为有警告,点开可以看到详情。详情部分Package对应的列为安装包,后面host表示当前有多少台机器安装了该安装包,鼠标悬浮可以看到具体的服务器。然后到对应服务器上执行命令:

sudo yum remove 安装包

然后点击“Return Checks”。需要注意的是,如果对服务用途不了解,千万不要轻易清理,否则可能导致系统异常。上图中除了pure-ftpd、pure-ftpd-common、lrzsz服务外,其他基本都与系统有关。尤其zlibc服务一旦卸载,所有的ambari-agent会全部宕掉,导致部署无法继续。

处理ntp服务警告,点开警告显示:

机器上都没有安装ntp服务.

在线安装:sudo yum install ntp

启动:sudo service ntp start

关闭:sudo service ntp stop

点击“close”关闭警告窗口,然后点击“Next”继续

服务安装

选择服务,进入如下页面:

然后点击“Next”继续。这时会提示所选服务对Pig和Tez有依赖,要求添加,如下图所示:

这时点击“OK”即可,然后进入下一页,为各个节点分配不同角色,如下图:

为各服务器分配不同角色及服务,然后点击“Next”继续。

进入slaves和clients分配页面:

选定个角色,点击“Next”继续。进入如下页面:

图中红圈部分表示有异常,需要手工处理。

登录MySQL库,创建库并分配权限,如下:

填充上图中的Database Password,并点击“Test Connection”

链接测试结束后,点击最下方“Next”会有报错如下:

打印集群配置信息如下:

然后点击“Deploy”,进入安装进度页面,系统自动安装部署刚才选择的服务,具体显示如下:

安装状态并不正常,有5处警告。接下来处理警告,点开warings entered查看:

红色叹号的地方是报异常的服务,点击查看异常原因,如下:

在当前页面无法处理告警异常,我们可以点击OK关闭,回到“Install,Start and Test”页面,点击“Next”继续。进入“Summary”页面:

此处显示有5处告警,且服务启动失败。异常可以之后再调,点击“Complete”完成安装。

异常解决

完成安装过程后,进入HDP管理界面,如下图所示:

图中红色部分均包含异常,下面依次解决各异常:

HDFS异常

点击HDFS,进入页面:

在图中NameNode、SNameNode、DataNode都有异常。

首先点击NameNode,进入界面:

选择NameNode下的start,点击启动,弹出确认框,点击“OK”,进入界面:

当启动失败,会显示进度条为红色。此时点击三次跳转即可进入启动日志,如下:

红色箭头部分标注的就是错误位置。通过跟踪,发现是由于我们设置的数据库密码是数字“123456”,正常情况下是字符串正常,此处被解析成int型报错,解决方法,打开文件/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py,定位141行找到如下代码块:

统一改成:

保存。然后重新启动NameNode成功。

同理,SNameNode、DataNode节点的服务器也都是同样的问题,对应改一下,重新启动就OK了。返回Services、HDFS界面如下:

红箭头处查看一下,因为问题刚刚处理完,有一些信息尚未刷新过来,会有一点延迟,延迟过后状态显示如下:

状态正常,HDFS问题解决。

MapReduce2异常

在Services页面点击MapReduce2,进入页面:

启动“History Server”,启动正常。

查看右上角“alters”,半分钟左右自动变为正常。

YARN异常

在Services页面点击MapReduce2,进入页面:

启动各服务,查看“alerts”,结果显示如下:

此为ResourceManager的Web访问端口连接不了。查看ubt202上的ResourceManager日志,报错:

Zookeeper异常,可以先解决完,再回来看ResourceManager。结果ResourceManager状态也正常了。

Hive异常

点击Services页面的Hive,进入页面:

启动服务,启动Hive MetaStore如下:

启动结果显示失败,查看日志:

将文件mysql-connector-java-5.1.35-bin.jar上传到ubt202服务器的/var/lib/ambari-server/resources目录,重命名为mysql-jdbc-driver.jar,然后重新启动Hive Metastore,成功。

其他两个服务直接启动后,Hive正常。

Hbase异常

点击Services页面进入Hbase服务:

启动各服务之后Hbase状态恢复正常,如下:

 ZooKeeper异常

点击Services页面进入Zookeeper服务:

启动完毕后状态如下:

Storm异常

点击Services页面进入Storm服务

启动各服务:

Storm恢复正常。

Ambari Metrics异常

点击Services页面进入Ambari Metrics服务

启动各服务

Kafka异常

点击Services页面进入Kafka服务

启动Kafka Broker,问题解决:

Spark异常

点击Services页面进入Spark服务

启动各服务:

Spark恢复正常。

一会我们再依次解决。先配置HA,点击“Services”、“HDFS”“Service Actions”、“Enable NameNode HA”

配置高可用HA

配置HDFS

点击“Services”、“HDFS”“Service Actions”、“Enable NameNode HA”,进入如下页面:

添加服务ID,点击“Next”,继续

选择角色,点击继续

使用默认配置,然后继续

按照说明执行相关命令,Next会由不可用变为可用状态,点击继续

各组件字段配置完成,点击继续

按照说明执行命令,Next变为可用状态,点击继续

等待执行完毕,点击继续

按说明执行命令,点击继续,弹窗

点击“OK”确认,进入HA Setup界面

等待完成。点击“Done”结束

配置YARN

点击“Services”、“YARN”“Service Actions”、“Enable ResourceManager HA”,进入如下页面:

点击Next继续,进入页面

当前NameNode不可更改,选择一台机器做备份节点,点击继续:

使用默认配置,点击继续:

待服务全部启动,完成。

2、ambari搭建HDP集群的更多相关文章

  1. 基于Ambari Server部署HDP集群实战案例

    基于Ambari Server部署HDP集群实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署Ambari Server端 博主推荐阅读: https://www.c ...

  2. 使用Ambari部署hadoop集群

    准备工作 1. 设置sudo免密码登陆 由于CentOS安装之后,普通用户无sudo权限,故应该设置sudo权限. 参考文章:http://www.cnblogs.com/maybob/p/32988 ...

  3. 手把手教你通过Ambari新建Hadoop集群图解案例

    手把手教你通过Ambari新建Hadoop集群图解案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 登陆系统之后,会看到Ambari空空如也的欢迎界面,接下来我们就需要介绍如何通 ...

  4. Ambari2.7.3 和HDP3.1.0搭建Hadoop集群

    一.环境及软件准备 1.集群规划   hdp01/10.1.1.11 hdp02/10.1.1.12 hdp03/10.1.1.13 hdp04/10.1.1.14 hdp05/10.1.1.15 a ...

  5. AMBARI部署HADOOP集群(4)

    通过 Ambari 部署 hadoop 集群 1. 打开 http://192.168.242.181:8080  登陆的用户名/密码是 : admin/admin 2. 点击 “LAUNCH INS ...

  6. ambari部署Hadoop集群(2)

    准备本地 repository 1. 下载下面的包 wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3 ...

  7. MongoDB 搭建分片集群

    在MongoDB(版本 3.2.9)中,分片是指将collection分散存储到不同的Server中,每个Server只存储collection的一部分,服务分片的所有服务器组成分片集群.分片集群(S ...

  8. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  9. 使用Windows Azure的VM安装和配置CDH搭建Hadoop集群

    本文主要内容是使用Windows Azure的VIRTUAL MACHINES和NETWORKS服务安装CDH (Cloudera Distribution Including Apache Hado ...

随机推荐

  1. Java复习6异常处理

    Java复习6.异常处理 20131005 前言: Java中的异常处理机制是非常强大的,相比C++ 来说,更加系统.但是我们开发人员没有很好的使用这一点.一些小的程序是没有什么问题的,但是对于大型项 ...

  2. redis在.net架构中的应用(1)--利用servicestack连接redis

    引言:作为少有的.net架构下的大型网站,stackoverflow曾发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/sta ...

  3. c# 让double保留两位小数

    1.Math.Round(0.333333,2);//按照四舍五入的国际标准2.    double dbdata=0.335333;    string str1=String.Format(&qu ...

  4. bzoj2501

    题解: 显然,每当进入一个小的边界,那么我们的ans+1,出去一个大的边界,ans-1 然后,我们将每一个边界排序,时间小的在前,大的在后 每一次进来一个,如果是左边的边界,+1,右边的-1 然后输出 ...

  5. CMDB开发(需求分析)

    浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central ...

  6. $.ajaxSetup

    <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> ...

  7. vim学习相关链接

    1:http://blog.csdn.net/niushuai666/article/details/7275406 2:http://ju.outofmemory.cn/entry/79671 3. ...

  8. 添加courses模块

    startapp courses from django.db import models from datetime import datetime # Create your models her ...

  9. SQL查询执行步骤

    1.总结 执行顺序 3.select ...聚合函数 from 表名 1.where ... 2.group by ... 4.having ... 5.order by ... 6.limit .. ...

  10. php pdo调用SQLServer存储过程无法获取返回结果

    确定存储过程写的没问题,php调用后,跟踪了语句,也是没问题,就是获取不到返回结果.折腾,搞定. 较之前明确了1. 调用存储过程传参的写法: 2. 获取返回结果集的方法 参考: http://blog ...