빅 데이터 의 하 이브 노트 (1)

필기 Hadoop 은 대량의 데이터 에 적합 한 분포 식 저장 과 분포 식 계산 프레임 워 크 이다.두 핵심 HDFS (hadop distributed file system) 분포 식 저장 MapReduce 분포 식 컴 퓨 팅 Hadoop 의 접근 방식 WebGUI 50070 – > hdfs 데이터 보기 및 namenode, datanode 건강 상태 8088 – > 클 러 스 터 mr 의 스케줄 링 상황 1988 – > job history 가 방문 하 는 웹 포트 10020 – > job history 통신 포트 CLI 를 볼 수 있 습 니 다.(Command Line Interface): hdfs dfs mv / ls / cp / get / put... Java Api: 주로 MR 을 작성 합 니 다.
SQL
    SQL      HDFS     ,         
1、hdfs             
            ,      RDBMS    。
                
    RE
2、hdfs         、 、 、     
    hdfs     --->rdbs       
    hdfs         (    )     -->rdbs     
    test.db
        person
    test1.db
        person
    package a
        person.java
    package b

person.java
Hive 의 개념 Hive 는 데이터 창고 의 기초 구조 인 데이터 창고 와 데이터 의 비교 1. 데이터 창고 에 저 장 된 데 이 터 는 회사 의 각 단계 의 의사 결정 에 데 이 터 를 지탱 할 수 있 는 데이터 2. 데이터 창고 에 저 장 된 데 이 터 를 마음대로 수정 할 수 없고 어느 정도 에 역사 history 의 데 이 터 를 저 장 했 기 때문에 어느 정도 에데이터 창고 안의 데 이 터 를 기본적으로 조회 하 는 것 입 니 다. 그러면 OLAP (Online analysis processing 온라인 분석 과정) 작업 도 데이터베이스 에 있 는 select 작업 DW (Data Warehouse EDW, DWH – > 데이터 창고) 는 OLTP (Online transcation processing 온라인 사무 처리) 에 적용 되 지 않 습 니 다.의 조작 3, DW 의 구축 은 어느 정도 에 RDBSM 을 바탕 으로 ETL Extraction (추출, 채집) Transformation (변환) Loading (로드) Hive 를 구축 하 는 것 입 니 다. SQL 의 분석 엔진 Hive 는 오늘 가장 중요 한 기능 은 데이터 창고 의 구축 * selectname, age, sex from person 을 담당 하 는 것 입 니 다. – > hdfs
메타 정보
Hive 의 Hadoop MySQL JDK 설치 MySQL 첫 번 째 단계: linux 위의 mysql 제거 이후 1, rpm - qa | grep mysql mysql - libs - 5.1.71 - 1. el6. x86 64 2, rpm - e – nodeps rpm -qa | grep mysql추천 사용 또는 rpm - e – nodeps mysql - libs - 5.1.71 - 1. el6. x86 64 두 번 째 단계: rpm - ivh MySQL - server. xxx. rpm rpm rpm - ivh MySQL - client. xxx. rpm 실행 설정 스 크 립 트: / usr / bin / mysql secure install 세 번 째 단계: 권한 부여 [root@master soft]# mysql -h master -uroot -proot ERROR 1130 (HY000): Host 'master' is not allowed to connect to this MySQL server 사용 mysql - urot - proot 로그 인 권한 부여 mysql > grant all privileges on. to 'root' @ '%' identified by 'root'; mysql > flush privileges; 네 번 째 단계: 부팅 항목 chkconfig mysql on 주의: 온라인 으로 설치 되 어 있 으 면 mysql 서비스 이름 은 mysqld 주의: [root@mastersoft] \ # rpm - qa | grep mysql – > 맞 춤 형 온라인 설치 방식
[root@mastersoft] \ # rpm - qa | grep MySQL – > 오프라인 설치 방식
Hive   
      ,    /opt/hive
        
        cp conf/hive-env.sh.template conf/hive-env.sh
        cp conf/hive-default.xml.template conf/hive-site.xml
      hive-env.sh,      
        export JAVA_HOME=/opt/jdk
        export HADOOP_HOME=/opt/hadoop
        export HIVE_HOME=/opt/hive
      $HIVE_HOME/conf/hive-site.xml
        
            javax.jdo.option.ConnectionURL
            jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true
        
        
            javax.jdo.option.ConnectionDriverName
            com.mysql.jdbc.Driver
        
        
            javax.jdo.option.ConnectionUserName
            root
        
        
            javax.jdo.option.ConnectionPassword
            root
        
        
            hive.querylog.location
            /opt/hive/tmp
        
        
            hive.exec.local.scratchdir
            /opt/hive/tmp
        
        
            hive.downloaded.resources.dir
            /opt/hive/tmp
        
      
        bin/hive
            (e.g. ./schematool -initSchema -dbType ...==>    
        bin/schematool -initSchema -dbType mysql -userName root -passWord root
      
         mysql-connector-java-5.1.39.jar   $HIVE_HOME/lib/   
        :Found Class jline.Terminal, but interface was expected
         jline.jar        ,

cp HIVEHOME/lib/jline−2.12.jar HADOOP_HOME/share/hadoop/yarn/lib

    hive.metastore.warehouse.dir
    /user/hive/warehouse
    dw hdfs     

Hive       :
    bin/hive -f /opt/data/hive-data/hive-demo.hql
    bin/hive -e "show databases; use default; show tables; select * from tttt;"
               ,     -e -f    !!!
    bin/hive -S -e "show databases; use default; show tables; select * from tttt;" > /opt/data/hive-data/result.csv
         ""  hql  slient    ,          /opt/data/hive-data/result.csv 
              
        bin/hive -f /opt/data/hive-data/hive-demo.hql --hiveconf hive.cli.print.header=true
               hive-demo.hql   set hive.cli.print.header=true;
        bin/hive -e "show databases; use default; show tables; select * from tttt;" --hiveconf hive.cli.print.header=true
                 ""   set hive.cli.print.header=true;
Hive     hdfs linux    
    linux
        !  ;
        eg. !pwd;
            /opt/hive
    hdfs:
        dfs -ls /;
        hive (default)> dfs -ls /;
        Found 5 items
        drwx------   - root supergroup          0 2016-10-27 19:55 /history
        drwxr-xr-x   - root supergroup          0 2016-10-28 00:45 /input
        drwxr-xr-x   - root supergroup          0 2016-10-28 02:46 /out
        drwxr-xr-x   - root supergroup          0 2016-10-30 22:02 /tmp

drwxr-xr-x - root supergroup 0 2016-10-30 23:05 /user
select w.word, count(w.word) as count from (select explode(split(line, ” “)) word from tttt) w
group by w.word order by count;
Hive 표 의 조작 표 구조의 조작 create table student (id int), student 에 열 또는 다 열 필드 alter table student add columns (name string, birthday date, online boolean) 를 추가 하고 원래 표 의 필드 정보 alter table student replace columns (id int) 를 교체 합 니 다.; 메모: 특정한 열 을 삭제 하 는 것 은 지원 되 지 않 습 니 다. replace 라 는 방식 으로 곡선 을 통 해 나 라 를 구 할 수 있 습 니 다. 열의 유형 이나 이름 을 수정 할 수 있 습 니 다.
alter table student change column id sid string;
Hive         
        
, \001-->shell ctrl+v,ctrl+a create table student(id int, name string, birthday date, online boolean); load data local inpath '/opt/data/hive-data/stu.txt' into table student; , , NULL。 ? , 。 Hive 。 , 。 ? 。 create table stu( id int, name string, birthday date, online boolean ) row format delimited --> fields terminated by '\t' -->

line terminated by '; – > 줄 의 구분자 가 지정 되 어 있 습 니 다. 기본 값 은 Liux 파일 줄 구분자 와 일치 합 니 다. 모두
Hive 의 복잡 한 데이터 형식 array create table t arr (id int, name string, hobby array)row format delimited fields terminated by '\ t'; load data local inpath '/ opt / data / hive - data / hive - array. txt' overwrite into table t arr; 데이터 가 모든 hobby 의 내용 을 정확하게 표시 하지 못 한 것 을 발 견 했 습 니 다. 분석 을 한 결과 실질 적 으로 array 에 해당 하 는 구분자 가 지정 되 지 않 았 거나 표 내용 의 구분자 가 지정 되 지 않 았 습 니 다. ""기본 구분자 가 아 닙 니 다. array 배열 요소 간 의 기본 구분자 가 \ 002 – > ctrl + v ctrl + b create table t arr 1 (id int, name string, hobby array) row format delimited fields terminated by '\ t' collection items terminated by ',' select hobby [index] from tblName 입 니 다. array 의 요소 map create table t map 에 접근 합 니 다.( id int, name string, score map

좋은 웹페이지 즐겨찾기