hive:对数据的处理(客户端)

hive是将类sql(HQL)语句转换成功 mapreduce程序执行的(默认,还可以将hql语句转换为spark程序处理)。
所以hive会将要处理的数据和表、数据库、字段做一个映射(hive的元数据),hive元数据的保存方式就决定了hive的运行、安装模式。

hive的安装使用,hive安装模式:

1. 嵌入模式:hive自带有 Derby 数据库用来存储元数据。Derby数据有两个问题:a. 同时只允许一个客户端连接b. Derby数据库属于内存数据库,会在运行的时候在启动目录下生成一个 配置文件,如果下次使用的时候不在原来的目录中启动,就会造成原来创建的数据库、表等内容找不到
2. 本地模式:将hive元数据使用外部的数据库存储。一般在本地安装MySQL,使用mysql来存储hive元数据(MariaDB是MySQL的分支,使用和MySQL类似,安装过程中会更简单)
3. 远程模式:将hive元数据保存在远程服务器上(不在当前电脑上)

虚拟机网络连接

在安装MariaDB的时候,需要虚拟机能够连接外网。
VMware中点击 【编辑】 菜单---》【虚拟网络编辑器】
选中 vmnet8 网卡,点击 【NAT设置】配置:默认网关:192.168.137.2主机端口: 5000类型:TCP虚拟机IP:192.168.137.1虚拟机端口号:50000
在虚拟机中,查看虚拟机的默认网关是否为 192.168.137.2
vim  /etc/sysconfig/network-scripts/ifcfg-ens33
查询文件中 `GATEWAY` 的值是否为: 192.168.137.2
如果不是,就修改为默认网关。修改之后,需要重新启动网卡:service network restart
网卡启动之后,再次通过 ping 8.8.8.8  和 ping  www.baidu.com 来测试是否可以连接到外网。

MariaDB的安装:

1. 通过 yum -y install mariadb* 安装mariaDB
2. 安装成功之后,启动mariadb服务:systemctl start mariadb.service
3. 设置mariadb开机启动systemctl enable mariadb.service
4. mariadb初始化设置mysql_secure_installation

初始化设置是,需要注意以下几个地方

Enter current password for root (enter for none):    <------ 直接回车
Set root password? [Y/n]   <-----    是否设置root用户的密码 输入 Y
New password:       <-------root用户的密码,这里介意大家使用  root
Re-enter new password:  <----- 再次输入root用户密码    root
Remove anonymous users? [Y/n]   <----- 是否删除匿名用户   直接回车
Disallow root login remotely? [Y/n] <---- 是否禁止root用户远程登录   输入 n
Remove test database and access to it? [Y/n]  <----- 是否删除test数据库   直接回车
Reload privilege tables now? [Y/n]   <----- 是否重新加载权限   直接回车
5. 登录mariadb测试:mysql -u root -pEnter password:            <------  输入root用户密码  root
此时标识mariadb安装成功。

Hive安装:

1. 上传安装包使用xftp 将hive-2.3.5-bin.tar.gz 上传到 Linux的 /opt 目录下
2. 解压并配置环境变量进入到 /opt 目录下:cd  /opt解压hive:tar -zxf apache-hive-2.3.5-bin.tar.gz -C ./解压完成之后,会生成一个 apache-hive-2.3.5-bin解压目录名称较长,重命名为hive-2.3.5:mv  apache-hive-2.3.5-bin hive-2.3.5

环境变量配置,在 /etc/profile.d/my_env.sh文件中添加如下所示的内容:

vim /etc/profile.d/my_env.sh文件中添加如下所示的内容:# 配置hive环境变量export HIVE_HOME=/opt/hive-2.3.5export PATH=$PATH:$HIVE_HOME/bin   保存退出。执行  source /etc/profile
使当前环境变量配置立即生效。

3. hive配置
hive的配置文件保存在 /opt/hive-2.3.5/conf 目录中,首先进入该配置文件所在目录中:
cd /opt/hive-2.3.5/conf

修改 hive-env.sh 文件:在配置文件中没有hive-env.sh 文件,有一个 hive-env.sh.template 模板文件,将模板文件拷贝为 hive-env.shcp hive-env.sh.template hive-env.sh打开该配置文件:vim hive-env.sh在文件的末尾添加jdk、hadoop的路径:export JAVA_HOME=/opt/jdk1.8.0_11export HADOOP_HOME=/opt/hadoop-2.7.3保存退出。修改 hive-site.xml 文件:在配置文件目录中也没有 hive-site.xml,新建该文件:vim  hive-site.xml然后在该文件中添加如下所示的内容:<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!--指定MariaDB(mysql)数据库连接的驱动类、url、用户名、密码 --><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop:3306/hive?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>root</value></property><!--指定hive的默认工作空间:HDFS --><property><name>hive.metastore.warehouse.dir</name><value>hdfs://hadoop:9000/hive/warehouse</value></property></configuration>         保存退出。导入MySQL驱动包:将MySQL的驱动 8.x 导入hive的lib 目录中(保存hive运行时需要所有jar)

4. 初始化hive元数据库

schematool -dbType mysql -initSchema初始化成功之后,会显示:schemaTool completed如果初始化过程中,出现错误,主要去检查MySQL连接中的驱动类、url、用户名、密码和驱动包是否导入。

5. 启动、测试、暂停

因为hive会将hql语句转换为 mapreduce程序执行,此外在配置,将hive的默认工作空间配置到hdfs中,所以可以理解hive的运行需要hadoop的支持。所以在启动hive之前需要先启动hadoop(hdfs+YARN)start-all.sh         启动hadoophadoop启动成功之后,通过 hive  指令启动hive。hive>          表示hive启动成功,通过jps指令查询时,会出现一个runjar进程,这就是hive的进程(但是需要注意一点,runjar进程不表示一定就是hive进程)。此时就可以在命令行通过 hql 语句 进行操作了。测试:测试数据:在Linux的root目录下,新建stu.txt文件,文件内容如下:1,zs,12,902,ls,13,993,ww,14,894,zl,15,92现在hive中创建对应数据库:testhive> create database test;在test数据库下,创建对应的stu表:hive> use test;hive> create table stu(> id int,> name string,> age int,> score int)row format delimited fields terminated by ',';将stu.txt文件,导入到test数据库下的stu表中。hive> load data local inpath '/root/stu.txt' into table test.stu;Loading data to table test.stuOK查询当前表中又多少条记录:select count(1) from test.stu;该语句会触发mapreducec任务。

hive:对数据的处理相关推荐

  1. 从Hive导出数据到Oracle数据库--Sqoop

    首先解释一下各行代码: sqoop export # 指定要导入到Oracle的那张表(通常与hive中的表同名) --table TABLE_NAME # host_ip:导入oracle库所在的i ...

  2. hive导出数据到本地文件报错解决方法

    hive导出数据到本地文件报错解决方法 参考文章: (1)hive导出数据到本地文件报错解决方法 (2)https://www.cnblogs.com/yaopeiyun/p/12232251.htm ...

  3. Hive Cilent数据操作

    Hive Cilent数据操作 Hive运行命令方式有cli,jdbc.hwi.beeline.而我们经常使用的往往是cli shell 操作. cli shell hive -help hive - ...

  4. spark用scala读取hive表数据(不同版本区别)

    spark用scala读取hive表数据 spark1.6写法: val conf = new SparkConf()      val sc = new SparkContext(conf)     ...

  5. JDBC实现从Hive抽取数据导入Oracle

    环境:浙江移动华为云平台 云平台大数据采用了 Kerberos 认证. 开发历程: 1.在宁波大数据实验环境测试通过了JDBC实现从Hive抽取数据导入Oracle功能. 2.通过查看其它项目的数据库 ...

  6. sqoop导出数据单mysql_sqoop导出hive表数据到mysql

    直接在mysql里从本地文件系统导入数据 mysql>LOAD DATA LOCAL INFILE 'C:\\Users\\asys\\Documents\\Tencent Files\\131 ...

  7. hive 如果表不存在则创建_从零开始学习大数据系列(四十七) Hive中数据的加载与导出...

    [本文大约1400字,阅读时间5~10分钟] 在<从零开始学习大数据系列(三十八) Hive中的数据库和表>和<从零开始学习大数据系列(四十二)Hive中的分区>文章中,我们已 ...

  8. hive 如何将数组转成字符串_hive 将hive表数据查询出来转为json对象和json数组输出...

    1.将hive表数据查询出来转为json对象输出apache 一.将查询出来的数据转为一行一行,并指定分割符的数据json 二.使用UDF函数,将每一行数据做为string传入UDF函数中转换为jso ...

  9. sqoop从musql导入到hive中数据缺失

    sqoop从musql导入到hive中数据缺失 sqoop是大数据架构中常用的数据导入导出组件之一,只要简单的设置一些参数就可以将数据库的数据快速导入数据仓库中. 但在实际使用过程中,常常会碰到一些问 ...

  10. Hive 大数据表性能调优

    大数据应用程序开发人员在从 Hadoop 文件系统或 Hive 表读取数据时遇到了挑战. 合并作业(一种用于将小文件合并为大文件的技术)有助于提高读取 Hadoop 数据的性能. 通过合并,文件的数量 ...

最新文章

  1. 深度学习调参体验(一)
  2. MPB:微生物所王军组-​人类肠道病毒粒子富集及纳米孔测序
  3. 百度2016笔试题第一题:页面请求失败值
  4. 关于百度分享——bdCustomStyle一点bug
  5. Linux-wget/tar/ln 函数
  6. ABAP 生成ZIP压缩文件的代码
  7. SAP CRM Preprocessing显示没有可Archive的Product
  8. RabbitMQ简介和六种工作模式详解
  9. 【每日一题】7月1日题目精讲 借教室
  10. Linux共享文件夹中毒,linux服务器中毒利用Find查找病毒例子
  11. php域名墙检测,php 网站域名被墙判断请求方法
  12. PHP操作Memcache基本函数的方法
  13. Revit土建软件的功能,【顶部对齐】【墙齐梁板】【快速切换材质】等等
  14. 微信扫描自定义二维码关注公众号
  15. 开源框架Volley的使用《一》
  16. Runes——Dart
  17. 最新IP地理数据库(dat文件) --别花钱了
  18. it是什么?(详细解释)
  19. springboot整合redis,使用redisTemplate实现简易秒杀功能,使用jmeter压力测试秒杀接口
  20. CentOS7的Tiger VNC设置

热门文章

  1. nacos安装一闪而逝
  2. [树莓派]基于Python开发树莓派软件流程
  3. 九步教你笔记本开箱验机 联想拯救者安全下车
  4. 月薪 2 万到 3 万的测试员一天是怎样度过的?
  5. 前端ui框架layui——layer弹出层-弹出框方法
  6. 一天发十万封邮件方法_给老外发邮件,要注意这17点!
  7. 财经观察:“脱欧”不确定性持续拖累英国经济
  8. 【opencv-python 6】 获取RIO、泛洪填充
  9. Cron 表达式详解及最新版本使用
  10. (已更新)王者荣耀改名神器助手微信小程序源码下载