如何与Cloudera集群建立SQL / Hive连接以读取集群中存储的数据

时间:2018-11-22 12:44:08

标签: hive apache-spark-sql hadoop-streaming

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

sc = spark.sparkContext或类似的HIVECONTEXT或SPARKCONTEXT都不足够。

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

任何一个小例子就足够了。

1 个答案:

答案 0 :(得分:1)

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

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;

最后,验证Hive仓库分别将学生姓名存储在外部表和内部表中:

SELECT * FROM names_text;

SELECT * from Names;