前提 Hadoop环境
可以参考:Hadoop分布式安装
Hive 安装
步骤和安装hadoop一致,可以参考上面的博客链接
ubuntu@master1:/soft$ sudo cat /etc/environment
JAVA_HOME=/soft/jdk
HADOOP_HOME=/soft/hadoop
HIVE_HOME=/soft/hive
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/soft/jdk/bin:/soft/hadoop/bin:/soft/hadoop/sbin:/soft/hive/bin"
source /etc/environment
Hive配置
hive/conf/hive-env.sh指定Hadoop目录
1 复制
2 修改
配置hive的元数据库
使用rdbms存储元数据 内置了derby数据库
hive/conf/hive-default.xml.template //hive默认的配置 不需要更改 直接创建一个即可
修改这个文件
${system:java.io.tmpdir}------------->/home/ubuntu/hive
${system:user.name}----------------->ubuntu0
创建ubuntu0
mkdir /soft/hive/ubuntu0
使用Hive
初始化schema库
schematool -initSchema -dbType derby
完成后会在当前目录下创建一个metastore_db(元数据库)
登陆元数据库
在matastore_db所在的文件夹下执行
hive
Hive使用
show tables;//显示所有表
show database; //显示库
help;//查看所有帮助
create databsae myhive;//创建库
use myhive;//应用表
hdfs dfs -lsr / 查看hdfs文件
Hive创建表
三种方式
1 直接创建表
create table t1(
id int
,name string
,hobby array<string>
,add map<String,string>
)
row format delimited
fields terminated by ','
collection items terminated by '-'
map keys terminated by ':'
;
Hive将HDFS上的文件映射成表结构,通过分隔符来区分列(比如’,’ ‘;’ or ‘^’ 等),row format就是用于指定序列化和反序列化的规则。
逗号用于分割列,即FIELDS TERMINATED BY char,分割为如下列 ID、name、hobby(该字段是数组形式,通过 ‘-’ 进行分割,即COLLECTION ITEMS TERMINATED BY ‘-’)、address(该字段是键值对形式map,通过 ‘:’ 分割键值,即 MAP KEYS TERMINATED BY ‘:’);
而FIELDS TERMINATED BY char用于区分不同条的数据,默认是换行符
查看表的描述
desc t1;