大数据之Hive(二)-Hive安装运行环境搭建和Hive基本操作

1、Hive安装和配置

Hive1.2.1资源
链接:https://pan.baidu.com/s/14kVGv6CUGPufPOD57LShGg
提取码:69op

1、通过XFTP工具将Hive的压缩包远程传输到Linux的/opt/software目录下

在这里插入图片描述

2、解压apache-hive-1.2.1-bin.tar.gz到/opt/module/目录下面

[zhukun@hadoop102 software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/

在这里插入图片描述

3、修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh

[zhukun@hadoop102 conf]$ mv hive-env.sh.template hive-env.sh

4、配置hive-env.sh文件
配置HADOOP_HOME路径

export HADOOP_HOME=/opt/module/hadoop-2.7.2

配置HIVE_CONF_DIR路径

export HIVE_CONF_DIR=/opt/module/hive/conf

在这里插入图片描述

2、Hadoop集群配置

1、必须启动hdfs和yarn

[zhukun@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
[zhukun@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

在这里插入图片描述
在这里插入图片描述

2、在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写

[zhukun@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -mkdir /tmp
[zhukun@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -mkdir -p /user/hive/warehouse
[zhukun@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -chmod g+w /tmp
[zhukun@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -chmod g+w /user/hive/warehouse

在这里插入图片描述
在这里插入图片描述

3、Hive基本操作

1、启动hive

[zhukun@hadoop102 hive]$ bin/hive

在这里插入图片描述

2、查看数据库

hive> show databases;

在这里插入图片描述

3、打开默认数据库

hive> use default;

4、显示default数据库中的表

hive> show tables;

在这里插入图片描述

5、创建一张表

hive> create table teacher(id int, name string);

在这里插入图片描述
在这里插入图片描述

6、查看表的结构

hive> desc teacher;

在这里插入图片描述

7、向表中插入数据

hive> insert into teacher values(1001,"zhangshan");

可能会报如下错误:
在这里插入图片描述
失败原因:经查发现发现/tmp/hadoop/.log提示java.lang.OutOfMemoryError: Java heap space,原因是namenode内存空间不够,jvm不够新job启动导致。
解决方法:将你的hive可以设置成本地模式来执行任务试试:

hive> set hive.exec.mode.local.auto=true;

再次插入数据后就成功了
在这里插入图片描述

8、查询表中数据

hive> select * from teacher;

在这里插入图片描述

9、退出hive

hive> quit;

4、将本地文件导入Hive的案例

需求:将本地/opt/module/datas/student.txt这个目录下的数据导入到hive的student(id int, name string)表中。

1.数据准备

在/opt/module/datas这个目录下准备数据
(1)在/opt/module/目录下创建datas

[zhukun@hadoop102 module]$ mkdir datas

(2)在/opt/module/datas/目录下创建student.txt文件并添加数据

[zhukun@hadoop102 datas]$ touch stu.txt
[zhukun@hadoop102 datas]$ vi stu.txt

在这里插入图片描述
注意以tab键间隔。

2.Hive实际操作

1、启动hive

[zhukun@hadoop102 hive]$ bin/hive

2、创建stu表, 并声明文件分隔符’\t’

hive> create table stu(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

3、加载/opt/module/datas/student.txt 文件到stu数据库表中

hive> load data local inpath '/opt/module/datas/stu.txt' into table stu;

4、Hive查询结果

hive> select * from stu;

5、将HDFS文件系统上的文件导入Hive

在HDFS文件系统的根目录下上传一个stu2.txt
在这里插入图片描述

hive> load data inpath '/stu2.txt' into table stu;

在这里插入图片描述
发现根目录下的stu2.txt直接没了。相当于将这个文件移动到了/user/hive/warehouse下,
实际上没有移动数据只是把NameNode里面的元数据的路径改了。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值