Hive 관련 문장 및 jar 패키지 실행 사례 등

12256 단어 빅 데이터
Hive 의 문장
  • hdfs 에 있 는 목록 보기 show create table
  • reduce 개수 set mapred. reduce. tasks = 4 설정;
  • 내부 표를 만 들 고 구분자 지정
  • create table person(name STRING,age INT)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
  • 맵 파일 (내부 표)
  • hdfs 아래 표 에 있 는 폴 더 에 파일 복사
  • 로 컬 파일 에 비 추고 load 는 hdfs 의 / user / hiv / warehouse 에 파일 을 자동 으로 저장 합 니 다
  • load data hdfs 의 데 이 터 는 내부 표 든 외부 표 든 하 이브 리드 표 가 있 는 파일 로 자 릅 니 다.LOAD DATA LOCAL INPATH '/home/hadoop/hfxdoc/person.txt' OVERWRITE INTO TABLE person;

  • 맵 파일 (외부 표 생 성 및 맵)
  • create external table fz_external_table(id int,name string,age int,tel string)
    
        > ROW FORMAT DELIMITED
    
        > FIELDS TERMINATED BY ','
    
        > STORED AS TEXTFILE
    
        > location '/user/hive/external/fz_external_table';
  • 디 렉 터 리 여야 합 니 다. 파일 (hdfs 에서) location 을 사용 할 수 없 으 면 hive 데이터 창고 에서 볼 수 없고 location 을 사용 하지 않 으 면 hive 데이터 창고 에 저 장 됩 니 다 (표 데 이 터 를 삭제 하고 잃 어 버 리 지 않 습 니 다).

  • 구분 표
  • 창설
  • partition 은 row format 앞 에 두 어야 합 니 다
  • create external table demo1(id int,name string,age int)partitioned by (month string,day string)row format delimited fields terminated by ',';
  • 가 져 온 데이터 증가 파 티 션 시트 가 져 온 데 이 터 를 load data
  • 로 가 져 오 면
    load data local inpath '/opt/aa' into table demo1 partition(month='201808',day='02');
  • 파 티 션 alter table demo 1 add partition (month = '201808', day = '03') 만 생 성 합 니 다.
  • 파 티 션 삭제 alter table demo1 drop partition(month='201808',day='03');
  • 구역 수정 alter table demo1 partition()
  • 조회 데이터 복원 데이터 msck repair table dept_part
  • 구역 수정
    alter table demo1 partition(month='201808',day='02')rename to partition (month='201888',day='03');
  • 조회 데이터 select * from demo1 where month='201808' and day = '2';
  • 표 한 장 에 몇 개의 구역 show partitions demo1
  • 이 있 음 을 나타 낸다.
    데이터 이동
  • 로 컬 파일 을 Hive 표 load data local inpath 'path / file' 을 table 표 이름 으로 불 러 옵 니 다.
  • HDFS 파일 을 Hive 표 load data inpath 'path / file' into table 표 이름 으로 불 러 옵 니 다.
  • 데이터 덮어 쓰기 표 에 있 는 데이터 load data local inpath 'path / file' overwrite into table 표 이름 을 불 러 옵 니 다.
  • 표를 만 들 때 select 를 통 해 create table db 를 불 러 옵 니 다.0831.emp_as as select * from emp ;
  • 표를 만 들 때 location 지정 으로 불 러 오기
  • insert 명령 으로 insert into table 표 이름 select * from emp;insert overwrite table 표 이름 select * from emp;

  • create table as select
    제한. - 목표 표 는 파 티 션 표 가 아니 야. - 목표 표 는 외부 표 가 아니 야. - 목표 표 는 list bucketing 이 아니 야.
    데이터 내 보 내기
  • insert. directory 를 통 해 내 보 내기
  • insert overwrite local directory "/opt/mydata/exp" row format delimited fields terminated by '\t' select * from emp ;
  • hdfs 로 내 보 내기
  • insert overwrite directory “hdfspath/" select * from emp ;

    검색 어
  • 필드 추가 hive (test)> alter table t_t2 add columns(n int);
  • 구역 정보 보기 show partitions demo 1;
  • 테이블 이름 ALTER TABLE oldtable name RENAME TO newtablename 을 수정 합 니 다.
  • 앞의 두 줄 만 select * from student limit 2;
  • 한 표 의 줄 수 select count (*) from student 을 통계 합 니 다.
  • t - t2 에서 최대 값 select max (id) 를 조회 합 니 다.
  • 최소 값 select min (id) 을 t - t2 에서 조회 합 니 다.
  • 조회 평균 값 select avg (id) from t - t2;
  • 조회 총액 select sum (id) from t - t2;
  • 내 접속 조회
  • select * from t_t1 a join t_t2 b on a.id=b.id;//a 와 b 는 별명
  • select a.name,b.name from t_t1 a join t_t2 b on a.id=b.id;


  • sort by
  • 내림차 선택 * from emp sort by sal desc;

  • order by
  • id 정렬 에 따라 select * from person order by id;
  • 먼저 id 에 따라 정렬 한 후 name 에 따라 select * from person order by id, name;
  • 내림차 순 정렬 select * from person order by id desc;
  • 오름차 순 배열 select * from person order by id asc;
  • id 오름차 순, age 내림차 순 select * from person order by id asc, age desc;

  • group by
  • id 로 그룹 을 나 누고 sum selection id, sum (age) from person order by id;
  • 여러 줄 을 그룹 으로 나 누 어 selection id, age from person group by id, age;

  • distribute by
  • id 로 나 누 어 reduce 하고 id 로 select * from person distribute by id sort by id;
  • id 로 나 누 어 reduce 하고 age 로 select * from person distribute by id sort by age;

  • cluster by
  • Maprediuce 의 파 티 션 select * from person cluster by id 와 유사 합 니 다.select * from person distribute by id sort by id;효과 동일
  • distribute 와 sort 를 사용 하여 그룹 정렬 하기
    select * from person distribute by id sort by age;
    복제 표 구조
    create table demo1 like demo2;
    연표 조회
    수정 표
  • 필드 이름 a alter table demo 변경 a 1 int;
  • 변경 테이블 데모 이름 을 새 이름 으로 변경;

  • 명령 보이 기
  • 파 티 션 테이블 정보 표시 show partitions tablename;
  • 현재 버 전 hive 가 지원 하 는 모든 방법 show functions 를 표시 합 니 다.
  • 표 정보 보기 desc extends tablename;
  • 표 정보 보기 (포맷 미관) desc formatted tablename;
  • 데이터베이스 관련 정보 보기 describe databasename;

  • 보기 와 색인
  • 보기 만 들 기 create view viewname as select * from emp where sal > 2000;
  • 조회 보기 select * from viewname
  • 보기 삭제 drop view viewname;
  • 색인 만 들 기 Hive > index 만 들 기test on table emp (empno) as ‘org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler’ with deferred rebuild ;—데이터 재 구축 색인 추가
  • 재 구성 색인 alter indextest on emp rebuild;
  • 색인 삭제 drop indextest on student;

  • Hive 상용 함수
  • 함수 show functions 가 있 는 지 확인 하기;
  • rand 함수, 0 에서 1 의 난수 select rand ()
  • 생 성
  • concat 함수 (문자열 맞 춤 법) select concat (id, name) from person;select concat(id,”_”,name)from person;
  • substr 함수 (문자열 캡 처) select substr (name, 1, 2) from person;
  • cast 형식 변환 select cast (1.22 as int);
  • 보기 시간 select hour ('2018 - 9 - 8 13: 21: 23');select day(‘2018-9-8 13:21:23’);

  • hiveUDF 함수
  • org. apache. hadop. hive. ql. hiveUDF 함 수 를 계승 해 야 합 니 다
  • evaluate 함 수 를 실현 해 야 합 니 다. evaluate 함 수 는 과부하 지원
  • 설정 파일 이 잘못 되 었 습 니 다. maven - 오른쪽 키 maven - uodate procject - 스냅 샷 / 릴 리 스 의 force update 를 선택 하 십시오.
  • 프로필
  • <dependency>
               <groupId>org.apache.hivegroupId>
               <artifactId>hive-execartifactId>
               <version>0.13.1version>
           dependency>
           <dependency>
               <groupId>org.apache.hivegroupId>
               <artifactId>hive-jdbcartifactId>
               <version>0.13.1version>
           dependency>
           <dependency>
               <groupId>org.apache.hadoopgroupId>
               <artifactId>hadoop-commonartifactId>
               <version>2.5.0version>
           dependency>
  • 대소 문자 인 스 턴 스 코드
  • package weice.gao.hive;
    
    import org.apache.hadoop.hive.ql.exec.UDF;
    import org.apache.hadoop.io.Text;
    
    public class hiveDemo1 extends UDF{
        public Text evaluate(Text s){
            if(s==null){return null;}
            return new Text(s.toString().toLowerCase());
    
        }
    //  public static void main(String[] args) {
    //      hiveDemo1 demo1 = new hiveDemo1();
    //      System.out.println(demo1.evaluate(new Text("aaaAAA")));
    //  }
    
    }
  • jar 패키지 실행
  • jar 가방 을 hive 에 add jar / opt / bb. jar;
  • 임시 함 수 를 만 들 고 임시 함수 데 모 를 'weice. gao. hive. hiveDemo 1' 로 만 듭 니 다. \ #weice. gao. hive. hiveDemo 1 은 class 가 jar 가방 에 있 는 위 치 를 나타 내 고 demo 는 함수 명
  • 입 니 다.
  • select name, demo (name) 를 실행 합 니 다.
  • jar 패키지 드 롭 임시 기능 데모 삭제;
  • 좋은 웹페이지 즐겨찾기