程序员

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

作者:admin 2021-07-29 我要评论

萌新篇 —从零开始搭建自己的大数据环境 文章目录 萌新篇 —从零开始搭建自己的大数据环境 前言 一、hive简介 二、hive的优点 3、配置hive 1.hive-env.sh.templa...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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


前言

我事先创建好了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基本配置就到这里了,作者萌新一位,如有不足之处还请见谅,如对你有帮助,点一点关注,谢谢咯。

;原文链接:https://blog.csdn.net/qq_52137951/article/details/115799144

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 萌新篇 —从零开始搭建自己的大数据环

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

  • 关于离线开发平台的优化思路

    关于离线开发平台的优化思路

  • 码哥小赵上线了

    码哥小赵上线了

  • Redis——Redis通用指令和服务器配置

    Redis——Redis通用指令和服务器配置

腾讯云代理商
海外云服务器