zoukankan      html  css  js  c++  java
  • 使用阿里云主机离线部署CDH步骤详解

    一、Linux文件系统准备

    1. 拍摄快照

            登录阿里云控制台,拍摄快照,注意有几个关键点尽量拍摄快照,系统初始状态、CM环境准备完成、CM安装完成、CDH安装完成。

    2. 挂载设备 

            三个主机都执行。

    • 创建挂载目录
    $mkdir /data
    • 查看设备
    $df -h
    $fdish -l

            得知/dev/vdb没有挂载

    • 格式化设备
    $mkfs.ext3 /dev/vdb
    • 编写开机自动挂载脚本
    $mkdir /opt/shell/
    $vim /opt/shell/mymount.sh
    #!/bin/bash
    #
    mount -o rw /dev/vdb /data
    • 修改权限
    $chmod 777 /opt/shell/mymount.sh
    • 设置开机运行
    $vim /etc/rc.local

            在文件中加入一行

    /opt/shell/mymount.sh

    二、系统环境准备

    1. 网络配置

    • 修改hostname。三台机器分别改为cdh01、cdh02、cdh03。
    $vim /etc/sysconfig/network
    • 重启网络服务。
    $service network restart
    • 修改IP与主机名的对应关系。
    vi /etc/hosts
    内网ip1 cdh01
    内网ip2 cdh02
    内网ip3 cdh03

    2. SSH两两免密码登录

            三个云主机要设置自身免密码登录,并且三个云主机之间设置两两免密码登录。以cdh01为例:

    • 设置自身免密码登录

            在cdh01产生密钥,将公钥追加重定向到认证文件中。在三台机器中都执行如下命令:

    $ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    $cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
    • cdh01免密码登录到cdh02

            将cdh01的公钥远程拷贝到cdh02中,这时需要输入cdh02的密码;再在cdh02中将已经远程拷贝过来的cdh01的公钥追加重定向到cdh02的认证文件中。这是因为私钥加密,公钥解密,cdh01与cdh02通信需要先用私钥加密,私钥加密的要用公钥解密,所以要将cdh01的公钥追加到cdh02的认证文件中。

    $scp ~/.ssh/id_dsa.pub root@cdh02:~
    $cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
    • cdh01免密码登录到cdh03
    $scp ~/.ssh/id_dsa.pub root@cdh03:~
    $cat ~/id_dsa.pub >> ~/.ssh/authorized_keys

            同理可以完成cdh02免密码登录到cdh01和cdh03,cdh03免密码登录到cdh01和cdh02。

    3. 关闭防火墙

    • 临时关闭
    $service iptables stop
    • 永久关闭需重启生效
    $chkconfig iptables off

    4. 关闭SELINUX

    $vim /etc/selinux/config

            将SELINUX=enforcing 修改为 SELINUX=disabled

    • 查看SELINUX状态
    $/usr/sbin/sestatus

             执行$/usr/sbin/sestatus,可见SELINUX status:(enabled:开启;disabled:关闭)

    5. 安装JDK

    • 采用RPM包安装
    $rpm -ivh jdk-7u79-linux-x64.rpm
    • 配置环境变量
    $vim /etc/profile
    export JAVA_HOME=/usr/java/jdk1.7.0_79
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    • 使环境变量生效
    $source /etc/profile

    6. 安装时间同步

    • 所有节点安装NTP
    $yum -y install ntp
    • 设置开机启动
    $chkconfig ntpd on
    • 检查是否设置成功
    $chkconfig --list ntpd
    • 设置时间同步
    $ntpdate -u ntp1.aliyun.com

    7. 主节点安装MySQL

    • 查看并卸载之前版本

            查看系统是否安装了MySQL,使用命令

    $rpm -qa | grep mysql

            卸载命令类似下面

    $rpm -ev mysql-*.RHEL4.1
    $yum -y remove mysql-libs-5.1.71-1.el6.x86_64
    • 继续查看是否有未删尽的目录
    $find / -name mysql

            删除查找出的所有mysql目录,例如:

    $rm -rf /var/lib/mysql
    $rm -rf /var/lib/mysql
    $rm -rf /usr/lib64/mysql
    $rm -fr /usr/include/mysql
    • 手动删除my.cnf文件

            卸载后/etc/my.cnf有可能不会删除,需要进行手工删除。

    rm -f /etc/my.cnf
    • 再次查找机器是否安装mysql
    $rpm -qa|grep -i mysql

            如果无结果,说明已经卸载彻底。

    • 安装mysql

            使用如下命令安装Server和Client:

    $rpm -ivh MySQL-server-5.6.*.rpm
    $rpm -ivh MySQL-client-5.6.*.rpm
    $rpm -ivh MySQL-devel-5.6.*.rpm

            注意MySQL的版本选择5.5或5.6,因其和Hadoop生态圈的Oozie、Hue、Hive/Impala、Sqoop等的兼容性比较好。

    • 启动MySQL

            查看状态

    $service mysql status

            如果没有运行,则使用如下命令启动:

    $service mysql start
    • 设置开机启动
    $chkconfig --add mysql
    #或者
    $chkconfig mysql on

            查看是否生效

    $chkconfig --list mysql
    • 查看初始密码
    $cat /root/.mysql_secret
    • 给mysql设置root密码

            使用如下命令进入mysql:

    $mysql -u root -p

            输入密码初始密码后进入MySQL命令行,再修改密码。

    mysql>SET PASSWORD = PASSWORD('newpwd');
    mysql>quit;

            退出后再用新密码测试

    $mysql -uroot -pnewpwd 

            如果可以登录成功,则表示mysql数据库已经安装成功。

    8. 下载安装第三方依赖包

            所有节点都需下载安装依赖包。

    $yum -y install chkconfig python 2.6 required for CDH 5 bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb 

    三、安装Cloudera Manager Server&Agent

    1. 安装 Cloudera Manager Server&Agent

    • 上传文件

            拷贝cloudera-manager-el6-cm5.6.1_x86_64.tar.gz 到所有Server、Agent节点

    • 创建 cm 目录
    $mkdir /opt/cloudera-manager 
    • 解压 cm 压缩包
    $tar -zxvf /opt/tools/cdh/cloudera-manager-el6-cm5.6.1_x86_64.tar.gz -C /opt/cloudera-manager 

    2. 创建用户 cloudera-scm(所有节点)

    • 所有节点创建用户
    $useradd --system --home=/opt/cloudera-manager/cm-5.6.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
    • 查看用户是否成功创建:
    $cat /etc/passwd 

    3.  配置CM Agent

            所有的Agent机器都需要修改

            修改文件/opt/cloudera-manager/cm-5.6.1/etc/cloudera-scm-agent/config.ini中server_host以及server_port。

            server_host=cdh01,server_port 7182

    4. 配置CM server数据库

            在主节点执行。

    • 拷贝jar包

            拷贝/opt/tools/cdh/目录下的mysql jar文件到目录/usr/share/java/中,并且jar包名要修改为mysql-connector-java.jar。如果没有java目录需要先创建。

    $mkdir /usr/share/java
    $cp /opt/tools/cdh/mysql-connector-java-5.6-bin.jar /usr/share/java/mysql-connector-java.jar  

            因为在启动时会到这个目录下找jar包,如果没有找到就认为没有jar包,会报数据库JDBC connection的错误。

    • 创建临时账户

            进入mysql,创建临时账户,来于建立数据库。

    mysql>grant all on *.* to 'temp'@'%' identified by 'temp' with grant option;
    mysql>FLUSH PRIVILEGES;
    • 执行scm_prepare_database.sh脚本
    $cd /opt/cloudera-manager/cm-5.6.1/share/cmf/schema/
    $./scm_prepare_database.sh mysql temp -h cdh01 -utemp -ptemp --scm-host cdh01 scm scm scm
    • 删除临时用户
    mysql> drop user 'temp'@'%';

    5. 创建Parcel目录

    • Server节点 

            在Server节点创建parcel-repo目录并修改权限。

    $mkdir -p /opt/cloudera/parcel-repo
    $chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
    • Agent节点

            所有Agent节点创建parcels目录并修改权限。

    $mkdir -p /opt/cloudera/parcels
    $chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

    6. 制作CDH本地源

            直接上传已下载文件CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel.sha1和CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel。或者直接用wget下载:

    $wget http://archive-primary.cloudera.com/cdh5/parcels/5.6.1/CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel.sha1 >> /dev/null &
    $wget http://archive-primary.cloudera.com/cdh5/parcels/5.6.1/CDH-5.6.1-1.cdh5.6.1.p0.3-el6.parcel >> /dev/null & 

            将这两个文件拷贝到/opt/cloudera/parcel-repo目录下。

    7. 启动CM Manager&Agent服务

    • 进入目录
    $cd /opt/cloudera-manager/cm-5.6.1/etc/init.d/
    • 先启动Server

            首次启动会自动创建表以及数据,不要立即关闭或重启,否则需要删除所有表及数据重新安装。

    $./cloudera-scm-server start
    • 后启动所有Agents
    $./cloudera-scm-agent start
    •  查看日志

             Cloudera Manager的安装日志在/opt/cloudera-manager/cm-5.6.1/log目录下,其中有agent、server和cmf三个文件夹。server在启动的时候会启动很多脚本,对数据库的创建、包的操作,会花费一段时间。

    四、安装CDH

    1. CDH集群的安装

    • 登录到CM客户端(浏览器)

            地址:http://cdh01公网ip:7180/

            用户名:admin

            密码:admin

    • Cloudear Manager部署版本的选择

    • 为CDH集群的安装指定主机

            将三台云主机全选。

    • 选择储存库

            使用Parcel方法,CDH版本选择5.6.1。

    • 集群正确性检测 

    如果出现警告,按提示解决即可

    例如:echo never > /sys/kernel/mm/transparent_hugepage/defrag”以禁用此设置。然后将同一命令添加到 /etc/rc.local 等初始脚本中,以便在系统重启时予以设置。

    • 自定义脚本分配

    2. 为集群添加Hive服务

     

    3. 为集群添加Sqoop服务

    最终可见安装完成的界面如下:

    作者:Huidoo_Yang
    本文版权归作者Huidoo_Yang和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    初学者bootstrap(五)JavaScript插件(上)在路上(6)
    初学者bootstrap(三)下载与安装在路上(7)
    Viewport响应式 Web 设计在路上(13)
    初学者动画(一)在路上(3)
    svn添加强制注释,precommit结合python
    ftpclient卡死问题
    @Transactional失效的问题
    javamail发送二进制流附件的问题
    springmvc附件上传核心代码
    kafka集群配置与测试
  • 原文地址:https://www.cnblogs.com/yangp/p/8520229.html
Copyright © 2011-2022 走看看