如何设置 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;
我想通过 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;