Cloudera Manager和CDH4.1的安装
Cloudera Manager和CDH4.1的安装
刚开始安装时,觉得是各种麻烦。现在反思以下,觉得这个过程也不是太麻烦。下面我就把我在整个安装过程中,叙述如下,如果整个过程理解有错或不到位的地方,欢迎咱们互相交流,共同进步。
- Cloudera Manager的安装需要先修改机器的三个配置:
- 关闭防火墙:service iptables stop;
- 关闭selinux:setenforce 0或修改/etc/selinux/config:SELINUX=disabled;
- 配置代理:在/etc/yum.conf加入如下内容:http_proxy=http://server:port。
- 最好在/etc/yum.conf增加timeout时间,timeout=55555。自己设置长点就行。
- 准备安装文件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位的吧。
- 在整个安装过程中,要确保你的机器能够联网,会出现让你选择的画面,一般就ENTER,next,accpet就行了,然后慢慢等待等到它自行安装结束。
- 启动cloudera manager:在浏览器输入你的主机,我的是http:192.168.20.195:7180。注册一个账号登陆如(admin,admin),进去后,会让我们选择主机,我就装了伪分布式,然后安装CDH4.1和impala,这个安装过程时间比较长,因为它是外国的网站,网络稳定与否对安装的影响很大,我装这个花费很长时间,期间如果出现某个安装包错误,就必须重新开始安装,因此强调下,最好使用一个干净的系统(没装过hadoop相关程序),它会去网上下载很多rpm包,默认地把hadoop,hbase,zookeeper,hive,impala等都装到了user/lib底下,耐心等待吧。
- 安装好了之后,我们就可以启动自己需要的服务,当然某些服务彼此会有依赖,没关系的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启动成功。
- 配置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