萌新篇 —从零开始搭建自己的大数据环境-----hive篇

萌新篇 —从零开始搭建自己的大数据环境


前言

我事先创建好了opt文件,该文件里包含data,modules,software,tools,一般我把安装包存放在sofeware解压生成在modules。可以按照我这个方式去做,后期以便文件好找。mysql和hbase安装参考我前面的文章,这里就不是范例,过程使用的软件Notepad++(在这里修改配置文件比较方便)MobaXterm_Personal_20.2(远程登录linux)FlashFPX(把文件发送到linux上)。

一、hive简介

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。
hive不适合用于联机(online)事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。hive的特点包括:可伸缩(在Hadoop的集群上动态添加设备)、可扩展、容错、输入格式的松散耦合。

二、hive的优点

1、避免了去写 MapReduce,减少开发人员的学习成本
2、统一的元数据管理,可与 impala/ spark等共享元数据
3、易扩展(HDFS+ MapReduce:可以扩展集群规模;支持自定义函数)
4、数据的离线处理;比如:日志分析,海量结构化数据离线分析
5、Hive的执行延迟比较高,因此hve常用于数据分析的,对实时性要求不高的场合
6、Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高
更详细简介,点这里

hive和hbase的区别

3、配置hive

1.hive-env.sh.template和hive-log4j.properties.template修改名称

去掉.template

2.hive-env.sh配置

HADOOP_HOME=/opt/modules/hadoop           找到本机hadoop的位置pwd复制上去
export HIVE_CONF_DIR=/opt/modules/hive/conf    

3.hive-log4j.properties配置

mkdir logs      在hive目录下创建一个logs
cd    logs      
pwd             复制路径
hive.log.dir=/opt/modules/hive-0.13.1-bin/logs       

代码如下(示例):

4、在hdfs创建hive目录

1、bin/hdfs dfs -mkdir -p    /user/hive/warehouse
2、bin/hdfs dfs -chmod g+w   /user/hive/warehouse
3、bin/hdfs dfs -mkdir /tmp
4、bin/hdfs dfs -chmod g+w   /tmp
data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

5、启动

bin/hive

在这里插入图片描述

4、Hive与MySQL集成

1、在conf文件中是创建hive-site.xml,填入

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://panda-pro01.xiong.com/metastore?createDatabaseIfNotExist=true&amp;useSSL=false</value>
        </property>

        <property>
                <name>javax.jdo.otion.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>123456</value>
        </property>
                <property>
                <name>hive.cli.print.header</name>
                <value>true</value>
        </property>
        <property>
                <name>hive.cli.print.current.db</name>
                <value>true</value>
        </property>
</configuration>

2、设置用户的链接

打开mysql:mysql -uroot -p123456

1、show databases;
2、use mysql;
3、show tables;
4、select host,user,authentication_string from user;

更新信息

update user set Host='%' where User = 'root' and Host = 'localhost';

删除信息
删除前

1、delete from user where user='root' and host='panda-pro01.xiong.com';
2、delete from user where user='root' and host='127.0.0.1';
3、delete from user where user='root' and host='::1';
4、select user,host,password from user;

删除后只剩
在这里插入图片描述
刷新信息

flush privileges;

拷贝mysql-connector-java-5.1.48.jar到hive目录下的lib中
下载地址

3、启动测试

首先启动hdfs和yarn服务
1、创建一个数据文件内容随便写,格式如下

0001    hadoop
0002    java
0003    yarn
0004    spark

2、启动hive创建表

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

3、把文件加载到表中

load data local inpath '/opt/datas/test.txt' into table text; 

4、结果如下(select * from text)
在这里插入图片描述
5、提交任务给yarn

select count(1) from text;

在这里插入图片描述
可以在yarn的web界面看到
在这里插入图片描述

5、Hive与hbase集成

1、配置hive-site.xml

<property>
    <name>hbase.zookeeper.quorum</name>
    <value>panda-pro01.xiong.com,panda-pro02.xiong.com,panda-pro03.xiong.com</value>
</property>

2、进入lib目录

export HBASE_HOME=/opt/modules/hbase-0.98.6-hadoop2
export HIVE_HOME=/opt/modules/hive-0.13.1-bin/lib
-----------------不同版本号对应不同jar包,注意修改---------------------------------
ln -s $HBASE_HOME/lib/hbase-server-0.98.6-hadoop2.jar $HIVE_HOME/hbase-server-0.98.6-hadoop2.jar
ln -s $HBASE_HOME/lib/hbase-client-0.98.6-hadoop2.jar $HIVE_HOME/hbase-client-0.98.6-hadoop2.jar
ln -s $HBASE_HOME/lib/hbase-protocol-0.98.6-hadoop2.jar $HIVE_HOME/hbase-protocol-0.98.6-hadoop2.jar
ln -s $HBASE_HOME/lib/hbase-it-0.98.6-hadoop2.jar $HIVE_HOME/hbase-it-0.98.6-hadoop2.jar
ln -s $HBASE_HOME/lib/htrace-core-2.04.jar $HIVE_HOME/htrace-core-2.04.jar
ln -s $HBASE_HOME/lib/hbase-hadoop2-compat-0.98.6-hadoop2.jar $HIVE_HOME/hbase-hadoop2-compat-0.98.6-hadoop2.jar
ln -s $HBASE_HOME/lib/hbase-hadoop-compat-0.98.6-hadoop2.jar $HIVE_HOME/hbase-hadoop-compat-0.98.6-hadoop2.jar
ln -s $HBASE_HOME/lib/high-scale-lib-1.1.1.jar $HIVE_HOME/high-scale-lib-1.1.1.jar
ln -s $HBASE_HOME/lib/hbase-common-0.98.6-hadoop2.jar $HIVE_HOME/hbase-common-0.98.6-hadoop2.jar

3、创建与HBase集成的Hive的表

hive (default)> CREATE EXTERNAL TABLE weblogs(     
              > id string,
              > datatime string,
              > userid string,
              > searchname string,
              > retorder string,
              > cliorder string,
              > cliurl string 
              > )
              > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
              > WITH SERDEPROPERTIES (
              > "hbase.columns.mapping" = 
              > ":key,info:datatime,info:userid,info:searchname,info:retorder,info:cliorder,info:cliurl")
              > TBLPROPERTIES ("hbase.table.name" = "weblogs");

总结

关于hive基本配置就到这里了,作者萌新一位,如有不足之处还请见谅,如对你有帮助,点一点关注,谢谢咯。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Panda°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值