代码之家  ›  专栏  ›  技术社区  ›  Tilo

如何使用cloudera群集设置SQL/Hive连接以读取存储在群集上的数据

  •  0
  • Tilo  · 技术社区  · 6 年前

    我想通过Hive、Spark或SQL检索存储在Hadoop Cloudera集群上的数据。我编写了SQL查询,它应该从集群获取数据。 但在此之前,我想了解如何使用集群设置连接/游标,以便它知道从何处读取或写入?

    sc = spark.sparkContext

    我们可能需要为节点和所有节点提供URL。那怎么做呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Vin    6 年前

    有两种方法可以在配置单元中创建表:

    1-创建外部表架构:

    CREATE EXTERNAL TABLE IF NOT EXISTS names_text(
              student_ID INT, FirstName STRING, LastName STRING,    
              year STRING, Major STRING)
              COMMENT 'Student Names'
              ROW FORMAT DELIMITED
              FIELDS TERMINATED BY ','
              STORED AS TEXTFILE
              LOCATION '/user/andrena';
    

    2-a)为托管表创建架构:

    CREATE TABLE IF NOT EXISTS Names(
      student_ID INT, FirstName STRING, LastName STRING,    
      year STRING, Major STRING)
      COMMENT 'Student Names'
      STORED AS ORC;
    

    b) 将外部表数据移动到托管表:

    INSERT OVERWRITE TABLE Names SELECT * FROM names_text;
    

    最后,验证配置单元仓库是否分别在外部表和内部表中存储学生姓名:

    SELECT * FROM names_text;
    
    SELECT * from Names;