标签:centos comm sel java 查看 tab use 研究 的区别
接着第一遍。中间间隔了大约半年的时间了,话不多说,直接进入主题。
这篇是主要是应用篇。目前的环境是4台机器 ,环境 centos 7.2 CDH5.10.2 网上很多安装教程,这边就不说明了。
Hive+HDFS篇。
1、路径问题
进入hive 的命令。直接 hive (当前的登陆用户登陆)或者 sudo -u username hive 以username的用户名登陆。
hive 的操作,相信对于玩过数据的人来说都是信手拈来。
hive 的存储是存放在hdfs中的。存放路径是
Hive 仓库目录
hive.metastore.warehouse.dir 在这个位置配置。如/data/hive/warehouse
如 库名 :user_db 表名是 user_table,则对应的路径是 /data/hive/warehouse/user_db.db/user_table
常用的命令
1、hadoop fs -ls ./ 列出
2、hadoop fs -put ./上传
3、hadoop fs -get ./下载
应用问题:
hive的默认分隔符是’\001‘,通过数据清洗时需要注意。
中间过程的清洗表建议使用rcf格式,这样不易出现由于数据问题导致的数据截断。建表语句后 +stored as rcfile; 如
create table hive_table(id string,name string) stored as rcfile; 即可。rcf和其他的格式的区别具体可在网上查看相关资料。
1、UDF
udf是个绝对的好东西,目前java自不必说,绝对的支持。另外喜欢研究python 的朋友,目前也是支持的,通过transform处理。
2、add file后面的路径可以是 Hive客户端所在的本地文件路径,也可以是Hdfs上的路径。ru add file ./ 本地路径 和 add file hdfs://./ hdfs路径
UDF函数调试的时候,可以使用【cat xx.txt|python udf.py】的方式,不用经过Hive客户端。
Hive传入python脚本中的数据,是通过‘\t‘来分隔的,所以Python脚本用通过.split(‘\t‘)来区分开;有时候,我们结合INSERT OVERWRITE使用上述TRANSFORM,而目标表,其分割副可能不是\t。但是请牢记:TRANSFORM的分割符号,传入、传出脚本的,永远是\t。
小强的Hadoop学习之路(二)
标签:centos comm sel java 查看 tab use 研究 的区别
原文地址:https://www.cnblogs.com/Derek86/p/9122533.html