Hive搭建(认识Hive)

Hive环境搭建:

注意事项;
   因为是Hive,他是基于Hadoop之上,所以我们在Hive基本的环境搭建中,
   需要配置一台Hadoop伪分布式。。

1):安装
     解压安装(需要多次安装)
          tar -zxvf ./apache-hive-0.13.1-bin.tar.gz -C /opt/install/

         1.1)、yum命令安装(一次性安装即可)
                    #yum install mysql mysql-devel mysql-server   

2):修改名Hive原名
     安装完毕,修改名字
          mv ./apache-hive-0.13.1-bin/ hive-0.13.1

3):jdk
      需要jdk1.7版本,不能高不能低。

4):配置
      因为Hive是基于Hadoop上面,所以需要配置。  

        4.1): 打开hive安装目录,找到conf。

        4.2): 把hive-env.sh.template 修改成 hive-env.sh


                4.2.0):JAVA_HOME=/opt/install/jdk1.7.0_67    //如果不配置这个,那么就运行不成jar包

                4.2.1):# Set HADOOP_HOME to point to a specific hadoop install directory
                        HADOOP_HOME=/opt/install/hadoop-2.5.0
                        把安装hadoop的地址复制到home,因为Hive是基于hadoop的,所以首先要知道hadoop的安装地址


                4.2.2):# Hive Configuration Directory can be controlled by:
                        export HIVE_CONF_DIR=/opt/install/hive-0.13.1/conf
                        hive参数配置地址


5):创建系统文件:

        5.1):创建系统文件。
               创建hdfs文件,tmp与user/hive/warehouse
               因为hive创建表的数据,都是储存到hdfs上面。
                  可以先hfds dfs -ls / 查看所有信息,是否存在tmp与hove这样的文件。

                  hdfs dfs -mkdir -p user/hive/warehouse
                  hdfs dfs -mkdir /tmp

        5.2): 赋权限

            a. 创建hive目录
                [jerry@java08 hadoop-2.5.0-cdh5.3.6]$ ./bin/hdfs dfs -mkdir /tmp
                [jerry@java08 hadoop-2.5.0-cdh5.3.6]$ ./bin/hdfs dfs -mkdir -p /user/hive/wareshouse

            b. 修改目录权限
                [jerry@java08 hadoop-2.5.0-cdh5.3.6]$ ./bin/hdfs dfs -chmod 775 /tmp
                [jerry@java08 hadoop-2.5.0-cdh5.3.6]$ ./bin/hdfs dfs -chmod 775 /user/hive/wareshouse

        5.3):打开:
             在hive根目录命令:
                  $ bin/hive

               第一次打开hive会很慢,因为他需要创建一些准备的工作,比如元数据信息这些信息。

               到了hive> 这个界面就是CLI
                  如果遇见了问题,在操作数据库的时候,出现了问题,那么就查找你的tmp和hive文件
                  权限是否给足!因为当前使用用户组的来操作所在数据表的目录!
所有注意事项:
        1):配置derby数据库:
        当没有配置元数据的时候,他的数据全部储存到内存数据库汇总中,所以,只能拥有一个主机访问当前的CLI,如果
        超过一台访问,那么就会报错!   默认存储在自带的default数据库中,推介使用采用MySQL储存Metastore,
        所以我们要安装MySql~

yum安装数据库:
    4.1、yum命令安装
    #yum install mysql mysql-devel mysql-server

    4.2、启动服务
    #service mysqld start

    4.3、开机启动(启动mysql)
    #chkconfig mysqld on

    4.4、创建root管理员密码
    #mysqladmin -uroot password ‘123456’

    4.5、给用户和机器授权:
    #mysql -uroot –p123456
    mysql> grant all privileges on *.* to 'root'@'192.168.23.66' identified by 'root' with grant option;  

    grant all privileges on *.* to 'root'@'*' identified by 'tonglianhuiV' with grant option;  
     -- tonglianhuiV是密码



        >> 这段指令表示'192.168.71.88'的主机可以登陆该mysql server 

        ** 授权所有的数据库和所有的表
        grant all on *.* (第一个*是所有的数据库,第二个*是所有的表)

        ** 授权给你指定的用户和机器
        to 'root'@'beat' identified by 'root' with grant option;  

    4.6、刷新缓存
    mysql> flush privileges;

包安装数据库:
 1):检查是否系统自带安装Mysql
       [root@datanode1 hadoop]# rpm -qa | grep mysql  检查有没有Mysql安装包

       [root@datanode1 hadoop]# rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_64  删除自带的安装包

 2):安装Mysql数据库(可能需要root用户)
       2.1):首先安装service数据库(需要安装client方能链接):
             [root@datanode1 package]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm   

       2.2):安装成功会出现这样的提示!
              A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
              You will find that password in '/root/.mysql_secret'.
                       —— 提示密码在root/.mysql_secret

              [root@datanode1 package]# cat /root/.mysql_secret
                       —— 查看密码


       2.3):启动Mysql服务
             [root@datanode1 package]# service mysql start 
             [root@datanode1 package]# service mysql status

       2.4):安装client数据库:
            [root@datanode1 package]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm

             2.4.1): 从client连接service数据库:
                    mysql -uroot -pDPxXjTsSoGmoNkK5
                       如果没有权限,那么就需要回到Root用户的~目录下去设置

       2.5):修改密码与登陆权限信息:
               需要回到Root的~目录下才能登陆
             [root@datanode1 ~]# mysql -uroot -pDPxXjTsSoGmoNkK5

             mysql> SET PASSWORD=PASSWORD('123456');
             # mysqladmin -uroot password '123456'

            2.5.1):修改登陆Myql的权限
                   * mysql> show databases; 查到Mysql数据库
                   * mysql> use mysql; 选择Mysql数据库
                   * mysql> show tables; 查看所有表
                        select user,host,password from user;
                              查询这个表的user,host与密码的信息 
                         之所以连接不上,是因为user这个表里的host(主机)没有这
                               样的信息,所以,需要改写这个信息。

            2.5.2):修改user用户的主机登陆的信息
                    +------+-----------+-------------------------------------------+
                    | user | host      | password                                  |
                    +------+-----------+-------------------------------------------+
                    | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
                    | root | datanode1 | *F5B0128BB67C5B0B7B9DD5C3674A44C384202B9F |
                    | root | 127.0.0.1 | *F5B0128BB67C5B0B7B9DD5C3674A44C384202B9F |
                    | root | ::1       | *F5B0128BB67C5B0B7B9DD5C3674A44C384202B9F |
                    +------+-----------+-------------------------------------------+

                  * update user set Host='%' where user='root' and Host='localhost';
                  * delete from user where user='root' and Host='datanode1';
                  * delete from user where user='root' and Host='127.0.0.1';
                  * delete from user where user='root' and Host='::1';

            2.5.3、刷新缓存
                    mysql> flush privileges;;

配置Metastore(元数据)-Yum与包安装配置

1):配置元数据文本
           1.1):需要创建一个xml文件:

               [hadoop@datanode1 conf]$ touch hive-site.xml 

                           因为在Windows第一次来执行,就是Windows的
                           字符编码,那么的话,Linux那边肯定有问题,  
                           所以第一次必须在Linux系统打开

                        1.1.1):我们在hive-defalut.xml.tmplate(次文本仅参考)需要找一些头的信息放在里面:
                            <?xml version="1.0" encoding="UTF-8" standalone="no"?>
                            <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
                            <configuration>
                            </configuration>

            1.2):打开hive-defalut.xml.tmplate这个文件是非常的详细我们可以通过文本查看到三处警告:

                  * This file is provided for documentation purposes ONLY
                                这个文件只是提供文档的目的
+
                  * Any changes you make to this file will be ignored by Hive.
                                您所作的改变通过蜂巢这个文件将被忽略。
                                也就是说,在本文本改变的信息,全部被忽略

                  * You must make your changes in hive-site.xml instead
                             你必须让你的hive-site的变化。xml而不是 
                                 改变的值必须去这个hive-site.xml文件去做,所以我们需要创建这样的文件


                        1.2.1):我们需要在参考hive-defalut.xml.tmplate文本信息:

                               分别是: 
                                    * javax.jdo.option.ConnectionURL      URL配置

                                    * javax.jdo.option.ConnectionDriverName     驱动配置

                                    * javax.jdo.PersistenceManagerFactoryClass   用户名配置

                                    * javax.jdo.option.DetachAllOnCommit      密码配置

                                     我们需要拷贝这4条配置信息到hive-site.xml


               1.3):拷贝数据库驱动包[jar文件]到Hive的lib目录
                              [root@java08 ~]# mv /opt/software/mysql-connector-java-5.1.27-bin.jar /opt/modules/hive-0. 3.1-cdh5.3.6/lib/
                              注意(ysql-connector-java-5.1.27.tar.gz):
                                需要吧这个驱动放在hive的lib目录里面,否者会导致mysql找不到jdbc包,连接不上去




2):配置的元数据信息:

        <?xml version="1.0" encoding="UTF-8" standalone="no"?>
        <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

        <configuration>
        <property> 
                 <!-- Url-->
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://datanode1:3306/metastore?createDatabaseIfNotExist=true</value>
            <description>JDBC connect string for a JDBC metastore</description>
        </property>

        <!--  metastore?createDatabaseIfNotExist=true  如果不存在,就自动创建一个元数据 -->


        <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.ConnectionUserName</name>
            <value>root</value>
             <description>username to use against metastore database</description>
        </property>


        <property>
                 <!-- 数据库密码-->
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>root</value>
            <description>password to use against metastore database</description>
        </property>

        </configuration>
在使用中,我们操作HIVE的时候,需要显示当前数据库和一些信息,为了方便查看,需要修改。
  
<property>
        <!-- 操作hive时,显示信息-->
        <name>hive.cli.print.header</name>
        <value>true</value>
        <description>Whether to print the names of the columns in query output.</description>
</property>

<property>
        <!-- 操作hive时,显示信息-->
        <name>hive.cli.print.current.db</name>
        <value>true</value>
        <description>Whether to include the current database in the Hive prompt.</description>
</property>
      
      
设置表储存文件地址:
<property>
    <!--设置储存位置-->
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
</property>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值