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安装步骤(图文详解)(博主推荐)

    
    




     

  • 相关阅读:
    Java实验四
    Java第八周学习总结
    Java实验三
    输入输出练习
    第七周
    20145113 实验二 Java面向对象程序设计
    2020-2021-1 20209306 《linux内核原理与分析》第九周作业
    2020-2021-1 20209306 《linux内核原理与分析》第八周作业
    2020-2021-1 20209306 《linux内核原理与分析》第七周作业
    2020-2021-1 20209306 《linux内核原理与分析》第六周作业
  • 原文地址:https://www.cnblogs.com/zlslch/p/6700695.html
Copyright © 2011-2022 走看看