利用Ambari搭建Hadoop集群
ISO-version: Centos6.5
Mysql-version: 5.6
Jdk-version : 1.8
Ambari-version: 2.4.2.0
HDP-version: 2.5.3.0
username: root
配置Yum源请看我的另一篇文章连接如下:
这里说一下Ambari和HDP的下载方式和地址:
Ambari软件包下载方式如下:
Linux下载方式
HDP软件包下载方式如下:
Windows下载方式
http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.5.3.0/HDP-2.5.3.0-centos6-rpm.tar.gz
Linux下载方式
wget http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.5.3.0/HDP-2.5.3.0-centos6-rpm.tar.gz
HDP工具包下载方式:
Windows下载方式
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6/HDP-UTILS-1.1.0.21-centos6.tar.gz
Linux下载方式
wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6/HDP-UTILS-1.1.0.21-centos6.tar.gz
将下载后的压缩包解压到 /var/www/html/centos/目录下
在centos的每个目录下建立文件库建立索引文件repo文件即可
安装MySql
注意:执行sudo命令可能会出现一下问题
搭建集群用户没有用root,用的普通用户解决方法:
切换到root用户
1 修改/etc/sudoers文件,进入超级用户,因为没有写权限,所以要先把写权限加上chmod u+w /etc/sudoers
2 编辑 /etc/sudoers文件,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"mysql ALL=(ALL) ALL"(这里的mysql是你的用户名),然后保存。
3 最后恢复没有写权限模式,撤销文件的写权限,chmod u-w /etc/sudoers
命令前加 sudo 我们就可以用mysql用户来编辑root的文件了·
Yum安装Mysql
执行sudo yum makecache 获取yum缓存 如下图:
执行sudo yum -y install mysql-server 安装mysql数据库如下图:
执行sudo service mysqld start启动mysql数据库
执行sudo chkconfig mysqld on 设置开机自启
执行mysql -uroot -p 登录mysql数据库
授权外部机器登录的用户名和密码以及权限 ,执行下面命令
mysql > grant all privileges on *.* to 'username'@'%' identified by 'userpwd' with grant option;
执行flush privileges; 刷新权限立即生效
以下为集群环境配置所有机器都要做,并且都以root用户执行
JDK安装
首先卸载系统自带的openjdk
执行以下命令查看已安装的jdk
rpm -qa | grep gcj
rpm -qa | grep jdk
执行以下命令卸载jdk
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
1.JDK下载:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2. 安装
将jdk rpm包上传到各集群节点中包括ambari服务器节点
执行rpm -ivh jdk-8u161-linux-x64.rpm 如下图:
执行java -version查看jdk版本如下图:
配置主机映射:
所有主机的hosts文件内部的主机映射须一致,并且主机ip要与主机名称对应
修改前如下图:
关闭selinux
关闭selinux (此配置重启生效)
执行vi /etc/selinux/config 进行修改
修改前如下图:
修改后如下图:
关闭防火墙
执行 service iptables stop 关闭防火墙开机自启动执行 chkconfig iptables off
关闭THP 透明大页面
执行vi /etc/grub.conf 加入 transparent_hugepage=never
添加前如下图:
添加后如下图:
安装ntp时间同步服务
执行yum -y install ntp进行安装如下图:
配置本地ntp时间同步服务
[if !supportLists]1、[endif]配置ntp-server
这里选择其中一台作为作为ntp本地服务器其他节点根据ntp服务器进行时间同步
[if !supportLists]2、[endif]ntp服务器执行 vi /etc/ntp.conf
注释掉原来的restrict default kod nomodify notrap nopeer noquery这一行,这一行本身是不响应任何的ntp更新请求,其实也就是禁用了本机的ntp server的功能,所以需要注释掉。 如下图:
加入下面3行:
注释:用于让192.168.31.0/255.255.255.0网段上的机器能和本机做时间同步
restrict 192.168.31.0 mask 255.255.255.0 nomodify notrap
#注释:如果无法与上层ntp server通信以本地时间为标准时间
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
修改后的内容如下图:
执行service ntpd restart重启ntp服务
执行chkconfig ntpd on 设置开机自启动
如下图:
配置ntp-agent端
执行service ntpd stop 和 chkconfig ntpd off
关闭ntpd服务并且关闭开机自启动如下图:
执行 ntpdate ambari 同步ntp-server的时间如下图:
创建定时同步时间任务
执行 crontab -e
添加以下内容:
#synchronize time with node1
*/5 * * * * /usr/sbin/ntpdate ambari-server >/dev/null 2>&1
意思是每5分钟同步一次时间,如下图:
升级系统openssl
执行 yum -y install openssl 如下图:
配置免秘钥登录
执行ssh-keygen -t rsa -P '' (注:最后是二个单引号,表示不设置密码)
执行 ssh-copy-id -i /root/.ssh/id_rsa.pub root@slave
将本主机的公钥发送到其他主机上如下图:
注意:
将每台主机生成的公钥要复制到所有集群节点上:(所有)
复制过后测试是否配置成功
执行 ssh slave 登录slave节点
执行 exit 退出当前登录 如下图:
上述集群环境配置完成后从起所有服务器节点
执行 shutdown -r now 进行重启
安装和配置ambari-server服务器
执行 cd /etc/yum.repos.d/ 进入yum.repo文件存放目录
执行 vim ambari.repo 创建ambari.repo文件添加以下内容:
[ambari-2.4.2]
name=ambari-2.4.2
#下面的地址是ambari yum源的地址,并且此地址可以访问
baseurl=http://mongodb04/centos/ambari-2.4.2.0/
gpgcheck=0
enabled=1
执行 yum -y install ambari-server 进行安装如下图:
ambari指定数据库为mysql
执行 mkdir -p /usr/share/java/ 创建文件夹
将mysql-connector-java-5.1.39.jar包复制到/usr/share/java/
目录下
执行cp /opt/soft/mysql-connector-java-5.1.39.jar /usr/share/java/
下面的配置解决ambari找不到连接mysql数据库的jar包
执行 vim /etc/ambari-server/conf/ambari.properties
在底部添加server.jdbc.driver.path=/usr/share/java/mysql-connector-java-5.1.39.jar
结果如下图:
接下来开始正式配置ambari服务
执行ambari-server setup 设置 如下图:
[if !supportLists]1、[endif]配置JAVA_HOME 如下图:
2、配置数据库连接 如下图:
启动ambari-server服务器
执行 ambari-server start 如下图:
如果启动失败请查看ambari-server服务器日志
执行 vi /var/log/ambari-server/ambari-server.log 进行查看
通常来说报的错误一般都是数据库问题:,重新登录mysql数据库重新授权即可
浏览器访问 ambari-server的IP地址默认端口8080
默认账号:admin 默认密码:admin
利用ambari集群监视管理工具搭建大数据集群相应的组件
私钥获取地址以及名称如下图:
执行 cd /root/.ssh/ 进入文件夹如下图:
搭建完成如下图:
安装的服务列表如下:
HDFS、YARN、MapReduce、Tez、Pig、Zookeeper、Ambari Metrics
Kafka、Spark、Hive、Silder。