当前位置: 首页 > news >正文

摄影网站设计代码wordpress 众筹中文

摄影网站设计代码,wordpress 众筹中文,太原网站优化,wordpress做h52.Hive下载与安装 2.1 三种安装方式的区别 Hive中metastore(元数据存储)的三种模式: a)内嵌Derby模式 b)直连数据库模式 c)远程服务器模式 2.1.1 内嵌Derby模式 此模式连接到一个In-memory 的数据库Derby,一般用于Unit Test&am…

2.Hive下载与安装

2.1 三种安装方式的区别

Hive中metastore(元数据存储)的三种模式:
a)内嵌Derby模式
b)直连数据库模式
c)远程服务器模式

2.1.1 内嵌Derby模式

在这里插入图片描述

此模式连接到一个In-memory 的数据库Derby,一般用于Unit Test(单元测试目前用的也少),一台服务器即可,基本不用。

2.1.2 直连数据库模式(mysql)

通过网络连接到一个数据库中。
在这里插入图片描述

2.1.3 远程服务模式

用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。起到了解耦的作用,如果更换其他数据库只需要修改MetaStoreServer即可。
在这里插入图片描述

2.2 官方文档介绍

2.2.1 下载地址

  1. Hive官网地址:http://hive.apache.org/

  2. 下载地址
    https://dlcdn.apache.org/hive/
    以下网址可以选择的版本更加全面:
    http://archive.apache.org/dist/hive/

  3. 文档查看地址
    https://cwiki.apache.org/confluence/display/Hive/GettingStarted

  4. github地址:https://github.com/apache/hive

2.2.2 官网阅读

在这里插入图片描述
Requirements
Java 1.7 Note: Hive versions 1.2 onward require Java 1.7 or newer. Hive versions 0.14 to 1.1 work with Java 1.6 as well. Users are strongly advised to start moving to Java 1.8 (see HIVE-8607).
Hadoop 2.x (preferred), 1.x (not supported by Hive 2.0.0 onward). Hive versions up to 0.13 also supported Hadoop 0.20.x, 0.23.x.
Hive is commonly used in production Linux and Windows environment. Mac is a commonly used development environment. The instructions in this document are applicable to Linux and Mac. Using it on Windows would require slightly different steps.
Installing Hive from a Stable Release (从稳定版本安装hive)

Start by downloading the most recent stable release of Hive from one of the Apache download mirrors (see Hive Releases).

Next you need to unpack the tarball. This will result in the creation of a subdirectory named hive-x.y.z (where x.y.z is the release number):

  $ tar -xzvf hive-x.y.z.tar.gz

Set the environment variable HIVE_HOME to point to the installation directory:

  $ cd hive-x.y.z$ export HIVE_HOME={{pwd}}

Finally, add $HIVE_HOME/bin to your PATH:

  $ export PATH=$HIVE_HOME/bin:$PATH

Building Hive from Source(源码安装 了解)

The Hive GIT repository for the most recent Hive code is located here: git clone https://git-wip-us.apache.org/repos/asf/hive.git (the master branch).

All release versions are in branches named “branch-0.#” or “branch-1.#” or the upcoming “branch-2.#”, with the exception of release 0.8.1 which is in “branch-0.8-r2”. Any branches with other names are feature branches for works-in-progress. See Understanding Hive Branches for details.
在这里插入图片描述
在这里插入图片描述
默认情况下Metadata(元数据存储)在嵌入式Derby数据库中,其磁盘存储位置由名为javax.jdo.option.Connectionurl的hive配置变量决定。默认情况下,此位置为./metastore_db(参见conf/hive-default.xml)。在嵌入式模式下使用Derby最多一次允许一个用户。若要将Derby配置为在服务器模式下运行,请参见服务器模式下使用Derby的Hive。若要为Hive元存储配置除Derby以外的数据库,请参见Hive Metastore Administration。
在这里插入图片描述

2.3 虚拟机安装MySQL教程(node1上配置)

当前hive对关系型数据库版本要求如下
在这里插入图片描述

  1. 将mysql的五个rpm包上传到/opt/apps目录
    在这里插入图片描述
  2. 检查当前节点上是否存在mysql安装包,存在则删除:
[root@localhost apps]# rpm -qa | grep mysql # 检查是否存在mysql
[root@localhost apps]# rpm -qa | grep mariadb-libs # 检查是否存在这个包
mariadb-libs-5.5.68-1.el7.x86_64
[root@node1 apps]# rpm -e --nodeps mariadb-libs
#如果不处理 mariadb-libs,后续安装的时候会出现如下错误提示:
错误:依赖检测失败:mariadb-libs 被 mysql-community-libs-5.7.28-1.el7.x86_64 取代mariadb-libs 被 mysql-community-libs-compat-5.7.28-1.el7.x86_64 取代
#找到的mysql相关的包都删除 *号指代实际包名, 请实际情况输入完整包名
#rpm -e --nodeps mysql-community-libs-*
#rpm -e --nodeps mysql-community-server-*
#rpm -e --nodeps mysql-community-common-*
#rpm -e --nodeps mysql-community-client-*
#rpm -e --nodeps mysql-community-libs-compat-*
  1. 检查并删除老版本mysql的开发头文件和库
[root@localhost apps]# find -iname 'mysql*'
./mysql-community-server-5.7.28-1.el7.x86_64.rpm
./mysql-community-libs-5.7.28-1.el7.x86_64.rpm
./mysql-community-client-5.7.28-1.el7.x86_64.rpm
./mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
./mysql-community-common-5.7.28-1.el7.x86_64.rpm

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

  1. 安装依赖包:net-tools libaio
yum install -y net-tools libaio
  1. 安装mysql
rpm -ivh mysql-community-*
  1. 修改/etc/my.cnf文件,设置数据库的编码方式:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8

在这里插入图片描述
在最后一行种,mysqld就是保存密码的文件;倒数第二行是错误日志

  1. 初始化数据库
[root@localhost apps]# mysqld --initialize --user=mysql
  1. 找到随机密码:

在/var/log/mysqld.log中有一行:
A temporary password is generated for root@localhost,后面就是随机密码
mysql -uroot -p"yAe7QGVJ;HlR"使用随机密码登录系统
在这里插入图片描述

  1. 启动mysql服务:
 systemctl start mysqld
  1. 登录mysql数据库:
[root@node1 apps]# mysql -uroot -p
Enter password: 输入临时密码
  1. 修改默认密码
mysql> set password for 'root'@'localhost'=password('123456');
  1. 查看编码方式:
mysql> show variables like '%character%';

在这里插入图片描述

  1. 给root设置远程登录权限(处理只能在本机使用,不可以远程使用mysql)
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql> exit
Bye
[root@node1 apps]# mysql -uroot -p123456

在这里插入图片描述

2.4 直连数据库(MySQL)模式安装(node2)

  1. 把apache-hive-3.1.2-bin.tar.gz上传到node2的/opt/apps目录下
    在这里插入图片描述
  2. 解压apache-hive-3.1.2-bin.tar.gz到/opt/module/目录下面
[root@node2 apps]# tar -zxvf /opt/apps/apache-hive-3.1.2-bin.tar.gz -C /opt/
  1. 修改apache-hive-3.1.2-bin.tar.gz的名称为hive-3.1.2
[root@node2 apps]# mv /opt/apache-hive-3.1.2-bin/ /opt/hive-3.1.2
  1. 修改/etc/profile,添加环境变量
[root@node2 apps]# vim /etc/profile
#添加内容
# hive环境变量配置
exprot HIVE_HOME=/opt/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin#使环境变量生效
[root@node2 hive-3.1.2]# source /etc/profile

在这里插入图片描述

  1. 解决日志Jar包冲突
[root@localhost lib]# pwd
/opt/hive-3.1.2/lib
[root@localhost lib]# mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.bak_up2021
  1. 将MySQL的JDBC驱动拷贝到Hive的lib目录下
[root@node2 apps]# cp /opt/apps/mysql-connector-java-5.1.48.jar $HIVE_HOME/lib
[root@localhost conf]# pwd
/opt/hive-3.1.2/conf
[root@localhost conf]# cp hive-default.xml.template hive-site.xml
  1. 配置Metastore到MySql
    修改hive-site.xml
[root@localhost conf]# vim hive-site.xml

全部删除后,复制如下内容

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- jdbc连接的URL设置 --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://node1:3306/hive?useSSL=false</value></property><!-- jdbc连接的Driver类设置--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><!-- 指定jdbc连接的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- 指定jdbc连接mysql的password --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- Hive默认在HDFS的工作目录 --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><!-- Hive元数据存储的验证 --><property><name>hive.metastore.schema.verification</name><value>false</value></property><!-- 元数据存储授权  --><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property>
</configuration>

linux配置文件格式化内容
首先,进入到ESC命令模式,光标放到左边,ctrl+V,选中ctrl划到最后一行。按shift+:,输入xmllint -format -然后按回车

  1. node1上mysql数据库中创建数据库实例hive、
[root@localhost apps]# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.28 MySQL Community Server (GPL)Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database hive;
Query OK, 1 row affected (0.05 sec)mysql> use hive
Database changed
mysql> show tables;
Empty set (0.00 sec)mysql> quit
Bye
  1. node2上初始化hive的元数据到mysql数据库的hive实例下
[root@node2 conf]# schematool -initSchema -dbType mysql -verbose

在node1的mysql数据库中查看hive实例下表,会发现多了74张表。

2.5 直连数据库式启动和使用

  1. 启动hadoop集群,在node1上执行startha.sh(参考HDFS专栏中有源码),如果有namenode没有启动起来,只需要在对应的节点上执行命令:
    hdfs --daemon start namenode

  2. 在node2上启动hive:

[root@node2 ~]# hive
  1. 使用hive,创建表:node2
hive> show databases;
OK
default
Time taken: 0.923 seconds, Fetched: 1 row(s)
hive> show tables;
OK
Time taken: 0.081 seconds
hive> create table tb_test(id int);
OK
Time taken: 1.001 seconds
hive> show tables;
OK
tb_test
Time taken: 0.087 seconds, Fetched: 1 row(s)
hive> create table test(id int,age int);
OK
Time taken: 0.123 seconds
hive> show tables;
OK
tb_test
test
  1. 访问active的namenode,查看文件列表

http://node2:9870/explorer.html#/user/hive/warehouse
在这里插入图片描述

  1. 表在hdfs也有对应的目录,但是目录下没有数据。

  2. 向test表插入数据(超级慢)

hive> insert into test values(1,1);
Query ID = root_20211108214257_de79649c-530d-4420-9236-d8514d3d8928
Total jobs = 3
Launching Job 1 out of 3
Number of reduce tasks determined at compile time: 1

当任务执行完之后,再查看HDFS的文件列表页面,在test目录下多出文件。
在这里插入图片描述

在这里插入图片描述

  1. 在node1中连接上mysql查看表中的数据
[root@node1 ~]# mysql -uroot -p123456
mysql> show tables;
+-------------------------------+
| Tables_in_hive                |
+-------------------------------+
| COLUMNS_V2           |  保存表中列的数据
......
| DBS              | 保存的是数据库实例
......
| TBLS              | 保存的表数据
+-------------------------------+
74 rows in set (0.00 sec)
......
  1. 查看DBS表中的数据:
mysql> select * from DBS;
+-------+-----------------------+--------------------------------------+---------+------------+------------+-----------+
| DB_ID | DESC                  | DB_LOCATION_URI                      | NAME    | OWNER_NAME | OWNER_TYPE | CTLG_NAME |
+-------+-----------------------+--------------------------------------+---------+------------+------------+-----------+
|     1 | Default Hive database | hdfs://mycluster/user/hive/warehouse | default | public     | ROLE       | hive      |
+-------+-----------------------+--------------------------------------+---------+------------+------------+-----------+
1 row in set (0.00 sec)
  1. 查看TBLS表中数据:
mysql> select * from TBLS;
+--------+-------------+-------+------------------+-------+------------+-----------+-------+----------+---------------+--------------------+--------------------+--------------------+
| TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | OWNER_TYPE | RETENTION | SD_ID | TBL_NAME | TBL_TYPE      | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT | IS_REWRITE_ENABLED |
+--------+-------------+-------+------------------+-------+------------+-----------+-------+----------+---------------+--------------------+--------------------+--------------------+
|      1 |  1681218331 |     1 |                0 | root  | USER       |         0 |     1 | tb_test  | MANAGED_TABLE | NULL               | NULL               |                    |
|      2 |  1681218351 |     1 |                0 | root  | USER       |         0 |     2 | test     | MANAGED_TABLE | NULL               | NULL               |                    |
+--------+-------------+-------+------------------+-------+------------+-----------+-------+----------+---------------+--------------------+--------------------+--------------------+
2 rows in set (0.00 sec)
  1. 查看表 COLUMNS_V2中的数据:
mysql> select * from  COLUMNS_V2;
#表id    描述    列名      类型      顺序
+-------+---------+-------------+-----------+-------------+
| CD_ID | COMMENT | COLUMN_NAME | TYPE_NAME | INTEGER_IDX |
+-------+---------+-------------+-----------+-------------+
|   1 | NULL   | id      | int    |      0 |
|   2 | NULL   | age     | int    |      1 |
|   2 | NULL   | id      | int    |      0 |
+-------+---------+-------------+-----------+-------------+
  1. 在node2上hive中查看表中的数据:
    我们把hive的客户端和服务器放在一台虚拟机
hive> select * from tb_test;
OK
Time taken: 0.443 seconds
hive> select * from test;
OK
1   1
Time taken: 0.281 seconds, Fetched: 1 row(s)

注意:目前的这种配置方式,是将hive的服务器端和客户端放在一台服务器上(node2)。如果想通过jdbc程序访问该hive是没有办法的,这是因为hive没有开启hiveserver2服务。

2.6 远程服务器模式安装

思考:hive是如何连接到hdfs的?

答案:通过环境变量。

规划:node3为服务器端 node4为客户端

具体安装配置步骤:

  1. 从node2上将/opt/hive-3.1.2拷贝到node3和node4上
[root@node2 ~]# scp -r /opt/hive-3.1.2/ node3:/opt
[root@node2 ~]# scp -r /opt/hive-3.1.2/ node4:/opt
  1. 修改node3上的hive_site.xml文件
[root@node3 conf]# pwd
/opt/hive-3.1.2/conf
[root@node3 conf]# vim hive-site.xml 
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- jdbc连接的URL设置 将hive改为hive_remote--><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://node1:3306/hive_remote?useSSL=false</value></property><!-- jdbc连接的Driver类设置--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><!-- 指定jdbc连接的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- 指定jdbc连接mysql的password --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- Hive默认在HDFS的工作目录 将hive改为hive_remote --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive_remote/warehouse</value></property><!-- Hive元数据存储的验证 --><property><name>hive.metastore.schema.verification</name><value>false</value></property><!-- 元数据存储授权  --><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property>
</configuration>
  1. 配置node3上hive的环境变量:
[root@node3 conf]# vim /etc/profile
#在文件的最下位置添加如下内容
# hive环境变量配置
export HIVE_HOME=/opt/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
[root@node3 conf]# source /etc/profile
  1. 配置node3上hive的环境变量:
[root@node4 conf]# vim /etc/profile
#在文件的最下位置添加如下内容
# hive环境变量配置
export HIVE_HOME=/opt/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
[root@node3 conf]# source /etc/profile
  1. 在node1的mysql中创建一个数据库实例:hive_remote
[root@node1 ~]# mysql -uroot -p123456
mysql> create database hive_remote;
Query OK, 1 row affected (0.00 sec)
mysql> use hive_remote;
Database changed
mysql> show tables;
Empty set (0.00 sec) # 神马表都没有,根本没有hive的元数据
mysql> quit;
Bye
  1. 在node3上初始化hive的元数据到mysql数据库的hive_remote实例下
我们在配置文件中配置过路径
[root@node3 conf]# schematool -initSchema -dbType mysql -verbose
  1. 在node1的mysql数据库中查看hive_remote实例下表,会发现多了74张表。到目前位置这个和直连数据的方式是一样,hive的服务器和客户端都在node3上,没有启动Metastore或hiveserver2,通过jdbc也无法访问。
  2. 在node3上查看被占用的端口号:
[root@node3 conf]# netstat -nlpt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address      Foreign Address     State    PID/Program name  
tcp    0   0 0.0.0.0:8042      0.0.0.0:*        LISTEN   15641/java     

经过观察发现9083端口没有被占用。

  1. 在node3上启动metastore服务
[root@node3 ~]# hive --service metastore
2021-11-08 22:43:50: Starting Hive Metastore Server

该命令为阻塞命令,如上所示执行命令后无法继续输入命令了。

  1. 复制一个node3连接的窗口
[root@node3 ~]# netstat -nlpt    
tcp6    0    0 :::9083         :::*           LISTEN    22358/java 
  1. 如果在9步骤不需要窗口的命令被阻塞,也可以通过如下方式:
[root@node3 ~]# hive --service metastore &
[1] 23017
[root@node3 ~]# 2021-11-08 22:50:08: Starting Hive Metastore Server
# 查看是否有hive的服务进程
[root@node3 ~]# ps aux|grep hive
root   23017 126 15.8 1986692 157732 pts/0  Sl  22:50  0:16 /usr/java/default/bin/java -Dproc_jar -Dproc_metastore -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/opt/hive-3.1.2/conf/parquet-logging.properties -Dyarn.log.dir=/opt/hadoop-3.1.3/logs -Dyarn.log.file=hadoop.log -Dyarn.home.dir=/opt/hadoop-3.1.3 -Dyarn.root.logger=INFO,console -Djava.library.path=/opt/hadoop-3.1.3/lib/native -Xmx256m -Dhadoop.log.dir=/opt/hadoop-3.1.3/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/opt/hadoop-3.1.3 -Dhadoop.id.str=root -Dhadoop.root.logger=INFO,console -Dhadoop.policy.file=hadoop-policy.xml -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /opt/hive-3.1.2/lib/hive-metastore-3.1.2.jar org.apache.hadoop.hive.metastore.HiveMetaStore

这样操作的话,步骤10就不再需要新复制一个xshell连接窗口了。

  1. 修改node4上的hive-site.xml配置文件:
[root@node4 ~]# cd /opt/hive-3.1.2/conf/
[root@node4 conf]# vim hive-site.xml 
  1. node4上hive客户端启动hive:
[root@node4 conf]# hive
hive>

2.7 远程服务器模式测试

在node4上建表之前查看hdfs文件列表
在这里插入图片描述
在node4上hive客户端上创建表psn

hive> create table psn(id int,age int);
OK
Time taken: 4.147 seconds

建表后,再次查看hdfs文件列表
在这里插入图片描述
在这里插入图片描述
在未添加数据之前,psn目录没有文件:
在这里插入图片描述
向hive中的psn表添加一条数据:

hive> insert into psn values(1,18);
Query ID = root_20211108232041_de210fde-034f-4282-99ee-7185a8bd4ce3
Total jobs = 3
Launching Job 1 out of 3

在这里插入图片描述
查看yarn的web页面:
在这里插入图片描述
通过hdfs命令查看该文件下的内容:(任意一台虚拟机都可以)

[root@node3 conf]# hdfs dfs -cat /user/hive_remote/warehouse/psn/000000_0
2023-04-13 00:41:15,696 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
118
[root@node3 conf]# hdfs dfs -get /user/hive_remote/warehouse/psn/000000_0
2023-04-13 00:41:44,030 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
[root@node3 conf]# cat -A 000000_0
1^A18$

^A 它是hive的默认分隔符

http://www.yayakq.cn/news/459762/

相关文章:

  • 网站定制 动易深圳品牌策划公司排行
  • 个人建设电影网站备案介绍旅游美食的网站模板免费下载
  • 郑州五合一网站建设统计网络网站建设的目的
  • 我想自己做的知道网站青岛快速建站模板
  • 2019做什么类型网站软件开发网站模板
  • wordpress建英文网站h5开发用什么工具
  • 专业制作网站公司吗改变网站的域名空间
  • 怎么做网站底部备案号flask网站开发
  • 专门做甜点的视频网站网站建设推广ppt模板
  • 水产养殖畜禽饲料类网站前端模板环保网站建设维护情况报告
  • 建的网站经常打不开菠菜源码怎么做网站
  • 山东淄博网站建设的公司二手车 东莞网站建设
  • 深圳 网站 传播企业网站建设设置那些栏目
  • 油金地 做网站wordpress小程序改造
  • 淘宝优惠劵网站怎么做触屏网站
  • 营销型网站的基础建设关键词指数查询工具
  • 清远做网站的有哪些电商平台门户网站建设的重要性
  • 服装企业官方网站专业网站建设模块维护
  • 网站开发思维导图郑州地方网络推广网站
  • 广州网站运营专业乐云seo公司网站内容模块布局
  • 电商网站开发与运营无锡通告最新
  • 美容加盟的网站建设十大博客网站
  • 网站主题栏目分类企业门户网站主要功能
  • 北京网站建设 和君做电影网站如何推广方案
  • 深圳网站建设 营销网店代运营费用
  • 网站开发服务器知识定制网络接口报警灯生产厂商
  • 响应式网站效果图做多大的广东工厂搜索seo
  • 打开网址跳转到国外网站wordpress 主题位置
  • 物流行业网站建设可信赖的邵阳网站建设
  • 回忆网站模板网站群建设