Hive第一天

1.上传tar包

2.解压
    tar -zxvf hive-1.2.1.tar.gz
3.安装mysql数据库
   推荐yum 在线安装

4.配置hive
    (a)配置HIVE_HOME环境变量  
        vi conf/hive-env.sh 
        配置其中的$hadoop_home

    
    (b)配置元数据库信息  
        vi  hive-site.xml 
        添加如下内容:
        <configuration>
        <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
        <description>JDBC connect string for a JDBC metastore</description>
        </property>

        <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>
    
5.安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
    如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
    mysql -uroot -p
    #(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

6. Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 
/home/hadoop/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar


启动hive
bin/hive
----------------------------------------------------------------------------------------------------
Hive几种使用方式:
    1.Hive交互shell      bin/hive
    
    2.Hive JDBC服务(参考java jdbc连接mysql)
    
    3.hive启动为一个服务器,来对外提供服务
        bin/hiveserver2
        nohup bin/hiveserver2 1>/var/log/hiveserver.log 2>/var/log/hiveserver.err &
        
        启动成功后,可以在别的节点上用beeline去连接
        bin/beeline -u jdbc:hive2://mini1:10000 -n root
        
        或者
        bin/beeline
        ! connect jdbc:hive2://mini1:10000
    
    4.Hive命令 
        hive  -e  ‘sql’
        bin/hive -e 'select * from t_test'


1、hive 建立一张表 跟已经存在的结构化的数据文件产生映射关系

    映射成功之后,就可以通过写sql来分析这结构化的数据  避免了写mr程序的麻烦
    
2、数据库  ---》  /user/hive/warehouse 下的一个文件夹对应
   表      ---》  数据库文件夹下面的子文件夹   /user/hive/warehouse/itcast.db/t_t1
   表的数据位置目前不能随便存放  一定要在指定的数据库表的文件夹下面
   建立表的时候 可能还需要指定分隔符 否则有可能映射不成功
   
3、建表的时候一定要根据结构化数据文件的分隔符类型  指定分隔符
   建表的字段个数和字段类型 要跟结构化数据中的个数类型一致
   分隔符一般使用内置的来指定  ROW FORMAT DELIMITED   分割字段  还是分割集合 等等
   
4、分区表字段不能够在表中已经存在
   分区字段是一个虚拟的字段  不存放任何数据
   分区字段的数据来自于装载分区表数据的时候指定的
   
   分区表的字段  在hdfs上的效果就是在 建立表的文件夹下面又创建了子文件
   这样的目的把数据的划分更加细致  减少了查询时候全表扫描的成本 只需要按照指定的分区扫描数据并显示结果即可
   
 5、分桶表 创建之前 需要开启分桶功能
    分桶表(分簇表)创建的时候 分桶字段必须是表中已经存储(存在)的字段
    也就是说你要按照表中那个字段进行分开
    针对分桶表的数据导入:load data方式不能够导成分桶表的数据  没有分桶效果 
    原因在于load  本质上相当于  hive 去帮我们执行 hadoop fs -put
    
    分桶表的数据 采用 insert+select 插入的数据来自于查询结果(查询时候执行了mr程序)
    对应mr当中的partitioner
    默认分桶规则 按照你指定的分桶字段clustered by哈希值 & 分桶的个数 set mapreduce.job.reduces=?
    
    分桶表也是把表所映射的结构话数据文件分成更细致的部分  但是更多的是用在join查询提高效率之上
    只需要把jion的字段在各自表当中进行分桶操作即可
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值