之前详细介绍了HDFS,原本想进到Mapreduce,但觉得Mapreduce基本上废料,因此直接进入了Hive中。
数据库管理,英文名字为Data Warehouse,可缩写为DW或DWH。数据库管理说白了,是一个非常大的数据储存结合,出自于公司的剖析性汇报和管理决策适用目地而建立,对多种多样的业务流程数据信息开展挑选与融合。
它为公司出示一定的BI(商务智能)工作能力,具体指导工作流程改善、监控時间、成本费、品质及其操纵。
数据库管理的键入方为各式各样的数据库,最后的輸出用以公司的数据统计分析、大数据挖掘、数据分析表等方位。
数据库查询是朝向买卖的解决系统软件,它是对于实际业务流程在数据库查询联网的日常实际操作,一般对纪录开展查看、改动。客户比较关注实际操作的响应速度、数据信息的安全系数、一致性和高并发适用的用户量等难题。
数据库管理一般对于一些主题风格的历史记录开展剖析,适用战略决策,又被称作联网剖析解决 OLAP(On-Line Analytical Processing)。
例如,支付宝钱包年度账单其实质是根据数据库管理开展大数据可视化而成。
数据库管理,是在数据库查询早已很多存有的状况下,为了更好地进一步发掘公共数据、为了更好地管理决策必须而造成的,它决不会是说白了的“大中型数据库查询”。
依照数据信息注入排出的全过程,数据库管理构架可分成三层——源数据信息(ODS)、数据库管理(DW)、数据信息运用(APP)。
Hive是一个搭建在 Hadoop上的数据库管理架构。最开始,Hive是由Facebook开发设计,之后转交由 Apache!手机软件慈善基金会开发设计,并做为一个 Apache开源软件。
Hive是创建在 Hadoop上的数据库管理基本架构。它出示了一系列的专用工具,能够储存、查看和剖析储存在分布式系统系统软件中的规模性数据。Hive界定了简易的类SQL査询语言表达,根据最底层的测算模块,将SQL变为实际的测算每日任务开展实行。
Hive适用Mapreduce、Tez、Spark等分布式计算模块。
在Hive自然环境构建不用配备群集,Hive的安裝实际上有两一部分构成,一个是Server端、一个是手机客户端,说白了服务器端实际上便是Hive管理方法Meta的那一个Hive,服务器端能够装在一切连接点上,能够是Namenode上还可以是Datanode的随意一个连接点上。
Hive的手机客户端页面专用工具初期挑选SQuirrel SQL Client,但近期我很喜欢到了Apache Zeppelin,Apache Zeppelin是一款根据Web的NoteBook,实际上和Juypyter Notebook没什么两种。
在 Hive自然环境构建,必须构建Mysql,这儿挑选连接点node02开展Mysql自然环境构建。
- [hadoop@node02 ~]$ cd module/
- [hadoop@node02 module]$ mkdir mysql
- [hadoop@node02 module]$ cd mysql/
- [hadoop@node02 mysql]# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
- [hadoop@node02 mysql]$ sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
- [hadoop@node02 yum.repos.d]$ yum install mysql-server
- [hadoop@node02 yum.repos.d]# #第一次登陆绕过管理权限验证
- [hadoop@node02 yum.repos.d]# sudo vim /etc/my.cnf
- ############
- [mysqld]
- # 加上下边一行
- skip-grant-tables
- [hadoop@node02 yum.repos.d]# sudo systemctl start mysqld
- [hadoop@node02 yum.repos.d]# mysql -u root
- mysql> flush privileges;
- Query OK, 0 rows affected (0.00 sec)
- mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
- Query OK, 0 rows affected (0.00 sec)
- mysql> create database hive;
- Query OK, 1 row affected (0.00 sec)
- mysql> exit;
- [hadoop@node02 yum.repos.d]# mysql -u root -p123456
- mysql> use mysql;
- # 设定远程桌面连接管理权限
- mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
- Query OK, 0 rows affected, 1 warning (0.00 sec)
- mysql> FLUSH PRIVILEGES;
- Query OK, 0 rows affected (0.00 sec)
下边逐渐在centos系统中安裝Hive。为了更好地兼具Hadoop3.1.4版本号,大家挑选安裝hive3.1.2版本号。Hive免费下载官方网:http://www.apache.org/dyn/closer.cgi/hive/
- [hadoop@node02 module]$ ls
- apache-hive-3.1.2-bin.tar.gz hadoop mysql
- [hadoop@node02 module]$ tar -zxvf apache-hive-3.1.2-bin.tar.gz
- [hadoop@node02 module]$ mv apache-hive-3.1.2-bin hive
- [hadoop@node02 module]$ ls
- apache-hive-3.1.2-bin.tar.gz hadoop hive mysql
- [hadoop@node02 conf]$ mv hive-env.sh.template hive-env.sh
- [hadoop@node02 conf]$ vim hive-env.sh
- #########
- export HADOOP_HOME=/home/hadoop/module/hadoop/hadoop-3.1.4
- export HIVE_CONF_DIR=/home/hadoop/module/hive/conf
- export HIVE_AUX_JARS_PATH=/home/hadoop/module/hive/lib
- [hadoop@node02 conf]$ sudo vim /etc/profile
- #########
- export HIVE_HOME=/home/hadoop/module/hive
- export PATH=$PATH:$HIVE_HOME/bin
- export HIVE_CONF_DIR=$HIVE_HOME/conf
- [hadoop@node02 conf]$ source /etc/profile
- [hadoop@node02 conf]$ mv hive-default.xml.template hive-site.xml
- [hadoop@node02 conf]$ vim hive-site.xml
- #########
- <property>
- <!--
- 相匹配的文件夹名称必须建立
- -->
- <name>hive.exec.local.scratchdir</name>
- <value>/home/hadoop/module/data/hive/jobs</value>
- </property>
- <property>
- <name>hive.downloaded.resources.dir</name>
- <value>/home/hadoop/module/data/hive/resources</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>javax.jdo.option.ConnectionURL</name>
- <value>jdbc:mysql://192.168.147.129:3306/hive?createDatabaseIfNotExsit=true</value>
- </property>
- <!-- MySQL5.7应用com.mysql.jdbc.Driver
- Mysql6版本号应用com.mysql.cj.jdbc.Driver
- -->
- <property>
- <name>javax.jdo.option.ConnectionDriverName</name>
- <value>com.mysql.jdbc.Driver</value>
- </property>
为了更好地应用Java联接Mysql,必须免费下载Mysql驱动器,下载链接:https://maven.ityuan.com/maven2/mysql/mysql-connector-java/5.1.33。
免费下载进行后并放到lib文件夹中,并根据hive复位Mysql数据库查询。
- [hadoop@node02 lib]$ pwd
- /home/hadoop/module/hive/lib
- [hadoop@node02 lib]$ wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.33/mysql-connector-java-5.1.33.jar
- [hadoop@node02 lib]$ schematool -dbType mysql -initSchema
在Hive复位Mysql数据库查询,非常容易碰到2个较为普遍的Bug:
第一个Hive复位Mysql数据库查询:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
不正确缘故:系统软件找不着这一类所属的jar包或是jar包的版本号不一样系统软件不清楚应用哪一个。hive运行出错的缘故是后面一种
解决方案:
第二个Hive复位Mysql数据库查询:Exception in thread "main" java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8 at
出错缘故:在自身的hive-site.xml环境变量中,3215行(见报错纪录第二行)有特殊符号
解决方案:进到hive-site.xml文件,自动跳转到相匹配行,删掉里边的特殊符号就可以。
假如报Unknown database 'hive',提议立即在MySQL中建立hive数据库查询。
最后Hive取得成功复位Mysql数据库查询如下图所显示:
查询hive数据库查询,便会看到相匹配复位的表转化成。
在键入hive,就可以进到Hivecmd,表明Hive构建取得成功。