zoukankan      html  css  js  c++  java
  • Hive环境的安装部署(完美安装)(集群内或集群外都适用)(含卸载自带mysql安装指定版本)

      Hive 安装依赖 Hadoop 的集群,它是运行在 Hadoop 的基础上。 所以在安装 Hive 之前,保证 Hadoop 集群能够成功运行。

      同时,比如我这里的master、slave1和slave2组成的hadoop集群。hive的安装可以安装在任一一个节点上,当然,也可以安装在集群之外,取名为client。只需要ssh免密码通信即可。

    1、 下载Hive

      这里很简单,不多赘述。

    http://archive.apache.org/dist/

    2、安装Hive

      把Hive安装包apache-hive-1.0.0-bin.tar.gz移动到/home/hadoop/app/目录下并解压,然后将文件名称改为 hive-1.0.0。并做好软链接(实现多版本切换,别问这么多,高手必须掌握的技巧)

    [hadoop@master app]$ tar -zxvf apache-hive-1.0.0-bin.tar.gz
    [hadoop@master app]$ mv apache-hive-1.0.0-bin hive-1.0.0
    [hadoop@master app]$ ln -s hive-1.0.0  hive

    添加hive环境变量

    [root@master ~]$ vi /etc/profile


    #hive export HIVE_HOME
    =/home/hadoop/app/hive PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH


    [root@master ~]# source /etc/profile

      3、安装为hive存放元数据的MySQL

      Hive 将元数据存储在 RDBMS 中,一般常用 MySQL 和 Derby。默认情况下,Hive 元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。实际生产环境中不适用, 为了支持多用户会话,则需要一个独立的元数据库,使用 MySQL 作为元数据库,Hive 内部对 MySQL 提供了很好的支持,配置一个独立的元数据库需要增加以下步骤。

      如果你是一名有经验大数据工程师,无论是安装jdk(注意:CentOS6.5有自带的jdk),还是安装mysql。都是先查看系统是否已经安装Mysql包。

    [root@master app]# rpm -qa|grep mysql 
    mysql-libs-5.1.71-1.el6.x86_64
    [root@master app]# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
    [root@master app]# rpm -qa|grep mysql 
    [root@master app]#

     在线安装 mysql 数据库

    [root@master app]# yum install mysql-server
    Loaded plugins: fastestmirror
    Determining fastest mirrors
     * base: mirrors.yun-idc.com
     * extras: mirrors.btte.net
     * updates: mirrors.163.com
    ....
    Is this ok [y/N]: y
    ...

     

     启动mysql服务

    [root@master app]# service mysqld start
    Initializing MySQL database:  Installing MySQL system tables...
    OK
    Filling help tables...
    OK
    
    To start mysqld at boot time you have to copy
    support-files/mysql.server to the right place for your system
    ...

     

    设置 mysql 的 root 密码

      MySQL在刚刚被安装的时候,它的 root 用户是没有被设置密码的,即回车就好。但是一般需要自定义配置,首先来设置 MySQL 的 root 密码。

    [root@master app]# mysql -u root -p
    Enter password:           //默认密码为空,输入后回车即可
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.1.73 Source distribution
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    mysql> set password for root@localhost=password('rootroot');   密码设置为rootroot
    默认情况下Mysql只允许本地登录,所以只需配置root@localhost就好


    mysql> set password for root@%=password('rootroot');       密码设置为rootroot (其实这一步可以不配)
    
    
    mysql> set password for root@master=password('rootroot');   密码设置为rootroot (其实这一步可以不配)
    
    
    mysql> select user,host,password from mysql.user;    查看密码是否设置成功

    mysql> exit;

     

    为 Hive 建立相应的 Mysql 账户,并赋予足够的权限。

    [root@master app]# mysql -uroot -prootroot
    mysql> create user 'hive' identified by 'hive';    //创建一个账号:用户名为hive,密码为hive

    或者
    mysql> create user 'hive'@'%' identified by 'hive';    //创建一个账号:用户名为hive,密码为hive

    
    
    
    
     

    mysql> GRANT ALL PRIVILEGES ON *.* to 'hive'@'%' IDENTIFIED BY 'hive' WITH GRANT OPTION; //将权限授予host为%即所有主机的hive用户
    mysql> GRANT ALL PRIVILEGES ON *.* to 'hive'@'master' IDENTIFIED BY 'hive' WITH GRANT OPTION;  //将权限授予host为master的hive用户
    mysql> GRANT ALL PRIVILEGES ON *.* to 'hive'@'localhost' IDENTIFIED BY 'hive' WITH GRANT OPTION; //将权限授予host为localhost的hive用户(其实这一步可以不配)

    默认情况下Mysql只允许本地登录,所以需要修改配置文件将地址绑定给注释掉。


    Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)


    mysql> select user,host,password from mysql.user;



    mysql> exit;


     

    建立 Hive 专用的元数据库,记得用刚才创建的 “hive” 账号登录,命令如下。

    [root@master app]# mysql -uhive -phive //用hive用户登录,密码hive
    mysql> create database hive;   //创建为hive存放的元数据库的名称为hive
    Query OK, 1 row affected (0.00 sec)


    mysql>  exit;

     

    找到Hive安装目录 conf/下的 hive-site.xml文件,修改以下几个属性。

    如果conf/目录下没有 hive-site.xml文件,则需要拷贝一个名为hive-site.xml的文件。

    [hadoop@master conf]$ cp hive-default.xml.template hive-site.xml 
    [hadoop@master conf]$ vi hive-site.xml
    < property>
        < name>javax.jdo.option.ConnectionDriverName< /name>
        < value>com.mysql.jdbc.Driver< /value>
        < description>Driver class name for a JDBC metastore< /description>
    < /property>
    
    < property>
        < name>javax.jdo.option.ConnectionURL< /name>
        < value>jdbc:mysql://master:3306/hive?characterEncoding=UTF-8< /value>
        < description>JDBC connect string for a JDBC metastore< /description>
    < /property>
    
    < property>
        < name>javax.jdo.option.ConnectionUserName< /name>
        < value>hive< /value>
        < description>Username to use against metastore database< /description>
    < /property>
    
    < property>
        < name>javax.jdo.option.ConnectionPassword< /name>
        < value>hive< /value>
        < description>password to use against metastore database< /description>
    < /property>

    在hive 安装目录下,创建一个临时的IO文件iotmp,专门为hive来存放临时的io文件。

    
    
    [hadoop@master hive]$ pwd
    /home/hadoop/app/hive

    [hadoop@master hive]$ mkdir iotmp [hadoop@master hive]$ ls bin derby.log hcatalog lib metastore_db README.txt scripts conf examples iotmp LICENSE NOTICE RELEASE_NOTES.txt

    然后将路径配置到hive-site.xml文件的以下参数中:

    [hadoop@master conf]$ vi hive-site.xml
    < property>
        < name>hive.querylog.location< /name>
        < value>/home/hadoop/app/hive/iotmp< /value>
        < description>Location of Hive run time structured log file< /description>
    < /property>
          
    < property>
        < name>hive.exec.local.scratchdir< /name>
        < value>/home/hadoop/app/hive/iotmp< /value>
        < description>Local scratch space for Hive jobs< /description>
    < /property>
          
    < property>
        < name>hive.downloaded.resources.dir< /name>
        < value>/home/hadoop/app/hive/iotmp< /value>
        < description>Temporary local directory for added resources in the remote file system.< /description>
    < /property>

    将mysql-connector-java-5.1.21.jar驱动包,拷贝到 $HIVE_HOME/lib 目录下。

    [hadoop@master lib]#pwd
    /home/hadoop/app/hive/lib

    [hadoop@master lib]#rz //回车,选择已经下载好的mysql驱动包即可 [hadoop@master lib]$ ls mysql-connector-java-5.1.21.jar

      开启hive前,先启动mysql和hadoop集群

    [hadoop@master app]$ pwd
    /home/hadoop/app
    [hadoop@master app]$ service mysqld status
    

    [hadoop@master app]$ service mysqld start
     

     

    保存,开启hive即可。

    
    

    [hadoop@master hive]$ pwd
    /home/hadoop/app/hive
    [hadoop@master hive]$ ll
    total 400
    drwxrwxr-x. 3 hadoop hadoop 4096 Apr 12 11:01 bin
    drwxrwxr-x. 2 hadoop hadoop 4096 Apr 12 18:34 conf
    drwxrwxr-x. 4 hadoop hadoop 4096 Apr 12 11:01 examples
    drwxrwxr-x. 7 hadoop hadoop 4096 Apr 12 11:01 hcatalog
    drwxrwxr-x 2 hadoop hadoop 4096 Apr 12 18:34 iotmp
    drwxrwxr-x. 4 hadoop hadoop 4096 Apr 12 18:35 lib
    -rw-r--r--. 1 hadoop hadoop 23828 Jan 30 2015 LICENSE
    -rw-r--r--. 1 hadoop hadoop 397 Jan 30 2015 NOTICE
    -rw-r--r--. 1 hadoop hadoop 4044 Jan 30 2015 README.txt
    -rw-r--r--. 1 hadoop hadoop 345744 Jan 30 2015 RELEASE_NOTES.txt
    drwxrwxr-x. 3 hadoop hadoop 4096 Apr 12 11:01 scripts
    [hadoop@master hive]$ bin/hive


    hive
    > show databases; OK default Time taken: 3.684 seconds, Fetched: 1 row(s) hive> exit;

     

       我这里,给大家推荐一个极好的软件

    基于JDBC的跨平台数据库管理工具DbVisualizer安装步骤(图文详解)(博主推荐)

    
    




     

  • 相关阅读:
    hi.baidu.com 百度流量统计
    Autofac is designed to track and dispose of resources for you.
    IIS Manager could not load type for module provider 'SharedConfig' that is declared in administration.config
    How to create and manage configuration backups in Internet Information Services 7.0
    定制swagger的UI
    NSwag在asp.net web api中的使用,基于Global.asax
    NSwag Tutorial: Integrate the NSwag toolchain into your ASP.NET Web API project
    JS变量对象详解
    JS执行上下文(执行环境)详细图解
    JS内存空间详细图解
  • 原文地址:https://www.cnblogs.com/zlslch/p/6700695.html
Copyright © 2011-2022 走看看