使用Ambari-2.2.2快速构建大数据处理集群
2017-05-18 00:00
597 查看
本文档为使用Ambari快速构建大数据集群的参考文档。我们将使用下表所示3台服务器构建大数据集群,使用xwhadoop225作为Ambari Server,使用xwhadoop225~xwhadoop227作为Ambari Agent。具体步骤如下:
官方参考文档:
Ambari安装:https://cwiki.apache.org/confluence/display/AMBARI/Install+Ambari+2.2.2+from+Public+Repositories
HDP Repositories信息:http://docs.hortonworks.com/HDPDocuments/Ambari-2.2.1.0/bk_Installing_HDP_AMB/content/_hdp_24_repositories.html
服务器信息:
Ambari角色分配:
软件版本:
1. 环境准备
以下步骤(1.1~1.7)是需要在所有服务器上执行的,现以操作172.17.93.225为例:
1.1 修改计算机名,便于管理
1.2 配置本地DNS,便于网络访问
1.3 禁用THP(Transparent Huge Pages)
1.3.1 查看THP的启用状态
如上所示,[always]状态说明是启用的,需要禁用掉。
1.3.2 禁用THP
我们这个时候当然可以逐个修改上述两文件,来禁用THP,但要想一劳永逸的令其永久生效, 还是参考下列的步骤。
1.4 禁用selinux服务
1.4.1 查看selinux启用状态
如上所示,selinux状态为Disabled,即禁用状态。
1.5 关闭防火墙&禁止开机自启
1.5.1 关闭防火墙
a) 查看防火墙启用状态
如上所示,防火墙服务firewalld状态为inactive (dead),即非活动状态。
b) 若防火墙为活动状态,则关闭
如上所示,防火墙服务firewalld状态为active (running),即活动状态。则需要关闭
1.5.2 禁止防火墙开机自启
a) 查看防火墙是否开机自启
如上所示,防火墙服务firewalld开启自启状态为disabled,即开机不自启。
b) 若防火墙为开启自启,则关闭
如上所示,防火墙服务firewalld开启自启状态为enabled,即开机自启。则需要关闭
1.6 安装ntp服务,以供Ambari做集群时间同步使用
1.7 安装jdk(版本jdk1.8.0_121),并配置环境变量
1.7.1 下载jdk软件包jdk-8u121-linux-x64.tar.gz至目录/root/package/下
1.7.2 安装jdk
1.7.3 配置环境变量
1.7.4 查看java版本,验证jdk成功安装且已添加至环境变量
如上所示,jdk1.8.0_121已成功安装
1.8 配置Ambari Server(xwhadoop225)到Ambari Agent(xwhadoop225~xwhadoop227)的SSH免密登录
1.8.1 配置SSH免密登录
注:ssh-copy-id -i 是最简单的办法,如果不用这个,就得分二个步骤:
a) 先scp 将本机的id_rsa.pub复制到对方机器的.ssh目录下
b) 在对方机器上执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 导入公钥
1.8.2 验证SSH免密登录是否成功
1.9 配置ambari和HDP本地yum源
使用xwhadoop225制作ambari和HDP本地yum源,以下步骤在xwhadoop225上执行
1.9.1 下载ambari.repo并同步ambari相关软件安装包
1.9.2 下载hdp.repo并同步hdp相关软件安装包
与1.9.1同理,不再赘述。操作完毕,将会在/ect/yum.repo.d/repo-Local目录下存在HDP- 2.4.0.0和HDP-UTILS-1.1.0.20两个非空文件夹。
1.9.3 安装Nginx,配置可供网络访问的yum源
1.9.4 配置ambari安装源为本地yum源
2. Ambari Server安装配置
以下步骤(2.1~2.3)只需要在Ambari Server所在服务器xwhadoop225上执行:
2.1 安装mysql-server,存储Ambari Server的元数据
2.2安装ambari-server
2.3配置ambari-server
以下操作将会与命令行交互进行
上图各个步骤详解:
1. 是否指定一个用户运行ambari-server后台进程[y/n]? 输入n;
2. 是否改变默认使用的Oracle JDK[y/n]? 输入y;
3. 上一步输入y,这一步要选择一个JDK版本。 输入3(自定义JDK);
4. 输入自定义的JAVA_HOME。 输入之前步骤中已经安装的JDK目录/usr/local/java/jdk1.8.0_121;
5. 是否进入高级数据库配置选项[y/n]?Ambari默认会使用自己的PostgreSQL,我们使用MySQL代替。 输入3;
6. 配置MySQL的连接信息:Hostname、Port、Database name、Username、Password;
7. 提示需要拷贝Mysql JDBC driver JAR到/usr/share/java目录。基于之前的经验,已经按照提示将mysql-connector-java-5.1.29.jar 放到了/usr/share/java目录下,但启动时仍会抛异常Caused by:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。需要在/usr/lib/ambari-server目录下创建软链接,指向/usr/share/java/mysql-connector-java-5.1.29.jar,解决;
# 创建目录/usr/share/java
mkdir /usr/share/java
# 将放置在软件包目录/root/package中的 mysql-connector-java-5.1.29.jar拷贝至/usr/share/java目录
cp ~/package/mysql-connector-java-5.1.29.jar /usr/share/java
# 在/usr/lib/ambari-server目录下创建软链接,指向/usr/share/java/mysql-connector-java-5.1.29.jar
ln –s /usr/share/java/mysql-connector-java-5.1.29.jar /usr/lib/ambari-server/mysql-connector-java-5.1.29.jar
8. 提示需要在6中指定的MySQL DB中执行一个SQL脚本,以创建Ambari Server将要使用的相关表;
# 远程执行sql脚本
mysql -h xwhadoop225 -u ambari -pambari -D ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
9. 是否继续进行远程数据库连接属性配置? 输入y(Ambari会远程连接刚刚指定的MySQL数据库进行相关配置);
10. 提示Ambari Server配置成功完成。
3. 安装Hadoop等组件
浏览器访问http://xwhadoop225:8080,即可通过Ambari管理界面进行集群安装。
官方参考文档:
Ambari安装:https://cwiki.apache.org/confluence/display/AMBARI/Install+Ambari+2.2.2+from+Public+Repositories
HDP Repositories信息:http://docs.hortonworks.com/HDPDocuments/Ambari-2.2.1.0/bk_Installing_HDP_AMB/content/_hdp_24_repositories.html
服务器信息:
IP | 172.17.93.225 | 172.17.93.226 | 172.17.93.227 |
主机名 | xwhadoop225 | xwhadoop226 | xwhadoop227 |
操作系统 | CentOS Linux release 7.2.1511 (Core) | ||
内存 | 8G | ||
CPU | 线程数4 | ||
磁盘 | 存储盘:/dev/vdb1 on /hadoop |
主机名 | xwhadoop225 | xwhadoop226 | xwhadoop227 |
Ambari角色 | Ambari Server、 Ambari Agent | Ambari Agent | Ambari Agent |
软件 | 版本 |
Jdk | jdk1.8.0_121 |
Ambari | 2.2.2 |
HDP | 2.4 |
以下步骤(1.1~1.7)是需要在所有服务器上执行的,现以操作172.17.93.225为例:
1.1 修改计算机名,便于管理
# 修改/etc/hostname文件,如修改172.17.93.225的计算机名为xwhadoop225 echo xwhadoop225 > /etc/hostname # 重启以生效 reboot
1.2 配置本地DNS,便于网络访问
# /etc/hosts文件 vi /etc/hosts # 增加以下内容 172.17.93.225 xwhadoop225 172.17.93.226 xwhadoop226 172.17.93.227 xwhadoop227
1.3 禁用THP(Transparent Huge Pages)
1.3.1 查看THP的启用状态
[root@xwhadoop225~]# cat /sys/kernel/mm/transparent_hugepage/defrag [always] madvise never [root@xwhadoop225~]# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never
如上所示,[always]状态说明是启用的,需要禁用掉。
1.3.2 禁用THP
我们这个时候当然可以逐个修改上述两文件,来禁用THP,但要想一劳永逸的令其永久生效, 还是参考下列的步骤。
# 编辑/etc/rc.d/rc.local vi /etc/rc.d/rc.local # 增加以下内容 # Disable Transparent Huge Pages for Ambari install if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi # 加载刚刚更新的文件/etc/rc.d/rc.local,使其生效 source /etc/rc.d/rc.local
1.4 禁用selinux服务
1.4.1 查看selinux启用状态
[root@xwhadoop225 ~]# getenforce Disabled
如上所示,selinux状态为Disabled,即禁用状态。
1.5 关闭防火墙&禁止开机自启
1.5.1 关闭防火墙
a) 查看防火墙启用状态
[root@xwhadoop225 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead)
如上所示,防火墙服务firewalld状态为inactive (dead),即非活动状态。
b) 若防火墙为活动状态,则关闭
[root@xwhadoop225 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2017-03-29 14:36:39 CST; 1s ago Main PID: 645 (firewalld) CGroup: /system.slice/firewalld.service └─645 /usr/bin/python -Es /usr/sbin/firewalld --nofork –nopid
如上所示,防火墙服务firewalld状态为active (running),即活动状态。则需要关闭
# 关闭防火墙 systemctl stop firewalld
1.5.2 禁止防火墙开机自启
a) 查看防火墙是否开机自启
[root@xwhadoop225 ~]# systemctl is-enabled firewalld disabled
如上所示,防火墙服务firewalld开启自启状态为disabled,即开机不自启。
b) 若防火墙为开启自启,则关闭
[root@xwhadoop225 ~]# systemctl is-enabled firewalld enabled
如上所示,防火墙服务firewalld开启自启状态为enabled,即开机自启。则需要关闭
# 禁止防火墙开机自启 systemctl disable firewalld
1.6 安装ntp服务,以供Ambari做集群时间同步使用
# yum安装ntp yum install ntp –y # 启动ntpd服务 systemctl start ntpd # 设置ntpd服务开机自启 systemctl enable ntpd
1.7 安装jdk(版本jdk1.8.0_121),并配置环境变量
1.7.1 下载jdk软件包jdk-8u121-linux-x64.tar.gz至目录/root/package/下
1.7.2 安装jdk
# 创建安装目录/usr/local/java mkdir /usr/local/java # 解压jdk-8u121-linux-x64.tar.gz至目录/usr/local/java tar -zxvf /root/package/jdk-8u121-linux-x64.gz -C /usr/local/java/
1.7.3 配置环境变量
# 编辑/etc/profile文件 vi /etc/profile # 配置JAVA_HOME 和PATH,添加以下内容至/etc/profile文件中 export JAVA_HOME=/usr/local/java/jdk1.8.0_121 export PATH=$PATH:$JAVA_HOME/bin # 加载刚刚更新的/etc/profile文件,使新配置的变量生效 source /etc/profile
1.7.4 查看java版本,验证jdk成功安装且已添加至环境变量
[root@xwhadoop225 ~]$ java -version java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
如上所示,jdk1.8.0_121已成功安装
1.8 配置Ambari Server(xwhadoop225)到Ambari Agent(xwhadoop225~xwhadoop227)的SSH免密登录
1.8.1 配置SSH免密登录
# 生成公私钥文件 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 分发公钥到需要免密登录的目标机器xwhadoop225、xwhadoop226、xwhadoop227(单条执行,需以交互方式输入密码) ssh-copy-id -i ~/.ssh/id_rsa.pub root@xwhadoop225 ssh-copy-id -i ~/.ssh/id_rsa.pub root@xwhadoop226 ssh-copy-id -i ~/.ssh/id_rsa.pub root@xwhadoop227
注:ssh-copy-id -i 是最简单的办法,如果不用这个,就得分二个步骤:
a) 先scp 将本机的id_rsa.pub复制到对方机器的.ssh目录下
b) 在对方机器上执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 导入公钥
1.8.2 验证SSH免密登录是否成功
ssh root@xwhadoop225 ssh root@xwhadoop226 ssh root@xwhadoop227
1.9 配置ambari和HDP本地yum源
使用xwhadoop225制作ambari和HDP本地yum源,以下步骤在xwhadoop225上执行
1.9.1 下载ambari.repo并同步ambari相关软件安装包
# 配置本地yum源,需要使用reposync和createrepo命令 # reposync命令是一个python脚本,包含在yum-utils包中,安装yum-utils yum install yum-utils -y # 安装createrepo yum install createrepo –y # 进入repo文件存放目录 cd /ect/yum.repo.d/ # 下载ambari.repo wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.2.2.0/ambari.repo # 创建本地yum仓库目录 mkdir /ect/yum.repo.d/repo-Local # 进入本地yum仓库目录 cd /ect/yum.repo.d/repo-Local # 指定包含在ambari.repo中的repoid: Updates-ambari-2.2.2.0,将ambari yum远程仓库中的软件包同步至本地 # 将生成Updates-ambari-2.2.2.0文件夹及其子文件夹和文件 reposync --repoid=Updates-ambari-2.2.2.0 # 使用createrepo生成刚刚同步至本地的Updates-ambari-2.2.2.0文件夹的索引文件,以供yum使用 createrepo Updates-ambari-2.2.2.0
1.9.2 下载hdp.repo并同步hdp相关软件安装包
与1.9.1同理,不再赘述。操作完毕,将会在/ect/yum.repo.d/repo-Local目录下存在HDP- 2.4.0.0和HDP-UTILS-1.1.0.20两个非空文件夹。
1.9.3 安装Nginx,配置可供网络访问的yum源
# yum安装nginx yum install nginx –y # 编辑nginx.conf,以使yum源可供网络访问 vi /etc/nginx/nginx.conf # 将nginx.conf文件更新为以下内容 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 8888; server_name xwhadoop225; location /HDP-UTILS-1.1.0.20 { root /etc/yum.repos.d/repo-Local; autoindex on; } location /HDP-2.4.0.0 { root /etc/yum.repos.d/repo-Local; autoindex on; } location /Updates-ambari-2.2.2.0 { root /etc/yum.repos.d/repo-Local; autoindex on; } } } # 启动nginx systemctl start nginx
1.9.4 配置ambari安装源为本地yum源
# 编辑ambari.repo vi /etc/yum.repo.d/ambari.repo # 将ambari.repo文件更新为以下内容 [Updates-ambari-2.2.2.0] name=ambari-2.2.2.0 - Updates baseurl=http://xwhadoop225:8888/Updates-ambari-2.2.2.0 gpgcheck=1 gpgkey=http://public-repo-1.hortonworks.com/ambari/centos7/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 # 同步ambari.repo至其他服务器(xwhadoop226、xwhadoop227) scp /etc/yum.repo.d/ambari.repo root@xwhadoop226 scp /etc/yum.repo.d/ambari.repo root@xwhadoop227 # 执行以下命令更新yum缓存 yum clean all yum makecache
2. Ambari Server安装配置
以下步骤(2.1~2.3)只需要在Ambari Server所在服务器xwhadoop225上执行:
2.1 安装mysql-server,存储Ambari Server的元数据
# 安装mysql-server yum install mysql-server –y # 启动mysql-server systemctl start mysqld # root用户登录mysql mysql –uroot # 以下操作将会进入mysql命令行执行 # 创建database名为ambari用于存储ambari元数据 create database ambari; # 创建 user名为ambari create user ambari; # 给ambari授权并设置密码为ambari(给Ambari Server授权即可) grant all on ambari.* to ambari@’localhost’ identified by ‘ambari’; grant all on ambari.* to ambari@’xwhadoop225’ identified by ‘ambari’; grant all on ambari.* to ambari@’172.17.93.225’ identified by ‘ambari’; # 刷新MySQL权限信息 flush privileges; # 退出MySQL客户端 exit;
2.2安装ambari-server
yum install ambari-server –y
2.3配置ambari-server
ambari-server setup
以下操作将会与命令行交互进行
上图各个步骤详解:
1. 是否指定一个用户运行ambari-server后台进程[y/n]? 输入n;
2. 是否改变默认使用的Oracle JDK[y/n]? 输入y;
3. 上一步输入y,这一步要选择一个JDK版本。 输入3(自定义JDK);
4. 输入自定义的JAVA_HOME。 输入之前步骤中已经安装的JDK目录/usr/local/java/jdk1.8.0_121;
5. 是否进入高级数据库配置选项[y/n]?Ambari默认会使用自己的PostgreSQL,我们使用MySQL代替。 输入3;
6. 配置MySQL的连接信息:Hostname、Port、Database name、Username、Password;
7. 提示需要拷贝Mysql JDBC driver JAR到/usr/share/java目录。基于之前的经验,已经按照提示将mysql-connector-java-5.1.29.jar 放到了/usr/share/java目录下,但启动时仍会抛异常Caused by:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver。需要在/usr/lib/ambari-server目录下创建软链接,指向/usr/share/java/mysql-connector-java-5.1.29.jar,解决;
# 创建目录/usr/share/java
mkdir /usr/share/java
# 将放置在软件包目录/root/package中的 mysql-connector-java-5.1.29.jar拷贝至/usr/share/java目录
cp ~/package/mysql-connector-java-5.1.29.jar /usr/share/java
# 在/usr/lib/ambari-server目录下创建软链接,指向/usr/share/java/mysql-connector-java-5.1.29.jar
ln –s /usr/share/java/mysql-connector-java-5.1.29.jar /usr/lib/ambari-server/mysql-connector-java-5.1.29.jar
8. 提示需要在6中指定的MySQL DB中执行一个SQL脚本,以创建Ambari Server将要使用的相关表;
# 远程执行sql脚本
mysql -h xwhadoop225 -u ambari -pambari -D ambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
9. 是否继续进行远程数据库连接属性配置? 输入y(Ambari会远程连接刚刚指定的MySQL数据库进行相关配置);
10. 提示Ambari Server配置成功完成。
3. 安装Hadoop等组件
浏览器访问http://xwhadoop225:8080,即可通过Ambari管理界面进行集群安装。
相关文章推荐
- Flex 3快速入门: 构建高级用户界面 使用数据提供程序
- 千万级报表测试利器,使用Datafactory V5.6快速构建测试数据
- 使用DataGridView数据窗口控件,构建用户快速输入体验
- 使用Asp.net WebAPI 快速构建后台数据接口
- Spark 实战, 第 2 部分:使用 Kafka 和 Spark Streaming 构建实时数据处理系统
- Flex 3快速入门: 处理数据 使用数据绑定
- 如何使用JDBC快速处理大数据
- 使用 Kafka 和 Spark Streaming 构建实时数据处理系统(转)
- 使用Ambari快速部署Hadoop大数据环境
- 使用 Kafka 和 Spark Streaming 构建实时数据处理系统
- Flex 3快速入门: 处理数据 使用 HTTPService 加载外部数据
- 使用DataGridView数据窗口控件,构建用户快速输入体验
- 使用Ambari快速部署Hadoop大数据环境
- Flex 3快速入门: 处理数据 使用 HTTPService 加载外部数据
- 使用Ambari快速部署Hadoop大数据环境
- 在GridControl控件中使用SearchLookUpEdit构建数据快速输入
- 使用Ambari快速部署Hadoop大数据环境
- Node.js高级编程:用Javascript构建可伸缩应用(4)2.4 核心API基础-使用Buffer处理,编码,解码二进制数据
- 使用Ambari快速部署Hadoop大数据环境
- 使用Ambari快速部署Hadoop大数据环境