从parcel包谈起

问题导读

  • 什么是Parcel?
  • Parcel本地源与Package本地源的区别是什么?

Parcel本地源与Package本地源的区别

本地通过Parcel安装过程与本地通过Package安装过程完全一致,不同的是两者的本地源的配置。
区别如下:

Package本地源:软件包是.rpm格式的,数量通常较多,下载的时候比较麻烦。通过"createrepo ."的命令创建源,并要放到存放源文件主机的web服务器的根目录下,详见创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备

Parcel本地源:

  • 软件包是以.parcel结尾
  • 相当于压缩包格式的,一个系统版本对应一个,下载的时候方便。

如centos 6.x使用的CDH版本为CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel,而centos 5.x使用的CDH版本为CDH-4.3.0-1.cdh4.3.0.p0.22-el5.parcel。

CDH的下载地址:http://archive.cloudera.com/cdh4/parcels/
IMPALA的下载地址:http://archive.cloudera.com/impala/parcels/

下载好相应的.parcel文件后,拷贝到本地的parcel源目录下(有Cloudera Manager Server指定,默认是/opt/cloudera/parcel-repo),然后打开同目录下的mainfest.json(也要拷贝到其中)文件,找到与你下载的包一致的那部分,然后根据其创建一个sha文件。例如我的操作系统是CentOS 6.4,下载的对应包为CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel,那么就应该找到相应的:

{
      "parcelName": "CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel",
      "components": [
        { "name":     "flume-ng",
          "version":  "1.3.0-cdh4.3.0",
          "pkg_version":  "1.3.0+159" 
        }
        ,{ "name":     "hadoop-0.20-mapreduce",
          "version":  "2.0.0-cdh4.3.0",
          "pkg_version":  "2.0.0+1357" 
        },         
        ,{ "name":     "zookeeper",
          "version":  "3.4.5-cdh4.3.0",
          "pkg_version":  "3.4.5+19" 
        }
        ,{ "name":     "hue",
          "version":  "2.3.0-cdh4.3.0",
          "pkg_version":  "2.3.0+136" 
        }
      ],
      "hash": "df5cc61b2d257aaf625341f709a4f8e09754038a"
    },

然后创建一个后缀名为.sha的文本文件,名字与下载的parcel同名,我下载的为CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel,所以sha文件CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel.sha。然后执行如下命令将hash码写到sha文件中。

# cat > CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel.sha
df5cc61b2d257aaf625341f709a4f8e09754038a

然后将sha文件也拷贝到本地parcel源的目录下。
总之,要确保/opt/cloudera/parcel-repo下面有三个文件:

  CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel
   mainfest.json
   CDH-4.3.0-1.cdh4.3.0.p0.22-el6.parcel.sha

这些文件放好之后,CM会获取这个包,并出现在主机->包裹的页面。出现的快慢跟你设置的包的刷新频率有关,默认是1小时。
可以在管理页面的属性标签下的包裹种类里修改。

参考链接 CentOS 6.5 下 CDH 5.2.1 集群安装(一)

集群节点数量3 个


192.168.1.170 cdh-master

192.168.1.171 cdh-slave-1

192.168.1.171 cdh-slave-2

安装CentOS6.5 (64位)并搭建基本环境,包括:

  • 添加sudo 权限

  • 修改主机名、网关、静态IP地址、DNS

  • 关闭SELINUX、防火墙

可参考文章

  • 修改系统时区、配置ntp服务(首先可选宿主机器配置ntp server,参考文章)

克隆为三台机器,分别修改静态IP 地址、MAC、主机名、hosts文件:

主机名、网关修改 /etc/sysconfig/network文件

MAC 修改 /etc/udev/rules.d/70-persistent-net.rules

IP地址是修改 /etc/sysconfig/network-scripts/ifcfg-eth0

host 文件修改 /etc/hosts 需要添加集群内所有的主机名和ip的对应关系,而且主机名的名称要和真实的主机名(/etc/sysconfig/network)完全一致

下载clouder-manger的安装包及parcel文件:

cm 文件下载地址


cloudera-manager-daemons-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

cloudera-manager-server-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

cloudera-manager-agent-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

jdk-6u31-linux-amd64.rpm

oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

parcel 下载地址


CDH-5.2.1-1.cdh5.2.1.p0.12-el6.parcel

在master 节点安装daemons、server、agent(先装daemons)


yum --nogpgcheck localinstall cloudera-manager-daemons-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

yum --nogpgcheck localinstall cloudera-manager-server-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

yum --nogpgcheck localinstall cloudera-manager-agent-5.2.1-1.cm521.p0.109.el6.x86_64.rpm(注:agent安装需要联网)

五、在slave-1、slave-2节点安装daemons、agent(先装daemons)


yum --nogpgcheck localinstall cloudera-manager-daemons-5.2.1-1.cm521.p0.109.el6.x86_64.rpm

yum --nogpgcheck localinstall cloudera-manager-agent-5.2.1-1.cm521.p0.109.el6.x86_64.rpm(注:agent安装需要联网)

六、在master、slave-1、slave-2 节点安装JDK、oraclejdk

rpm -ivh jdk-6u31-linux-amd64.rpm

七、在master节点安装mysql 数据库,并配置cdh需要的数据库选项


yum install mysql-server mysql mysql-deve (注:需要联网)

chkconfig mysqld on

service mysqld start

mysql –u root

use mysql

update user set password=password('1234') where user='root'

update user set password=password('1234') where host='localhost'

update user set password=password('1234') where host='cdh-mater'

service mysqld restart

mysql -u root -p1234

create database cloudera

在master节点配置cloudera manager 数据库并启动cm的server及agent程序

  • 拷贝mysql-connector-java-5.1.7-bin.jar 到 /usr/share/java 下并重命名mysql-connector-java.jar

  • 运行 /usr/share/cmf/schema/scm_prepare_database.sh -h cdh-master mysql cloudera root 1234

  • 启动cm server :service cloudera-scm-server start

  • 添加cm server服务 :chkconfig cloudera-scm-server on

  • 启动cm agent :chkconfig cloudera-scm-agent on

  • 添加cm agent服务 :service cloudera-scm-server start

修改所有节点的agent 配置文件

/etc/cloudera-scm-agent/config.ini 将配置文件中的host 改成 cdh-master

在slave节点配置cloudera manager agent程序

  • 启动cm agent :chkconfig cloudera-scm-agent on

  • 添加cm agent服务 :service cloudera-scm-server start

测试agent和server是否通信成功


   service cloudera-scm-server status

   service cloudera-scm-agent status

   netstat –anp | grep 7182

server 端开启的是7182端口,用于和agent进行通讯

启动失败时可以查看日志


   server 日志 /var/log/cloudera-scm-server

   agent 日志 /var/log/cloudera-scm-agent

将下载的parcel文件及官方网站上获取对应版本的 sha 文件和 manifest.json文件上传至/opt/cloudera/parcel-repo目录下。

启动浏览器,开始集群web安装配置

问题导读

1.安装CDH5需要安装哪些软件?
2.这些软件的作用是什么?
扩展:
3.如何找到离线包?

系统环境
4台联想R510服务器,其中master节点4核心、8GB,其它节点双核心、4GB。
网卡:100M。
共有硬盘6TB。
网络环境内网。
Centos6.5 x64(安装系统时尽量把开发包安装齐全,另master节点需要Mysql可以在安装系统时勾选)。

准备工作卸载系统自带OPEN-JDK(所有节点)
安装好的Centos系统有时会自动安装OpenJdk,用命令java -version查看:

java version "1.6.0"
OpenJDK Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)

如有上述显示,说明系统里已经有OpenJdk,执行以下命令查看系统中有哪些OpenJdk相关包:

rpm -qa | grep java

其中有如下包必须卸载,根据系统版本不同,各个包版本号会有所差异: java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64 java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64 执行以下命令,卸载:

rpm -e --nodeps java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64

安装JDK(所有节点)
从官方网站上下载rpm包,本次使用版本1.7.0_55-b13(CDH5可能支持1.7之前的版本,具体情况未经测试),执行命令:

rpm -ivh jdk-7u55-linux-x64.rpm
复制代码

由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,执行命令:

echo "JAVA_HOME=/usr/java/latest/" >> /etc/environment
复制代码

执行命令,查看Jdk是否安装正确

java -version
javac -version
复制代码

修改主机名
修改/etc/sysconfig/network文件:

NETWORKING=yes
HOSTNAME=master.hadoop
NETWORKING_IPV6=no
GATEWAY=192.168.64.1

其中HOSTNAME与主机名一致。主机名如果跟系统安装时不一致请执行hostname命令让其立即生效,否则会影响各节点互相访问。修改/etc/hosts文件,添加:

192.168.1.101 master.hadoop
192.168.1.102 datanode1
192.168.1.103 datanode2
192.168.1.104 datanode3

执行命令:

service network restart

打通SSH(所有节点)
这里master节点和其他datanode节点会略有区别。 首先说有节点均执行如下命令,遇到提示一路回车即可:

ssh-keygen -t rsa
复制代码

然后在主节点执行以下命令:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

scp文件到所有datenode节点:

scp ~/.ssh/authorized_keys root@datanode1:~/.ssh/

然后输入密码即可,以后再到其他机器就不需要密码额。

关闭防火墙(所有节点)
防火墙会引起hadoop相关组件通讯的各种异常。 防火墙:

service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)


SELINUX:
setenforce 0 (临时生效)



修改/etc/selinux/config 下的 SELINUX=disabled (重启后生效)。

安装NTP服务(所有节点)
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下:

master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。
所有datanode节点以master节点为基础同步时间。

所有节点安装相关组件:ntp与ntpdate。按顺序安装即可,完成后,配置开机启动:

chkconfig ntpd on

检查是否设置成功:
chkconfig --list ntpd
复制代码

其中2-5为on状态就代表成功。

配置内网NTP服务器(master节点)
在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用65.55.56.206作为对时中心。

ntdate -u 65.55.56.206

复制代码

ntp服务只有一个配置文件,配置好了就OK。 这里只给出有用的配置,不需要的配置都用#注掉,这里就不在给出:

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap 
server 65.55.56.206 prefer
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

配置文件完成,保存退出,启动服务,执行如下命令:

service ntpd start
chkconfig ntpd on (设置开机启动)

检查是否成功,用ntpstart命令查看同步状态,出现以下状态代表启动成功:

synchronised to NTP server () at stratum 2
time correct to within 74 ms
polling server every 128 s

复制代码

如果出现异常请等待几分钟,一般等待5-10分钟才能同步。

配置ntp客户端(所有datanode节点)

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
server 192.168.1.101
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

ok保存退出,请求服务器前,请先使用ntpdate手动同步一下时间:

ntdate -u 192.168.1.101 (内网ntp服务器)
复制代码

这里可能出现同步失败的情况,请不要着急,一般是本地的ntp服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步。启动服务:

service ntpd start
chkconfig ntpd on
复制代码

因为是连接内网,这次启动等待的时间会比master节点快一些,但是也需要耐心等待一会儿。

Mysql配置(master节点)
只需要配置master节点的Mysql即可。(这里不再介绍如何安装Mysql) 将mysql设置为开机启动:

chkconfig mysqld on
复制代码

本次安装需要创建如下数据库(不包括Cloudera Manager的数据库,Cloudera Manager数据库有相关脚本创建,后面会有说明)

--hive数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci
--集群监控数据库
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci
--hue数据库
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci
复制代码

以上数据库,可能会根据安装组件的不同略有差别。 给用户授权(这里密码设为hadoop)

grant all on . to root@"%" Identified by "hadoop";
复制代码

正式开工安装Cloudera Manager 5(cm5)
下载地址http://archive-primary.cloudera.com/cm5/cm/5/,根据自己的系统选择相应的版本,本次安装选用的是cloudera-manager-el6-cm5.0.0_x86_64.tar.gz。下载完成后只上传到master节点即可。然后解压到/opt目录下,不能解压到其他地方,因为cdh5的源会默认在/opt/cloudera/parcel-repo寻找,怎么制作cdh5的本地源文件会在之后介绍。给所有节点添加cloudera-scm用户:

useradd --system --home=/opt/cm-5.0.0/run/cloudera-scm-server --no-createhome --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
复制代码

修改/opt/cm-5.0.0/etc/cloudera-scm-agent/config.ini 下面的serer_host
server_host=master.hadoop
复制代码

为Cloudera Manager 5建立数据库:
/opt/cm-5.0.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -phadoop --scm-host localhost scm scm scm
复制代码

格式是:scm_prepare_database.sh 数据库类型 数据库 服务器 用户名 密码 –scm-host Cloudera_Manager_Server所在的机器,后面那三个不知道代表什么,直接照抄官网的了。 因为我们用的是Mysql数据库,所以我们需要下载Mysql的JDBC驱动,本次从官网上下载最新稳定版:mysql-connector-java-5.1.30.tar.gz,解压之后找到mysql-connector-java-5.1.30-bin.jar放到/opt/cm-5.0.0/share/cmf/lib/目录下。 开启Cloudera Manager 5 Server端:

/opt/cm-5.0.0/etc/init.d/cloudera-scm-server start
复制代码

注意server首次启动不要立即关闭或重启,因为首次启动会自动创建相关表以及数据,如果因为特殊原因中途退出,请先删除所有表以及数据之后再次启动,否则将会出现启动不成功的情况。 开启Cloudera Manager 5 Agents端。 先scp /opt/cm-5.0.0到所有datanode节点上,然后在每台机器上开启Agents端:

scp -r /opt/cm-5.0.0 root@datanode1:/opt/cm-5.0.0
复制代码

等待拷贝成功,在所有datanode节点上启动:(注意必须以管理员权限启动)

sudo /opt/cm-5.0.0/etc/init.d/cloudera-scm-agent start
复制代码

浏览器启动Cloudera Manager 5 控制台(默认端口号是7180),启动成功就会看到登陆页面。

安装CDH5
先下载到本地http://archive-primary.cloudera.com/cdh5/parcels/5.0.0/,这里需要下载两样东西,首先是与自己系统版本相对应的parcel包,然后是manifest.json文件。下载完成后将这两个文件放到master节点的/opt/cloudera/parcel-repo下(目录在安装Cloudera Manager 5时已经生成),注意目录一个字都不能错,接下来打开manifest.json文件,里面是json格式的配置,我们需要的就是与我们系统版本相对应的hash码,因为我们用的是Centos6.5,所以找到如下位置:

在这个大括号的最下面找到“hash”所对应的值。

将“hash”的值复制下来,然后创建一个文件,文件名与你的parel包名一致,并加上.sha后缀:

这样你的目录下将有这3个文件,将“hash”的值复制到新建的sha文件中,并保存,好了,我们的本地源制作完成了。这样基本大功告成了,再之后的操作就是控制台按照步骤安装即可。

打开http://192.168.1.101:7180,登陆控制台,默认账户和密码都是admin,安装时选择免费版,之后由于cm5对中文的支持很强大,按照提示安装即可,如果系统配置有什么问题在安装过程中会有提示,根据提示给系统安装组件就可以了。

如果在安装时选择了安装Hive,可能会遇到安装失败的问题,查看一下日志发现时安装Hive时需要安装JDBC驱动,所以同样我们将Mysql的驱动包拷贝到/opt/cloudera/parcels/CDH-5.0.0-1.cdh5.0.0.p0.47/lib/hive/lib/目录下,之后再继续安装就不会遇到问题了。

posted @ 2015-09-17 23:13  hi_23  阅读(999)  评论(0)    收藏  举报