CDH搭建hadoop集群

来源:互联网 发布:手机控制电脑 python 编辑:程序博客网 时间:2024/05/17 00:55

目的:CDH5.8.0离线搭建hadoop环境

关于CDH和ClouderaManager

  • CDH (Cloudera’s Distribution, includingApache
    Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache
    Hadoop构建,并集成了很多补丁,可直接用于生产环境。
  • Cloudera Manager(本文以下简称为CM)则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。

一:CM 安装准备

环境准备
- 四台主机:master slave1 slave2 slave3
- 操作系统:CentOS 6.5 x64
- CDH: 5.8.0

前期环境准备操作

  • 打通 SSH
  • 配置Hosts
  • 关闭防火墙
  • 关闭防火墙
  • NTP(可选)
  • jdk安装
  • MySql安装

IP对应的主机名

  • master 192.168.1.108
  • slave1 192.168.1.112
  • slave2 192.168.1.113
  • slave3 192.168.1.114

下载安装包

  • CM的安装包:http://archive.cloudera.com/cm5/cm/5/
  • 对应的文件是:cloudera-manager-el6-cm5.8.0_x86_64.tar.gz

  • 本地源的安装包:由于是离线安装,需要配置本地源,需要下载相关的包,下载地址是:
    http://archive-primary.cloudera.com/cdh5/parcels/5.8.0/

  • 由于系统是CentOS6.5,所以对应的文件是:
    CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel
    CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
    manifest.json

  • jdk的rpm包:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
    jdk-8u102-linux-x64.rpm

  • mysql connector包:mysql-connector-java-5.1.39.jar

    注意:由于此次安装mysql我使用的是yum的方式,所以此处未单独下载相关的软件包,另外,建议使用yum或者rpm的方式安装mysql以及jdk,这样jdk以及mysql会安装到默认位置上,由于CM自身机制的问题,如果这两个软件未安装到默认的位置上会导致许多额外的配置以及很多不期而遇的问题

关闭防火墙

  • 防火墙会引起hadoop相关组件通讯的各种异常,需关闭防火墙。用root用户权限登录进行操作:
  • service iptables stop
    验证:service iptables status

修改修改/etc/hosts

  • master 192.168.1.108
  • slave1 192.168.1.112
  • slave2 192.168.1.113
  • slave3 192.168.1.114

SSH免登录

  1. ssh-keygen -t rsa连续3个回车,不必输入,生成密钥
  2. ssh-copy-id -i /root/.ssh/id_rsa.pub root@master:
    把本机的公钥追到master的 .ssh/authorized_keys 里
  3. 在每台机器上都对其他机器重复执行第2步,直到所有机器都能相互免密码登陆

rpm 安装jdk
1. rpm -ivh jdk-8u102-linux-x64.rpm
2.配java环境变量
export JAVA_HOME=/usr/java/default
export PATH=PATH:JAVA_HOME/bin
export CLASSPATH=JAVAHOME/libexportCLASSPATH=CLASSPATH:$JAVA_HOME/jre/lib
java -version来检测jdk是否安装成功

yum安装mysql

  • 建议将mysql安装到CM的主服务器上
  • 安装之前检查下机器是否已经安装mysql:
    rpm -qa|grep mysql
    效果如下:
    这里写图片描述
    图1.1 mysql安装检验
  • 包含图上所示4个包就正确了,Mysql包不能多装,否则会在安装oozie hive等会出现链接拒绝问题
  • 如果多了使用下面的命令卸载:
    rpm -e xxxxxxxx
  • 如果少了使用下面的命令安装,少那个就安装哪个:
    yum install -y mysql-devel
    yum install -y mysql-server
    yum install -y mysql-libs
    yum install -y mysql

创建mysql数据库

  • CM元数据库
create database metastore DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  • hive 数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  • hue 数据库(可选)
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  • oozie 数据库(可选)
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

若我们不需要安装hue和oozie,下面两个数据库可以不创建

为新创建的库赋权限

  • 如果对mysql数据库权限要求比较高的话可以手动单独处理
  • 如果要求不是很高,直接使用以下命令即可:
grant all privileges on *.* to 'root'@'%' identified by 'b201hadoop' with grant option;flush privileges;

二:安装CM

  1. 解压

将cloudera-manager-el6-cm5.8.0_x86_64.tar.gz上传到CM的主节点的/opt/目录下并解压缩,解压后会生成cloudera以及cm- 5.8.0两个文件夹。
注意:由于cloudera自身机制的问题,如果解压后的位置不在/opt/下会导致许多额外的配置以及很多不期而遇的问题

  1. 为每个节点都要创建用户
useradd --system --home=/opt/cm-5.8.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

 3.在 CM的主节点上修改sudoers文件

vim /etc/sudoers
在root ALL=(ALL) ALL后面增加
cloudera-scm ALL=(ALL) NOPASSWD: ALL
hadoop ALL=(ALL) ALL

这里写图片描述

注解:此处的配置是为了部分避免后面页面配置过程中发生配置无法下发到agent端的问题而进行的配置,如下:

这里写图片描述

   4.在CM的主节点上部署mysql connector包

将mysql-connector-java-5.1.39-bin.jar放到/opt/cm-5.8.0/share/cmf/lib下

   5.修改agent配置文件

将server_host配置项由localhost改成master(CM的主节点)
保存退出

这里写图片描述

注意:每个节点下的config.ini都需要改成上面的形式

   6.将cm-5.8.0 scp到其让机器opt文件夹下

scp –r cm-5.8.0 slave1:/opt/scp –r cm-5.8.0 slave2:/opt/

   7.初始化CM数据库

/opt/cm-5.8.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pb201hadoop --scm-host localhost scm scm scm

   8.CM的主节点配置本地源

将已下载完毕的 CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel,
CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1,
manifest.json
并将他们放到 /opt/cloudera/parcel-repo下,并把CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1重命名为CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha

   9.CM主节点启动server

/opt/cm-5.8.0/etc/init.d/cloudera-scm-server start#查看日志tail -f /opt/cm-5.8.0/log/cloudera-scm-server/cloudera-scm-server.log

   10.CM子节点创建agent所需的文件夹

mkdir -p /opt/cm-5.8.0/run

   11.CM子节点启动agent

/opt/cm-5.8.0/etc/init.d/cloudera-scm-agent start

三:CM页面配置

  1. 登录地址:192.168.1.108(CM主节点):7180
    默认用户名密码:admin/admin
    这里写图片描述
    图3.1 登录界面

2.同意免责条款,继续。

这里写图片描述
图3.2免责条款

3.免费版本即可以满足基本需求,如果有特别需求或者土豪可以选择其他,点击继续.

这里写图片描述
图3.3版本选择

4.CM可以管理的CDH组件的列表,点击继续.

这里写图片描述
图3.4 组件列表

5.主机配置:如果agent进程正常启动,此处就可以发现当前已经管理的主机,全选后,点击继续

这里写图片描述
图3.5 主机配置

6.此处选择使用Parcel,由于我们已经构建了本地源,所以有CDH-5.8.0-1.cdh5.8.0.p0.42这个选项,如果此处未出现这个选项,说明你本地源搭建有问题,其他Parcel暂时可以不选,后续可以再处理,选中后点击继续

这里写图片描述
图3.6 构建本地源

7.集群安装:此处CM会自动将本地源的相关信息在各个agent上分配,解压以及激活,此处需要等待一些时间,时间根据服务器性能而异,我的物理机大约需要几分钟,虚拟机的话大约需要十几或者几十分钟,耐心等待,全部完毕后,点击继续

这里写图片描述
图3.7.1 集群安装(1)

这里写图片描述
图3.7.2 集群安装(2)

集群安装
图3.7.3 集群安装(3)

8.主机检验:CM自动为各个服务器进行检验,体检结果出来了,中间这两个警告可以忽略,CM会自动帮我们摆平的,如果有其他的问题,根据问题提示给予解决,点击完成。

主机检验
图3.8 主机检验

四:集群配置

  1. 各种不同的Hadoop搭配,根据个人需求自己选择,也支持自定义,本人选择了核心hadoop,点击继续。
    集群设置
    图4.1 集群设置

2.此处为各个CDH组件分配服务器,根据需求分配即可,我的经验是绝大部分可以默认,zookeeper以及hdfs的secondarynamenode需要改一下即可,点击继续.

组件分配
图4.2 组件分配

3.数据库选择以及测验

数据库配置
图4.3 数据库配置

4.此处是安装的CDH组件的配置信息,如果没有特定的配置或者特殊的要求,可以先都用默认值,后续再界面中可以修改,配置完毕后,点击继续

组件配置
图4.4 组件配置

5.集群各个组件初始化,耐心等待,初始化完毕后,点击完成即大功告成

集群各个组件初始化
图4.5 集群首次运行

原创粉丝点击