• 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

  • 相关阅读:
    同上 Database Software Engineer(数据库软件设计工程师)
    通用电气医疗系统(中国)有限公司
    ge医疗无锡 招聘大量嵌入式软件开发人员
    Test Engineer (测试工程师)
    Flex beta2+XFire开发实例(二)
    flexmdi代码开放
    造船管理精细化
    Flex应用开发由浅入深系列1
    Flex beta2+XFire开发实例
    ILOG Diagrammer.NET 1.000 License Key
  • 原文地址:https://www.cnblogs.com/caoyuanzhanlang/p/2773502.html
Copyright © 2020-2023  润新知