我完成了我的hadoop课程,现在我想在Hadoop上工作。我想知道从数据提取到可视化数据的工作流程。
我知道eco系统组件是如何工作的,我已经构建了带有8个datanode和1个namenode的hadoop集群: 1 namenode --Resourcemanager,Namenode,secondarynamenode,hive 8个数据节点 - datanode,Nodemanager
我想知道以下事项:
请建议我怎么做。
提前致谢。
答案 0 :(得分:1)
我可以直接处理数据,因为这些是tar文件。
是的,请参阅以下解决方案。
如果是,如何删除前四行中的数据
启动 Hive v0.13.0 ,创建表时会有一个表属性tblproperties ("skip.header.line.count"="1")
告诉Hive
要忽略的行数。忽略前四行 - tblproperties ("skip.header.line.count"="4")
CREATE TABLE raw (line STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
CREATE TABLE raw_sequence (line STRING)
STORED AS SEQUENCEFILE
tblproperties("skip.header.line.count"="4");
LOAD DATA LOCAL INPATH '/tmp/test.tar' INTO TABLE raw;
SET hive.exec.compress.output=true;
SET io.seqfile.compression.type=BLOCK; -- NONE/RECORD/BLOCK (see below)
INSERT OVERWRITE TABLE raw_sequence SELECT * FROM raw;
查看数据:
select * from raw_sequence
答案 1 :(得分:0)
按照以下步骤实现目标:
根据描述在配置单元中创建元数据(即表格) 例如:如果描述包含emp_id,emp_no等,则使用此信息在hive中创建表,并记下数据文件中使用的字段分隔符,并在create table query中使用相应的字段分隔符。假设该文件包含两个以逗号分隔的列,则下面是在hive中创建表的语法。
Create table tablename (emp_id int, emp_no int)
Row Format Delimited
Fields Terminated by ','
由于数据采用结构化格式,您可以使用以下命令将数据加载到hive表中。
LOAD DATA LOCAL INPATH '/LOCALFILEPATH' INTO TABLE TABLENAME
。
现在,本地数据将被移动到hdfs并加载到hive表中。
最后,您可以使用SELECT * FROM TABLENAME;