Cloudera Manager和CDH4.1的安装

 

Cloudera Manager和CDH4.1的安装

         刚开始安装时,觉得是各种麻烦。现在反思以下,觉得这个过程也不是太麻烦。下面我就把我在整个安装过程中,叙述如下,如果整个过程理解有错或不到位的地方,欢迎咱们互相交流,共同进步。

  1. Cloudera Manager的安装需要先修改机器的三个配置:
    1. 关闭防火墙:service iptables stop;
    2. 关闭selinux:setenforce 0或修改/etc/selinux/config:SELINUX=disabled;
    3. 配置代理:在/etc/yum.conf加入如下内容:http_proxy=http://server:port。
    4. 最好在/etc/yum.conf增加timeout时间,timeout=55555。自己设置长点就行。
  2. 准备安装文件cloudera-manager-installer.bin,这是个二进制文件,下载地址:https://ccp.cloudera.com/display/SUPPORT/Cloudera+Manager+Downloads,这个要在64位的机器上运行,我让它运行在CentOS-6.2,x86_64上。然后设置下执行权限,chmod u+x cloudera-manager-installer.bin,接着就直接执行它./ cloudera-manager-installer.bin。这里有个问题,在我自己的虚拟机上一直运行不了,出现的问题:cannot execute binary file,可能因为它是32位的吧。
  3. 在整个安装过程中,要确保你的机器能够联网,会出现让你选择的画面,一般就ENTER,next,accpet就行了,然后慢慢等待等到它自行安装结束。
  4. 启动cloudera manager:在浏览器输入你的主机,我的是http:192.168.20.195:7180。注册一个账号登陆如(admin,admin),进去后,会让我们选择主机,我就装了伪分布式,然后安装CDH4.1和impala,这个安装过程时间比较长,因为它是外国的网站,网络稳定与否对安装的影响很大,我装这个花费很长时间,期间如果出现某个安装包错误,就必须重新开始安装,因此强调下,最好使用一个干净的系统(没装过hadoop相关程序),它会去网上下载很多rpm包,默认地把hadoop,hbase,zookeeper,hive,impala等都装到了user/lib底下,耐心等待吧。
  5. 安装好了之后,我们就可以启动自己需要的服务,当然某些服务彼此会有依赖,没关系的cloudera manager太强大了,它能帮你识别,帮助你开启相关服务。我开启的服务界面如下图所示:

 

 在开启服务的过程中,其他的服务都正常开启了,但是最关键的我需要的服务却一直显示不良状态,如下图:

 

   Impala没正常启动,这是我这次研究的重中之重。出现问题,就开始找问题,后来发现是impala和数据库(我用的是mysql)没连接成功。下面着重讲述下配置mysql连接impala。

  Impala的运行需要有配置了Mysql或PostgreSQL的hive metastore,hive本身支持的derby数据库,impala不支持。

  一、配置远程数据库作为Hive Mestastore。

  A:安装MySQL JDBC连接器,从'http://www.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.22.tar.gz下载连接器,并把解压后的mysql-connector-java-5.1.22-bin.jar文件拷贝至/usr/lib/hive/lib下。

  B:MySQL管理员需要用hive-schema-0.9.0.mysql.sql来建立初始数据库:

$ mysql –u root –p

mysql > CREATE DATABASE hivemetastoredb;

mysql > USE hivemetastoredb;

mysql > SOURCE /usr/lib/hive/scripts/metastore/upgrade/mysql/

hive-schema-0.9.0.mysql.sql;

mysql > CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘hive’;

mysql > CREATE ALL PRIVILEGES ON hivemetastoredb.* TO ‘hive’@’%’ WITH GRANT OPTION;

mysql > FLUSH PRIVILEGES;

mysql > QUIT;

   C:配置mysql用utf8作为默认的字符编码。

$ vim /etc/my.cnf

在[mysqld]下加入

Default-character-set=utf8

 这是因为,impala去连接mysql时所用到的连接字符串为:URL="jdbc:mysql://localhost:3306/hivemetastoredb?useUnicode=true&characterEncoding=UTF-8”,它默认用的就是utf8。

 二、新增Impala服务

进入cloudera manager管理界面,新增impala服务,点击impala,点击配置,可看到如下界面:

在这个配置里面,需要配置如下参数:

Property

Value

DataNode Local Path Access Users dfs.block.local-path-access.user

impala

DataNode Data Directory Permissions dfs.datanode.data.dir.perm

755

Enable HDFS Block Metadata API dfs.datanode.hdfs-blocks-metadata.enabled

true

Enable HDFS Short Circuit Read dfs.client.read.shortcircuit

true

 

 

 

 

 

 

 

Hive Metastore的配置如上图所示,数据库连接密码:hive。

三、配置好impala后,点击重新启动impala。启动成功后可以看到如下界面:

 

两个服务都完成,才算impala启动成功。

  1. 配置Hue Beeswax连接到Impala。

这个配置是为了让Hue Beeswax网站接口来执行Impala语句。修改/etc/hue/hue.ini,如下内容:

[beeswax]

beeswax_server_host=192.168.20.195

beeswax_server_port=8003

 

重启Hue服务。至此,impala这个服务也算是正常启动了。

最后说明一下,这次配置遇到的问题及解决方法。

问题一:无法安装hadoop-hdfs包。

如下图所示: 

         图中说明的错误是:事务验证出错,后面的信息显示了是版本冲突问题。也就是说,本来电脑里面已经有装了hadoop-1.0.3现在和cloudera的hadoop-hdfs-2.0.0冲突,导致hadoo-hdfs无法安装,也就使得安装失败,又得重新来一次了,悲剧啊。

         解决问题,我找到了系统里安装hadoop-1.0.3的所有包,然后把它们全部删掉,包括安装的目录。

$ rpm –qa | grep –i hadoop-1.0.3

hadoop-1.0.3+20.38283-1.el6.x86_64

$ rpm –ql hadoop-1.0.3+20.38283-1.el6.x86_64(查找安装的位置)

$ rpm –e hadoop-1.0.3+20.38283-1.el6.x86_64(卸载)

 卸载过程中,可能会有包依赖,没关系,继续按照上述方法把他们全部删光,重新安装就行啦。

问题二:启动impala时,impala daemon无法启动,查看日志出现如下问题。

 

这个问题,说是连接到mysql被禁止,但是我用java自己做了个程序去连接mysql没有问题,很奇怪,

javax.jdo.JDOFatalDataStoreException: Access denied for user 'hive'@'localhost' (using password: YES),最主要是这句话,我本来连接数据库是,用root登录mysql建立了个新用户hive,然后不使用密码,同时在impala中的配置目录里,默认数据库用户hive登录也是不需要密码的,但是却始终连不上,后来经过分析这句话,using password:YES,也就是说,本来不需要密码,你却用了密码登陆到mysql,这就有问题了,也就是说,虽然配置里的密码是空的,但是impala默认还是以有密码的形式登录到mysql,这样连接就一直被禁止了。解决的方案是:删掉hive用户,建立一个用户名和密码都是hive的用户接着,把配置里密码也输入hive,问题终于解决了。

问题三:如下图,这个问题不大,没什么影响。

安装到此算告一段落了,但是还有很多问题需要让我去探究,cloudera这么一个开源的,强大的公司,做的产品也是如此之美,我才只是初涉浅滩,摆在目前还有很多问题不能解决,如下:

1:impa为什么要依赖hive呢,又为何要独立配置数据库, 

2:impalad和impala-state-store之间的具体关系是怎样的。

3:impala可以直接操作hdfs,那为什么启动服务时,它有依赖于HBase;

4:现在只是配置了伪分布式,在大型集群中,又该如何操作它们。

 

--------------------------------------------------------------------------------------------------------------------------------------本文说明得有些简陋,希望得到高手们的指点,谢谢。

--------------------------------------------------------------------------------------------------------------------------------------草原战狼 2012/11/16 16:42

posted @ 2012-11-16 16:43  草原战狼  阅读(10170)  评论(1编辑  收藏  举报
草原战狼淘宝小店

No one indebted for others,while many people don't know how to cherish others.

No one indebted for others,while many people don't know how to cherish others.

Don‘t cry because it is over, smile because it happened.

Don‘t try so hard, the best things come when you least expect them to.