配置环境呢,最喜欢的就是别人有现成的成功经验了,最气的是有些步骤别人的可以但是自己的就是不行。
所以我在后面附上了自己搭建过程中遇到的一些坑,可以借鉴采用。
软件及工具:
系统软件:CentOS7
VMvare创建2个虚拟机:
master(6g内存,50g存储),node1(3g内存,40g存储)
XSHELL:远程登录虚拟机操作使用
集群节点说明:(vim / etc / hosts添加)
220.192.10.132 master.hadoop
220.192.10.121 node1.hadoop
Ambari 2.5.2.0匹配的JDK是:jdk-8u112-linux-x64.tar.gz
主从节点间设置SSH免密钥登录:
#1.配置hosts文件:
vim / etc / hosts
添加:
220.192.10.132 master.hadoop
220.192.10.121 node1.hadoop
在所有节点配置的主机,或者单独配置后SCP配置好的主机给从节点。
scp / etc / hosts node1 :/ etc.
#2,关闭防火墙并禁止开机启动:
systemctl stop firewalld.service
systemctl禁用firewalld.service
#3,关闭SELINUX:
vim / etc / selinux / config
SELINUX =禁用
reboot 0 //重启生效,不过可稍后重启
#4. 配置免密登陆:
s s h-keygen -t rsa //两次回车
ssh-copy-id -i~ / .ssh / id_rsa.pub root @ node1
配置主节点免密登陆各从节点。在各个从节点上生成公司并将其发送添加到主节点已知密钥中:
ssh-keygen -t rsa //回车
ssh-copy-id -i~ / .ssh / id_rsa.pub root @ node1
配置从节点间免密登陆。将主节点上存放的已知密钥发送到各从节点:
scp~ / .ssh / authorized_keys root @ node1:〜/ .ssh /
#5. 安装JDK :( 主从节点同时进行,或scp你的jdk和jdk配置文件)
检查卸载已经安装的默认JDK
#rpm -qa | grep jdk
#yum -y remove java*openjdk*
安装JDK :(根据解压的文件夹)
tar -zxvf jdk-8u121-linux-x64.tar.gz -C / usr / local
mv jdk1。8.0 _91 jdk
配置环境变量vim / etc / profile在文件末尾添加:
export JAVA_HOME=/usr/local/java/jdk
export PATH=$PATH:$JAVA_HOME/bin
使配置生效
source /etc/profile
#6. NTP时间同步:
时间同步对节点间协调很重要。
安装NTP(各节点):
yum install ntp -y
修改配置文件/etc/ntp.conf中(主节点):
//服务器0上一行添加北邮NTP服务器地址:
服务器s2c.time.edu.cn更喜欢
测试同步一次时间(主节点):
ntpdate s2c.time.edu.cn
启动NTP并配置开机启动(主节点):
systemctl start ntpd
systemctl enable ntpd
使用ntpstat命令查看是否已成功完成同步,如下是完成同步的状态。同步需要一定的时间,请耐心等待。
synchronised to NTP server (202.112.10.36) at stratum 6
time correct to within 1338 ms
polling server every 64 s
从节点与主节点同步时间,在各从节点设置定时同步任务:(非生产环境下不成功问题也不大)。
ntpdate cdh-master // 与主节点同步一次时间
crontab -e // 创建计划任务
00 */1 * * * /usr/sbin/ntpdate cdh-master >> /root/ntpdate.log 2>&1 // 每1小时与主节点执行一次时间同步
crontab -l // 查看计划任务
# 7.安装数据库和数据库驱动:
Ambari安装会将安装等信息写入数据库,建议使用自己安装的Mysql数据库,也可以不安装而使用默认数据库PostgreSQL
a、安装mysql 下载mysql的repo源
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
b、安装mysql57-community-release-el7-8.noarch.rpm包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm --nodeps --force
c、安装mysql yum install mysql-server
d、查看MySQL服务是否已启动:
service mysqld status
启动服务:
systemctl start mysqld
e、修改root 密码:
MySQL5.7会在安装后为root用户生成一个随机密码,而不是像以往版本的空密码。 可以安全模式修改root登录密码或者用随机 密码登录修改密码。下面用随机密码方式 MySQL为root用户生成的随机密码通过mysqld.log文件可以查找到:
输入:grep 'temporary password' /var/log/mysqld.log 显示:
A temporary password is generated for root@localhost: /;Xu73Lpb356 (随机生成的mysql密码,暂时记住)
# mysql -u root -p
mysql> Enter password:
Xu73Lpb356 (输入刚才查询到的随机密码)
f、 开放3306端口 允许使用用户名root密码Ambari-123从任何主机连接到mysql服务器。
mysql> SET PASSWORD FOR 'root'@'localhost'= "Ambari-123";
Query OK, 0 rows affected (0.00 sec)
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Ambari-123' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>exit;
### 开启防火墙mysql 3306端口的外部访问:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
g、安装完成后创建ambari数据库及用户,登录root用户执行下面语句:
create database ambari character set utf8 ;
CREATE USER 'ambari'@'%'IDENTIFIED BY 'Ambari-123';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
h 如果要安装Hive,再创建Hive数据库和用户 再执行下面的语句:
create database hive character set utf8 ;
CREATE USER 'hive'@'%'IDENTIFIED BY 'Hive-123';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
FLUSH PRIVILEGES;
# 8.创建本地源,安装ambari-server
yum install -y httpd
创建web server目录:
mkdir -p /var/www/html
mkdir /var/www/html/hdp #创建hdp目录
tar -zxf ambari-2.5.2.0-centos7.tar.gz -C /var/www/html/
tar -zxf HDP-2.6.2.0-centos7-rpm.tar.gz -C /var/www/html/hdp
tar -zxf HDP-UTILS-1.1.0.21-centos7.tar.gz -C /var/www/html/hdp
wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.
5.2.0/ambari.repo -O /etc/yum.repos.d/ambari.repo
wget -nv http://public-repo-1.hortonworks.com/HDP/centos7/2.x/
updates/2.6.2.0/hdp.repo -O /etc/yum.repos.d/hdp.repo
# yum repolist 查看是否下载成功。
# 修改yum为本地源
注意:请先备份ambari.repo、hdp.repo后再修改,以防浪费时间。
将public源改为master主机ip,并scp到从节点。
(如果本地源制作失败,再后面也可以在所有节点手动安装ambari-agent)
yum install ambari-server
--输入 y ,在安装Ambari时会同时安装Ambari的默认数据库PostgreSQL。 (比较方便)
默认的PostgreSQL 数据库名称为ambari,用户名为ambari密码为bigdata
--或者输入n,选择mysql序号,输入mysql用户,密码,(密码要求大写,数字字母同时满足)
设置ambari-server 期间需要配置JDK,JCE policy, 需要提前将相应版本JDK、JCE下载好,此Ambari版本对应JDK版本为jdk-8u112-linux-x64.tar.gz,JCE policy版本为jce_policy-8.zip
将下载好的JDK、JCE policy上传至目录:/var/lib/ambari-server/resources/
输入命令:ambari-server setup
Ambari Server默认在root下运行,输入n即表示采用root运行,若你想使用其他用户来运行ambari-server,输入y,然后输入你想使用的用户名(我用的是root)
若防火墙没关则会出现警告信息输入y继续,JDK默认采用JDK 1.8+,输入1即可
当然,jdk我们可以用自己的jdk, 输入JAVA_HOME变量。
ambari-server setup successfully 即成功安装。
执行命令开启:ambari-server start
查看状态:ambari-server status
关闭:ambari-server stop
测试是否启动成功
在浏览器中输入地址:http://172.16.220.133:8080
默认账密 admin/admin
根据在本地下载好的HDP版本:HDP-2.6.2.0
# 还要选择Repository,如果你配置的本地源输入后没有成功通过测试,也可以选择公用源。
或者一个成功了,可以在公用源中修改某个源地址为你成功的本机源地址。
在redhat7中选则你配置有HDP的OS,并输入http服务的地址:
HDP-2.6 http://220.192.10.132/hdp/HDP/centos7
HDP-UTILS-1.1.0.21 http://220.192.10.132/hdp/HDP-UTILS-1.1.0.21/repos/centos7
# 选择安装ambari-server主机的私钥文件:/root/.ssh/id_rsa
主机名推荐用正式域名(FQDN),例如:hdp-1.domain,不然他要出现警告信息
需要设置Grafana 和 SmartSense的admin用户的密码
安装hive的话,也要输入用户,密码,数据库名。
附:踩的坑,找到的解决办法--
## 虚拟机丢失ip (ifconfig结果无ip地址,而且xshell连不通。)
#systemctl enable NetworkManager-wait-online.service
#systemctl stop NetworkManager
#systemctl status NetworkManager
#systemctl restart network.service
## 制作本地源,花费了不少时间。HDP-UTILS的源制作有问题,于是选择HDP用成功的本地源,HDP-UTILS用公开源,公开源在国外 花了不少时间下载。
http://172.16.220.133/hdp/HDP/centos7
## hostname /etc/hosts
需要设置为master.hadoop node1.hadoop 的形式。防止报错说非 FNQD格式的hostname。
例如:
192.168.1.12 sandbox.hortonworks.com
192.168.1.13 server1.hortonworks.com
## 报错:
==========================
Creating target directory...
==========================
Command start time 2016-01-05 09:40:21
chmod: cannot access `/var/lib/ambari-agent/data': No such file or directory
Connection to server201 closed.
解决办法:
*需要手动安装ambari-agent
*安装命令改为sudo yum install ambari-agent
*修改/etc/ambari-agent/conf/ambari-agent.ini文件,指定服务器为server204,修改为自己主节点hostname
## 查看Linux位数 : getconf LONG_BIT
## 定制服务,就是配置服务的一些属性,还有数据库连接配置等信息 ,针对每一项红色信息中修改配置信息。
如果是警告,内存不够的话,没办法可以先processed anyway。
## HDP选择安装Hive时,如果用本地mysql。
需要先安装mysql,建立一个hive数据库,加载好数据库连接驱动。
## ambari 第一次启动异常:没有mysql驱动
今天再次安装ambari时出现:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
尝试使用:
yum install mysql-connector-java 或者将驱动包放在/usr/share/java 下
并加载驱动进 ambari 的设置中
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector
-java-5.1.17.jar
但是还是这个错,后来通过以下方式解决:
登录mysql: use ambari(选择安装时选择的库),
执行以下操作:
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
## HDP设置hive的tez大小时候,根据本机内存不同,内存不够时候可以忽略tez.size的警告。processed anyway.
## ambary-server重装
删除使用脚本删除
注意删除后要安装两个系统组件
yum -y install ruby*
yum -y install redhat-lsb*
yum -y install snappy*
## 查看端口是否活跃或者被占用
]# netstat -lanp|grep 8080
## 在安装到倒数第二步“Install, Start and Test”时,一直安装不成功,提示
[Errno 256] No more mirrors to try
*解决方法:
输入下面的命令即可解决问题:
yum clean all
yum makecache
## HBase Master Process
Connection失败:[Errno 111] Connection拒绝了bi.corp.mama.cn2:16000
启动过程是没有报错的,都是成功,但是改变提示这个,过一会儿本来启动的HBase Master就自动停止
*原因:时间同步问题,时差比较大。
*解决办法:
yum -y install ntp
cd / usr / share / zoneinfo / Asia /
ntpdate pool.ntp.org
systemctl start ntpd && systemctl enable ntpd
##更多报错:https://blog.csdn.net/wang_zhenwei/article/details/53160071