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

how to set up SQL/Hive connection with cloudera cluster to read data stored on cluster

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

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

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

任何小例子就足够了。

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

1- 创建外部 table 架构:

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) 为托管 table 创建架构:

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

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

INSERT OVERWRITE TABLE Names SELECT * FROM names_text;

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

SELECT * FROM names_text;

SELECT * from Names;