CDH5--史无前例的最详细安装教程
第一部分:准备工作
One
1.下载安装包,规划三台机器
Cloudera Manager 5.9
CDH5.9 主文件
CDH5.9 sha文件
manifest 文件
2.修改/etc/hosts 文件
192.168.6.3 hdp-01
192.168.6.4 hdp-02
192.168.6.5 hdp-03
临时修改主机名
hostname hdp-01
hostname hdp-02
hostname hdp-03
更改主机名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hdp-01
3.ssh 免密 登陆
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub hdp-01
ssh-copy-id -i /root/.ssh/id_rsa.pub hdp-02
ssh-copy-id -i /root/.ssh/id_rsa.pub hdp-03
4.关闭防火墙
service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)
关闭
SELINUXsetenforce 0临时生效,
另外修改修改
/etc/selinux/config 下的SELINUX=disabled,
重启机器
5.shell
在hdp-01机器root目录下,产生一个host文件,文件内容如下,主要将各节点的主机名维护起来
hdp-02
hdp-03
在hdp-01机器root目录下,产生一个scp.sh文件,文件内容如下,输入需要传送的源文件路径与目标机器的存放路径两个参数,路径都是绝对路径。
#!/bin/bash
cat host | while read host
do
{
scp -r $1 $host:$2
}&wait
done
6.jdk 安装
①都卸载自带jdk(三台都需要,版本可能不一样根据实际操作)
[root@hdp-03 ~]# rpm -qa|grep java
tzdata-java-2012j-1.el6.noarch
java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
[root@hdp-03 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
[root@hdp-03 ~]# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch
[root@hdp-03 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
[root@hdp-01 ~]# vim host
[root@lhdp-01 ~]# vim scp.sh
[root@hdp-01 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
[root@lhdp-01 ~]# rpm -e --nodeps tzdata-java-2012j-1.el6.noarch
[root@hdp-01 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
②在hdp-01上上传jdk1.8,解压到/usr/local/下
并修改环境变量 vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_171
export PATH=$JAVA_HOME/bin:$PATH
③利用shell拷贝
sh scp.sh /usr/local/jdk1.8.0_171/ /usr/local/jdk1.8.0_171/
sh scp.sh /etc/profile /etc/
使环境变量生效(全执行)
source /etc/profile
echo "JAVA_HOME=/usr/local/jdk1.8.0_171" >> /etc/environment
7.配置yum源
rm -rf /etc/yum.repos.d/*
vi /etc/yum.repos.d/base.repo
[Base]
name=base
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
挂载
mount /dev/cdrom /mnt
yum list 查看是否配置yum成功
8.安装mysql
yum -y install mysql-server
chkconfig mysqld on
service mysqld restart
mysql 登陆进去
create user 'CDH' identified by '123456';
必须设置远程可登陆
grant all privileges on *.* to CDH@'%' identified by '123456' with grant option;
flush privileges;
9.设置swap空间
echo "vm.swappiness = 10" >> /etc/sysctl.conf
sh scp.sh /etc/sysctl.conf /etc/
关闭大页面压缩
试过只设置defrag,但貌似个别节点还是会有警告,干脆全部设置,编辑
/etc/rc.local,末尾添加如下命令
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
同步到各个节点机器
sh scp.sh /etc/rc.local /etc/
然后重启reboot生效。
第二部分:安装CM
1、进入/opt/cdh目录,将CM解压到/opt目录下,不能解压到其他地方,因为cdh5的源会默认在
/opt/cloudera/parcel-repo寻找,而CM可以按照个人喜好安装
tar -zxvf cloudera-manager-el6-cm5.9.0_x86_64.tar.gz -C /opt/
mkdir -p /opt/program
mv /opt/cm-5.9.0/ /opt/program/
ln -s /opt/program/cm-5.9.0/ /opt/cm
2、将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel 和 CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1移动到/opt/cloudera/parce1-repo,这样安装时CM就能直接找到了
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1 /opt/cloudera/parcel-repo/
3、将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1重命名为CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha(去掉结尾的1),非常重要。我试安装时,这点遗漏了,导致安装CDH的时候一直刷不出5.9版本,通过日志发现,没有manifest.json就会去下载,不能访问外网就报错了,但不影响安装CDH,还是mv一下吧。
mv manifest.json /opt/cloudera/parcel-repo/
cd /opt/cloudera/parcel-repo/
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha
4、修改配置文件中的server_host,编辑/opt/cm/etc/cloudera-scm-agent/config.ini
server_host=hdp-01
将mysql的JDBC驱动放入CM的lib目录下,下载地址http://dev.mysql.com/downloads/connector/j/,gz和zip都无所谓,最终要的是里面的jar包。解压获得mysql-connector-java-5.1.5-bin.jar上传到集群。
mysql-connector-java-5.1.5-bin.jar
mv mysql-connector-java-5.1.5-bin.jar /opt/cm/share/cmf/lib/
5、为CM创建数据库
/opt/cm/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
解决方案:
1、配置/etc/hosts文件如下:
127.0.0.1 localhost.hdp-01
192.168.160.132 hadoop3
192.168.160.130 hadoop1
192.168.160.131 hadoop2
注意:如果执行的时候报一下错误,可能是配置host的有问题,127.0.0.1 localhost.hdp-01 这个localhost不能少
create user 'CDH' identified by '123456';
必须设置远程可登陆
grant all privileges on *.* to CDH@'%' identified by '123456' with grant option;
flush privileges;
2、
需要修改mysql登录密码:
解决:
修改MySQL的root用户的密码以及打开远程连接
mysql>use mysql;
mysql>desc user;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "hadoop";
//为root添加远程连接的能力。
GRANT ALL PRIVILEGES ON *.* TO CDH@"%" IDENTIFIED BY "123456";
update user set Password = password('hadoop') where User='CDH';
select Host,User,Password from user where User='CDH';
flush privileges;
mysql>update user set Password = password('hadoop') where User='root';
mysql>select Host,User,Password from user where User='root';
mysql>flush privileges;
mysql>exit;
再次执行 成功
/opt/cm/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -phadoop --scm-host localhost scm scm scm
6、为每个节点创建cloudera-scm用户,均执行
useradd --system --home=/opt/cm/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
7、接下来其实可以直接在hdp-01上启动服务安装了,但因为其它节点没有CM,最后还是通过远程的yum在线下载再安装,我这设置了内部网络,其它节点是访问不了外网的,所以拷贝CM到其它节点进行完全离线安装。拷贝CM到每个节点,在拷贝之前在其余节点执行
mkdir /opt/program
sh scp.sh /opt/program/cm-5.9.0/ /opt/program/cm-5.9.0/
ln -s /opt/program/cm-5.9.0/ /opt/cm (每台机 手动执行)
8、在hdp-01上启动CM的service服务
/opt/cm/etc/init.d/cloudera-scm-server start
/opt/cm/etc/init.d/cloudera-scm-agent start
service服务过程需要启动几分钟,这看机器性能,
如果用netstat -apn|grep 7180能够查看到端口占用,就可以用浏览器打开http://hdp-01:192.168.6.3:7180/进行访问,登录用户名与密码分别为admin
到此基本上CM的安装启动己完成,接下来就可以用过WEB界面进行安装CDH了,基本上顺利完成百分之60了。
第三部分:CDH--图像化界面安装
1)登陆CDH
service httpd start
http://192.168.6.3:7180
2)然后勾选继续
3)按需求所选,我这里选择免费,继续。
4)继续
5)因为我们在节点上启动了agent,所以直接点“当前管理的主机”,此时当前管理主机有5个。如果节点上没有CM,只有master上有,这边可以在新主机下去搜索,例如192.168.6.2.[100-104],但这样最后从节点会去yum在线安装。(此处截图为5台,按此教程应该为3台,分别是hdp-01,hdp-02,hdp-03)
6)选择之后 将所有主机都勾选上,然后继续。
7)然后选择版本
8)然后进入安装环节:
激活主节点卡住 解决方案:
我是把hosts文件中第一行中的主机名称去掉就好了!!!!!
#127.0.0.1这一行不能有其他东西!
127.0.0.1 localhost
192.168.6.3 hdp-01
192.168.6.4 hdp-02
192.168.6.5 hdp-03
9)如果主节点长时间未激活,请按上述解决方案。完成后请点击继续。
10)鸡冻,请继续。
11.)集群设置,按需求。这里我选择所有
12)角色分配,如若没有其他需求 可以按默认,继续即可!!!
13)创建数据库。需要创建数据库 以下有数据库连接详细方案,请参考!!
14)从hdfs--到集群完整安装以及除错。
数据库链接:
[root@hdp-01 ~]# mysql -h localhost -u root -phadoop
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.1.66 Source distribution
Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.12 sec)
除错:
把jdk软连接到/usr/java/default首先查看是否有/usr/java目录,没有的话新建此目录:mkdir /usr/java。然后添加软连接到/usr/java/default,命令如下:ln -s /home/monitor/apps/jdk1.7.0_45 /usr/java/default 为什么要添加软连接到/usr/java/default?这是因为有些软件,不会去找环境变量的java,而是找/usr/java下的,比如说cloudera manager在部署最后的spark时,一直报“上的客户端配置 (id=3) 已使用 1 退出,而预期值为 0”这个错误,其中一个原因就是访问java访问不到,参考:cloudera manager报错“客户端配置 (id=3) 已使用 1 退出,而预期值为 0”
hdfs除错:
创建目录 /tmp/hdfs
hive 报错
接下来就等待初始化和启动服务,这里可能会遇到Hive报错的问题,因为我们选择了Mysql作为hive的元数据存储,查看日志知道是Hive初始化Mysql的时候找不到jar文件,将
mysql-connector-java-5.1.5-bin.jar拷贝到hive存放jar文件的目录重试即可。
[root@hdp-01 ~]# cp /opt/program/cm-5.9.0/share/cmf/lib/mysql-connector-java-5.1.5-bin.jar /opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/hive/lib/
ooize (此处与hive 基本一直 也是因为没有包的原因)
1.Download the MySQL JDBC driver from http://www.mysql.com/downloads/connector/j/5.1.html.
2.Extract the JDBC driver JAR file from the downloaded file. For example:
tar zxvf mysql-connector-java-5.1.31.tar.gz
3.Copy the JDBC driver, renamed, to the relevant host. For example:
$ sudo cp mysql-connector-java-5.1.31/mysql-connector-java-5.1.31-bin.jar /usr/share/java/mysql-connector-java.jar
If the target directory does not yet exist on this host, you can create it before copying the JAR file. For example:
$ sudo mkdir -p /usr/share/java/
$ sudo cp mysql-connector-java-5.1.31/mysql-connector-java-5.1.31-bin.jar /usr/share/java/mysql-connector-java.jar
15) 到此全部完成安装。
1)http://192.168.6.3:50070
2)http://192.168.6.3:8088
3)http://192.168.6.3:7180
有用,有趣,有态度!
生活就是,一系列下决心的努力!!
年少风
领取专属 10元无门槛券
私享最新 技术干货