zoukankan      html  css  js  c++  java
  • Hadoop学习

    Hadoop是一个框架,里面比较重要的是:

    HDFS(分布式存储),核心功能,把数据分布的存储在各个服务器上,通过配置文件去配置各个服务器的地址

    Hive(写HQL的地方),通过写sql去HDFS里面操作数据,增删改查等等,他是基于MapReduce的,MapReduce实现将任务拆分成大量独立任务,并可以同时运行(效率很高),但要写很长的代码,通过Hive 就能直接写sql去实现 MapReduce的功能。

    HBase/Sqoop 这两个是为了很方便从传统数据库导数据进HDFS

    20170526

    Hadoop最主要的作用是进行数据分析,通俗的说,就是你其他地方有一个超级大的文件要进行分析(或者是数据库文件),然后上传到hadoop中,在通过写mapreduce去进行分析(在我的理解当中,这和直接写代码分析是一样的,只不过在hadoop中是分布式,效率会666),而hive也是一样,不过他只处理sql,所以进行分析的时候 先将数据导入到hive中,然后在写sql进行分析。

    20170614

    打包编译hadoop的mapreduce程序:

    1.编译  javac WordCount.java

    2.将程序打包成jar包  jar -cvf WordCount.jar ./WordCount*.class  

    3.执行  hadoop jar WordCount.jar org.apache.hadoop.examples.WordCount input output      input是写入的地方,output是结果输出的地方

    使用hdfs:hadoop fs -ls /  前面都要输入hadoop fs(忘记在哪配置的了)

    hive的建表语句:

    create table ticket(age INT,price FLOAT)ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' ESCAPED BY '\' STORED AS TEXTFILE;

    -- ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '        以tab为隔断符

    -- STORED AS TEXTFILE      指定文件存储格式为“TEXTFILE”。

    -- ESCAPED BY '\'          "\"进行转义

    采用外部表:

    create external table person_ext(name STRING,age INT)ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' ESCAPED BY '\' STORED AS TEXTFILE LOCATION '/tmp/ticket'

    Hive中表与外部表的区别:
    1、在导入数据到外部表,数据并没有移动到自己的数据仓库目录下,也就是说外部表中的数据并不是由它自己来管理的!而表则不一样;
    2、在删除表的时候,Hive将会把属于表的元数据和数据全部删掉;而删除外部表的时候,Hive仅仅删除外部表的元数据,数据是不会删除的!
    那么,应该如何选择使用哪种表呢?在大多数情况没有太多的区别,因此选择只是个人喜好的问题。但是作为一个经验,如果所有处理都需要由Hive完成,那么你应该创建表,否则使用外部表!

  • 相关阅读:
    我是5型
    现在的我,有两个状态。我要去找第三个
    什么是BNF范式,什么又是EBNF范式?
    又是好久不写日志
    语料库资源汇总
    原生js与css3结合的电风扇
    JavaScript基础2
    JavaScript基础1
    JavaScript基础4
    JavaScript基础3
  • 原文地址:https://www.cnblogs.com/tangbinghaochi/p/6709113.html
Copyright © 2011-2022 走看看