分享

Cloudera Manager和CDH4.1的安装

nettman 发表于 2014-9-16 16:25:55 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 0 9715
虽然现在已经了CDH5,但是很多问题都是在重复
问题导读:
1.CM如何安装?
2.如何设置yum的timeout?
3.启动impala时,impala daemon无法启动该如何解决?
扩展:
cm有几种安装方式?




刚开始安装时,觉得是各种麻烦。现在反思以下,觉得这个过程也不是太麻烦。下面我就把我在整个安装过程中,叙述如下,如果整个过程理解有错或不到位的地方,欢迎咱们互相交流,共同进步。
  • 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太强大了,它能帮你识别,帮助你开启相关服务。我开启的服务界面如下图所示:

1.png
在开启服务的过程中,其他的服务都正常开启了,但是最关键的我需要的服务却一直显示不良状态,如下图:
2.png
   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来建立初始数据库:
  1. $ mysql –u root –p
  2. mysql > CREATE DATABASE hivemetastoredb;
  3. mysql > USE hivemetastoredb;
  4. mysql > SOURCE /usr/lib/hive/scripts/metastore/upgrade/mysql/
  5. hive-schema-0.9.0.mysql.sql;
  6. mysql > CREATE USER ‘hive’@’%’ IDENTIFIED BY ‘hive’;
  7. mysql > CREATE ALL PRIVILEGES ON hivemetastoredb.* TO ‘hive’@’%’ WITH GRANT OPTION;
  8. mysql > FLUSH PRIVILEGES;
  9. mysql > QUIT;
复制代码

  
C:配置mysql用utf8作为默认的字符编码。
  1. $ vim /etc/my.cnf
  2. 在[mysqld]下加入
  3. Default-character-set=utf8
复制代码


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

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

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

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。

启动成功后可以看到如下界面:

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

  • 配置Hue Beeswax连接到Impala。
这个配置是为了让Hue Beeswax网站接口来执行Impala语句。修改/etc/hue/hue.ini,如下内容:
  1. [beeswax]
  2. beeswax_server_host=192.168.20.195
  3. beeswax_server_port=8003
复制代码

重启Hue服务。至此,impala这个服务也算是正常启动了。
最后说明一下,这次配置遇到的问题及解决方法。

问题一:无法安装hadoop-hdfs包。
如下图所示:
问题1.png

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

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

  1. $ rpm –qa | grep –i hadoop-1.0.3
  2. hadoop-1.0.3+20.38283-1.el6.x86_64
  3. $ rpm –ql hadoop-1.0.3+20.38283-1.el6.x86_64(查找安装的位置)
  4. $ rpm –e hadoop-1.0.3+20.38283-1.el6.x86_64(卸载)
复制代码


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

问题二:启动impala时,impala daemon无法启动

查看日志出现如下问题。

问题2.png
这个问题,说是连接到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,问题终于解决了。

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

问题3.png

安装到此算告一段落了,但是还有很多问题需要让我去探究,cloudera这么一个开源的,强大的公司,做的产品也是如此之美,我才只是初涉浅滩,摆在目前还有很多问题不能解决,如下:
1:impa为什么要依赖hive呢,又为何要独立配置数据库,
2:impalad和impala-state-store之间的具体关系是怎样的。
3:impala可以直接操作hdfs,那为什么启动服务时,它有依赖于HBase;
4:现在只是配置了伪分布式,在大型集群中,又该如何操作它们。

草原战狼

加微信w3aboutyun,可拉入技术爱好者群

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条