Hortonworks Hadoop 2.4.2安装、配置
1简介
此手册应用于Hortonworks Hadoop(HDP2.4.2)的安装、使用。
1.1 参考资料
1.2 环境说明
操作系统 64位redhat6.5,JDK 1.7.67,mysql 5.6.14
2 常规hortonworks官方文档安装步骤
2.1 Ambari、HDP兼容关系表
2.2 基本配置要求
操作系统:
• Red Hat Enterprise Linux (RHEL) v7.x
• Red Hat Enterprise Linux (RHEL) v6.x
• CentOS v7.x
• CentOS v6.x
• Debian v7.x
• Oracle Linux v7.x
• Oracle Linux v6.x
• SUSE Linux Enterprise Server (SLES) v11 SP4 (HDP 2.2 and later)
• SUSE Linux Enterprise Server (SLES) v11 SP3
• SUSE Linux Enterprise Server (SLES) v11 SP1 (HDP 2.2)
• Ubuntu Precise v12.04
• Ubuntu Trusty v14.04
浏览器:
Windows (7, 8)
• Internet Explorer 10
• Firefox 18
• Google Chrome 26
• Mac OS X (10.6 or later)
• Firefox 18
• Safari 5
• Google Chrome 26
• Linux (CentOS, Debian, Oracle Linux, RHEL, SLES, Ubuntu)
• Firefox 18
• Google Chrome 26
软件:
yum and rpm (RHEL/CentOS/Oracle Linux)
• zypper and php_curl (SLES)
• apt (Debian/Ubuntu)
• scp, curl, unzip, tar, and wget
• OpenSSL (v1.01, build 16 or later)
• Python
• For CentOS 6: Python 2.6.*
• For SLES 11: Python 2.6.8 or later
• For CentOS 7, Ubuntu 12,Ubuntu 14, and Debian 7: Python 2.7.*
JDK:
• Oracle JDK 1.8 64-bit (minimum JDK 1.8_60) (default)
• Oracle JDK 1.7 64-bit (minimum JDK 1.7_67)
• OpenJDK 8 64-bit (not supported on SLES)
• OpenJDK 7 64-bit (not supported on SLES)
元数据存储:(Postgres 8.x, 9.3+、MySQL 5.6、Oracle 11g r2、SQL Server 2008 R2+)
• PostgreSQL 8
• PostgreSQL 9.1.13+, 9.3
• MySQL 5.6
• Oracle 11gr2, 12c
注:这里推荐以mysql作为元数据数据库
内存要求:
Ambari所在机器至少有1 GB RAM,其中有500M空闲.
2.3 安装规划
• 每台节点里配置主机全域名,The fully qualifieddomain name (FQDN)
• 每个主机里要安装组件规划
• 要存储数据的主目录
• NameNode数据目录
• DataNodes数据目录
• Secondary NameNode数据目录
• Oozie数据目录
• YARN数据目录
• ZooKeeper数据目录
• 各种日志、pid、数据库文件目录
2.4 准备环境
注:以下以Redhat 6.5为例.
2.4.1 配置SSH免密码登录
#主节点里执行如下步骤
ssh-keygen
cd ~/.ssh/
cat id_rsa.pub >>authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#分别拷贝节点内的id_rsa.pub到一台主节点内,并追加到主节点的authorized_keys
#分发主节点里配置好的authorized_keys到各从节点
2.4.2 开启NTP服务
yum install ntpd
chkconfig ntpd 开启
注: 默认ntpd服务已经安装,如果没安装,执行yum install ntpd(配置本地源的的方式或则连外网源)
2.4.3 检查DNS和NSCD
以ambari在安装时需要配置全域名,所以需要检查DNS。为了减轻DNS的负担, 建议在节点里用 Name Service Caching Daemon (NSCD)。
vi /etc/hosts
192.168.56.21name.hadoop
192.168.56.22datanode1.hadoop
192.168.56.23datanode2.hadoop
#每台节点里配置FQDN,如下以主节点为例.
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=name.hadoop
2.4.4 关闭防火墙
chkconfig iptables off
/etc/init.d/iptables stop
#service iptables stop
2.4.5 关闭SELinux
1)查看SELinux状态:
1、/usr/sbin/sestatus -v
##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、getenforce ##也可以用这个命令检查
2)关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
3)重启机器即可
2.4.6 创建系统用户和系统组
添加ambari安装、运行用户到组.
useradd -G amabri amabri
2.4.7 配置操作系统本地源
1) 虚拟机里加载操作系统iso镜像.
#选中一虚拟机点击设置→点击存储→点击没有盘片→选择ISO所在路径。
2) 创建目录以挂载操作系统镜像
mkdir /mnt/cdrom
3) 再挂载镜像到新建目录下
mount -t iso9660 /dev/`lsblk |grep rom | awk '{print $1}'` /mnt/cdrom
4) 配置本地系统源
cd /etc/yum.repos.d
cp rhel-source.repo rhel.repo
mv rhel-source.repo source.repo_bak
vi rhel.repo
[rhel-source]
name=RedHat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
yum clean all
yum list update
yum makecache
2.4.8 安装JDK
#安装前,需要卸载系统内置的JDK
rpm -qa | grep jdk | xargs rpm -e--nodeps
#安装解压版jdk
cd /mnt/sf/public
tar –zxvf jdk-7u67-linux-x64.tar.gz
vi /etc/profile
exportJAVA_HOME=/mnt/sf/public/jdk1.7.0_67
exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
2.4.9 安装http服务器
yum install httpd
service httpd start
#修改网站默认的跟目录
vi /etc/httpd/conf/httpd.conf
#
# DocumentRoot: Thedirectory out of which you will serve your
# documents. Bydefault, all requests are taken from this directory, but
# symbolic links andaliases may be used to point to other locations.
#
DocumentRoot"/mnt/sf/html"
#
# This should bechanged to whatever you set DocumentRoot to.
#
<Directory"/mnt/sf/html">
2.4.10 安装mysql
rpm –ivh MySQL-server-5.6.14-1.el6.x86_64.rpm
rpm –ivh MySQL-client-5.6.14-1.el6.x86_64.rpm
service mysql start
cat /root/.mysql_secret
#The random password set for the root user at Fri May 20 17:54:33 2016 (localtime): aX71HiTT
mysql –uroot -p aX71HiTT
set password=password(‘root’)
#创建用户并分配权限
CREATE USER 'ambari'@'%'IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
GRANT ALL PRIVILEGES ON *.* TO root@'%';
FLUSH PRIVILEGES;
2.4.11 配置安装源
注:鉴于多数集群生产环境不能上网,所以安装时采用本地源的方式.具体为先下载附录中的ambari、HDP、HDP-UTILS的tar包然后再配置到本地源中。
#ambari和HDP(含HDP-UTILS)源
a)Ambari2.2.2源
操作系统 | 格式 | URL地址 |
RedHat 6 CentOS 6 Oracle Linux 6 | Base URL | http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0 |
Repo File | http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0/ambari.repo | |
Tarball md5 | asc | http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0/ ambari-2.2.2.0-centos6.tar.gz |
b)HDP 2.4源
操作系统 | 版本号 | 源名称 | 格式 | URL地址 |
RedHat 6 CentOS 6 Oracle Linux 6 | HDP-2.4.2.0 | HDP | Base URL | http://public-repo-1.hortonworks.com/HDP/centos6/2.x/ updates/2.4.2.0 |
Repo File | http://public-repo-1.hortonworks.com/HDP/centos6/2.x/ updates/2.4.2.0/hdp.repo | |||
Tarball md5 | asc | http://public-repo-1.hortonworks.com/HDP/centos6/2.x/ updates/2.4.2.0/HDP-2.4.2.0-centos6-rpm.tar.gz | |||
HDP-UTILS | Base URL | http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/ repos/centos6 | ||
Repo File | http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/ repos/centos6/HDP-UTILS-1.1.0.20-centos6.tar.gz |
1) 下载如下组件并拷贝到主节点的 httpd网站根目录,即/mnt/sf/html内后解压
Ambari 2.2.2:
HDP 2.4.2:
HDP-UTILS-1.1.0.20:
注:事实证明HDP、HDP-UTILS源不需要配置,ambari安装时可以指定本地源,并在各个节点里创建repo文件.ambari的源需要配置,因为安装采用yum install ambari方式.
vi ambari.repo
#VERSION_NUMBER=2.2.2.0-460
[Updates-ambari-2.2.2.0]
name=ambari-2.2.2.0 -Updates
baseurl=http://192.168.56.21/AMBARI-2.2.2.0/centos6/2.2.2.0-460/
gpgcheck=1
gpgkey=http://192.168.56.21/AMBARI-2.2.2.0/centos6/2.2.2.0-460/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
vi hdp.repo
#VERSION_NUMBER=2.4.2.0-258
[HDP-2.4.2.0]
name=HDP Version -HDP-2.4.2.0
baseurl=http://192.168.56.21/HDP/centos6/2.x/updates/2.4.2.0
gpgcheck=1
gpgkey=http://192.168.56.21/HDP/centos6/2.x/updates/2.4.2.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
[HDP-UTILS-1.1.0.20]
name=HDP Utils Version- HDP-UTILS-1.1.0.20
baseurl=http://192.168.56.21/HDP-UTILS-1.1.0.20/repos/centos6
gpgcheck=1
gpgkey=http://192.168.56.21/HDP/centos6/2.x/updates/2.4.2.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
yum clean all
yum list update
yum makecache
yum repolist
2.5 执行安装
Yum方式安装ambari。
2.5.1 安装ambari2.2.2
1)安装ambari
yum install ambari-server
2)配置amabri
ambari-server setup
Customize user account for ambari-server daemon [y/n] (n)?
输入:y
Enter user account for ambari-server daemon (root):
注:这里亦可选择用户amabri,届时会让提供该用户的密码等信息.
输入:root
检查防火墙是否关闭
Adjusting ambari-server permissions and ownership...
Checking firewall...
WARNING: iptables is running. Confirm the necessary Ambari ports areaccessible. Refer to the Ambari documentation for more details on ports.
OK to continue [y/n] (y)?
输入:y
检查JDK
Checking JDK...
[1] - Oracle JDK 1.7 + Java Cryptography Extension (JCE)Policy Files 7
[2] - Oracle JDK 1.6 + Java Cryptography Extension (JCE) Policy Files 6
[3] - Custom JDK
==============================================================================
Enter choice (1):
输入:3
输入:/mnt/sf/public/jdk1.7.0_67
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
==============================================================================
Enter choice (1):
输入:3
Hostname (localhost):
Port (3306):
Database Name (ambari):
Username (ambari):
输入:(什么也不输入,直接“回车”)
Enter Database Password (cluster):
Re-enter password:
输入:ambari
WARNING: Before starting Ambari Server, youmust run the following DDL against the database to create the schema:/var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
注:这里需要以mysql的amabri用户在ambari数据库里source上面的sql文件,作用时初始化ambari数据库。
Proceed with configuring remote database connectionproperties [y/n] (y)?
输入:y
2) 启动ambari服务
ambari-server start
Using python /usr/bin/python2.6
Starting ambari-server
Ambari Server running with 'root' privileges.
Organizing resource files at/var/lib/ambari-server/resources...
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start....................
Ambari Server 'start' completed successfully.
注:启动ambari访问前,请确保mysql驱动已经放置在/usr/share/java内且名字是mysql-connector-java.jar不然ambari server启动时会报错mysql驱动找不到的错误.具体报错见:
21 May 2016 20:48:28,985 ERROR [main]DBAccessorImpl:106 - Error while creating database accessor
java.lang.ClassNotFoundException:com.mysql.jdbc.Driver
atjava.net.URLClassLoader$1.run(URLClassLoader.java:366)
atjava.net.URLClassLoader$1.run(URLClassLoader.java:355)
atjava.security.AccessController.doPrivileged(Native Method)
atjava.net.URLClassLoader.findClass(URLClassLoader.java:354)
atjava.lang.ClassLoader.loadClass(ClassLoader.java:425)
atsun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
atjava.lang.ClassLoader.loadClass(ClassLoader.java:358)
atjava.lang.Class.forName0(Native Method)
atjava.lang.Class.forName(Class.java:190)
2.5.2 安装HDP2.4.2
登录ambari服务器以8080端口访问.如下是ambari界面化安装时的部分截图:
#集群初始化
注:主机确认有个openssl的bug导致主机注册始终不通过。具体报错见:
Failed to connect to https://name.hadoop:8440/cert/cadue to [Errno 1] _ssl.c:492: error:100AE081:elliptic curveroutines:EC_GROUP_new_by_curve_name:unknown group
解决办法是升级openssl-1.0.1e-15.el6.x86_64到更高版本,具体做法是配置163操作系统源.
在http://mirrors.163.com/.help/centos.html里点击下载centos6的源
拷贝该repo文件到/etc/ yum.repos.d
#编辑该源文件并修改内容成如下:
vi CentOS6-Base-163.repo
[base]
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/6/os/x86_64/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
gpgcheck=0
#gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
yum clean all
yum list update
yum makecache
yum upgrade openssl
#分发到其它节点做同样的事情
scp CentOS6-Base-163.reporoot@192.168.56.22:/etc/yum.repos.d/
主机检查时出现TransparentHuge Pages Issues (1)
解决方法:执行下面的命令可临时解决这个警告:
echo never >/sys/kernel/mm/redhat_transparent_hugepage/defrag
永久解决:
vi /etc/rc.local
在文件的最后添加下面的行,保存即可。
echo never >/sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never >/sys/kernel/mm/transparent_hugepage/enabled
前期配置顺利,直接按照界面化安装出错信息,排错。很容易到最终的安装.
3 问题
已分散到各章节内。
4总结
具体问题具体分析,以log为准。