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

原文地址:https://www.cnblogs.com/caoyuanzhanlang/p/2773502.html