大数据之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里面的元数据的路径改了。
上一篇: Nginx快速搭建和基本使用
下一篇: Mybatis 01 环境搭建和基本使用