zoukankan      html  css  js  c++  java
  • hive、sqoop安装配置

    Hive

     

    hive体系架构

     

    提前安装好MySQL

    下载hive压缩包

    解压缩

    tar -zxvf  xx.tar.gz

    配置环境变量

    export HIVE_HOME=“hive的目录”

    export PATH=$HIVE_HOME/bin:$PATH

    hive-site.xml

    进入/soft/hive/conf目录,新建hive-site.xml,添加以下配置

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

    <configuration>

           <property>

             <name>javax.jdo.option.ConnectionDriverName</name>

             <value>com.mysql.jdbc.Driver</value>

           </property>

           <property> 

            <name>javax.jdo.option.ConnectionURL</name>

            <value>jdbc:mysql://192.168.17.131:3306/hive?createDatabaseIfNotExist=true</value>

           </property>

           <property>

           <name>javax.jdo.option.ConnectionUserName</name>

           <value>root</value>

           </property>

           <property>

           <name>javax.jdo.option.ConnectionPassword</name>

           <value>123456</value>

           </property>

    </configuration>

    hive-env.sh

    进入/soft/hive/conf目录,新建hive-env..xml,添加以下配置

    export HADOOP_HOME=/soft/hadoop

    将连接MySQL jar包放入lib目录下

    常用语句

    建表

    create table ***(a int,b string) row format delimited fields terminated by ',';

    员工表:

    create table emp(

       empno  string,

       ename string,

       job  string,

       mgr string,

       hiredate string,

       sal   double,

      comm  double,

      deptno string

    )row  format delimited fields terminated by ' ' ;

    部门表:

     create table dept(

       deptno string,

       dname string,

       loc string

    )row  format delimited fields terminated by ' ' ;

     薪水等级表:

      create table salgrade(

       grade int,

       losal  double,

       hisal double

    )row  format delimited fields terminated by ' ' ;

    导数据

    load data local inpath’路径’ into table **;

    修改表中的序列化分隔符:

    hive> alter table store set SERDEPROPERTIES('field.delim'=' ');

    常用函数

    内置

    数学函数

    round():四舍五入

    Ceil 向上取整

    Floor:向下取整

    Select round(3.562,2) ;

    Select ceil(4.3);

    字符串函数

         Lower    select lower(“HelloWorld”),upper(“HelloWorld”);

         upper

         Length

          Select length(“helloworld”);

         concat select concat()

         Substr   select substr(“helloworld”,3);

          Trim    select  trim(“   he   llo     ”);

          Lpad    select lpad(“hello”,10,”*”);

          rpad

    聚合函数

    Count     Sum     Max       Min        Avg

    自定义

    表连接查询

    查询员工信息:员工号、姓名、月薪、部门名称

    select empno,ename,sal,dname from emp join dept on emp.deptno=dept.deptno;

    查询员工信息:员工号、姓名、月薪、工资级别

    //两个表join的时候,不支持两个表的字段非相等操作。应该改成啥听老师明天讲

    select empno,ename,sal,grade from emp join salgrade on sal between losal and hisal;

    按部门统计员工人数:部门号、部门名称、人数

    //Hive不允许直接访问非group by字段;

    //对于非group by字段,可以用Hive的collect_set函数收集这些字段,返回一个数组;

    //使用数字下标,可以直接访问数组中的元素;

    select collect_set(dept.deptno)[0],dname,count(empno) from emp join dept on emp.deptno=dept.deptno group by dname;

    查询员工的姓名和员工的老板姓名

    select e2.ename,e1.ename from emp e1 join emp e2 on e1.empno=e2.mgr;

    SQOOP

    使用sqoop导入关系型数据库到hive

    sqoop.apache.com

    sqoop是apache旗下开源的框架,专门做数据的导入导出;

    解压tar

    设置环境变量

    export    SQOOP_HOME=/home/spark/sqoop/sqoop-1.4.6

    export    PATH=$PATH:$SQOOP_HOME/bin

    source /etc/profile

    验证: sqoop version

    cd sqoop_home/bin

    mysql驱动放到lib目录下

    检测sqoop是否与mysql连接成功

           sqoop list-databases --connect jdbc:mysql://192.168.17.131:3306/ --username root --password 123456

           输出MySQL中数据库信息表示连接成功

  • 相关阅读:
    一种复杂的情感--“外戚”
    追~
    神受的孩子
    不好的习惯
    思杨改编的朝代歌
    siyang入厕
    小思趣事
    今天周三啦~~时光啊
    Python(6)——装饰器
    Python(5)——关于描述符的三种操作方法
  • 原文地址:https://www.cnblogs.com/ghs1065248758/p/9761410.html
Copyright © 2011-2022 走看看