内容纲要
概要描述
交警项目很多地市需要抽取数据,本文简单描述了如何查看使用inceptor抽取数据。
详细说明
确定要链接的集群的inceptor的ip地址,数据存取的HDFS服务所在的任一dn节点的ip
操作步骤
1. 通过beeline连接串连接到大数据平台的inceptor中
免密登陆访问,然后直接ssh 到inceptor节点
- source 命令在打开如上图的链接8180前面ip所属服务器操作
source /etc/transwarp/installation.conf
cat /etc/hosts
建议直接访问inceptor节点服务器,实际链接语句按实际情况为准,查找inceptor节点如下图
beeline -u jdbc:hive2://$(hostname):10000/default -n hive -p 123456
$(hostname):这个泛指为执行语句的机器的主机名,,可以准确指定,如inceptor节点hostname为dn07,则可以直接将$(hostname)改为dn07
2. 如果集群开启了安全,需要对HDFS进行认证
kinit hdfs/$(hostname) -kt /etc/hdfs1/hdfs.keytab
-
导出到hdfs方法
在hdfs上创建hive用户可操作的临时目录,并做相应的赋权操作hadoop fs -mkdir /tmp/data1 hadoop fs -chown hive:hive /tmp/data1 hadoop fs -chmod 777 /tmp/data1
-
导出到本地的方法:
在本地服务器建以下目录,并做相应的赋权操作mkdir /tmp/data1 chown -R hive:hive /tmp/data1/ chmod 777 /tmp/data1/
3. 通过操作1连接数据库后根据需要的条件编写SQL语句执行
set hyperbase.reader=true;
-
导出到HDFS上的方法:
INSERT OVERWRITE DIRECTORY '/tmp/data1' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '|' select * from cld_tfc_pass where key.gcsj >= '2020-04-01 00:00:00' and key.gcsj < '2020-05-01 00:00:00' and key.hphm like '%PZA688' and key.kkbh='00000001'; INSERT OVERWRITE DIRECTORY '/tmp/data1' select key.KKBH,key.GCSJ,key.HPHM,key.HPZL from cld_tfc_pass limit 10 ;
-
导出到本地的方法:
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/data1' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' COLLECTION ITEMS TERMINATED BY '|' select * from cld_tfc_pass where key.gcsj >= '2020-04-01 00:00:00' and key.gcsj < '2020-05-01 00:00:00' and key.hphm like '%PZA688' and key.kkbh='00000001'; INSERT OVERWRITE LOCAL DIRECTORY '/tmp/data1' select key.KKBH,key.GCSJ,key.HPHM,key.HPZL from cld_tfc_pass limit 10 ;
4. SQL语句执行成功后
- 在HDFS上/tmp/data1 下会看到导出的数据文件,通过HDFS命令将导出到HDFS上的数据文件拿到本地
hadoop fs -get /tmp/data1 /tmp
- 在本地服务器的/tmp/data1 下会看到导出的数据文件
- 注意:SQL语句执行时间视实际数据量大小而定,待SQL语句执行完后,相应目录下可能会出现没有数据文件的情况,这个需要等待一段时间后待数据写入到对应目录
- 注意:建议不要直接复制粘贴语句使用,以免发生语句格式问题