网站推广的名词解释,c做的网站,wordpress添加友情练级,wordpress网关充值1 hive介绍
由Facebook开源的,用于解决海量结构化日志的数据统计的项目
本质上是将HQL转化为MapReduce、Tez、Spark等程序
Hive表的数据是HDFS上的目录和文件
Hive元数据 metastore#xff0c;包含Hive表的数据库、表名、列、分区、表类型、表所在目录等。
根据Hive部署模…1 hive介绍
由Facebook开源的,用于解决海量结构化日志的数据统计的项目
本质上是将HQL转化为MapReduce、Tez、Spark等程序
Hive表的数据是HDFS上的目录和文件
Hive元数据 metastore包含Hive表的数据库、表名、列、分区、表类型、表所在目录等。
根据Hive部署模式(嵌入、本地、远程)的不同元数据存储的位置也不同一般是远程方式多用户访问元数据存储MySQL中。
用户通过客户端CLI、JDBC/ODBC) 向Hive提交SQL语句执行任务大致会做如下操作:
提交SQL给Driver将SQL转换为抽象语法树(AST)使用Hive的元数据进行校验将抽象语法树转换为逻辑计划将逻辑计划转换为物理计划执行物理计划返回结果给客户端
2 CentOS安装MySQL 存储Hive元数据
MySQL部署在bd-centos01节点
添加mysql的yum源
下载mysql源安装包MySQL官网的YUM源地址(http://dev.mysql.com/downloads/repo/yum/
# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm安装mysql源
# yum localinstall mysql57-community-release-el7-8.noarch.rpm检查mysql源是否安装成功
# yum repolist all | grep mysql安装、启动mysql服务
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# yum -y install mysql-community-server
# systemctl start mysqld
# systemctl enable mysqld修改root本地登录密码
获取临时密码
$ grep temporary password /var/log/mysqld.log
2019-06-17T08:07:04.775619Z 1 [Note] A temporary password is generated for rootlocalhost: 6?qrG;ClOP7A登录
$ mysql -u root -p修改密码
mysql set password password(密码);*5.5版本要求密码字母大小写、数字、特殊字符*mysql set global validate_password_policy0;
Query OK, 0 rows affected (0.00 sec)mysql alter user rootlocalhost identified by 密码;
Query OK, 0 rows affected (0.00 sec)添加远程登录用户
mysql grant all privileges on *.* to hadoop% identified by 密码 with grant option;
mysql flush privileges;
mysql quit;3 hive环境搭建
先安装启动hadoop
参考 Hadoop环境安装
安装
$ tar -zxf hive-3.1.3.tar.gz -C /opt/modules/
$ mv /opt/modules/apache-hive-3.1.3-bin/ /opt/modules/hive-3.1.3配置 配置hive-site.xml $ cd /opt/modules/hive-3.1.3/
$ vi conf/hive-site.xml
添加如下内容
?xml version1.0 encodingUTF-8 standaloneno?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl?
configurationpropertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://bd-centos01:3306/metastore?createDatabaseIfNotExisttrueamp;useSSLfalseamp;useUnicodetrueamp;characterEncodingUTF-8/value/propertypropertynamejavax.jdo.option.ConnectionDriverName/namevaluecom.mysql.jdbc.Driver/value/propertypropertynamejavax.jdo.option.ConnectionUserName/namevaluehadoop/value/propertypropertynamejavax.jdo.option.ConnectionPassword/namevaluemysql中添加的hadoop用户的密码/value/propertypropertynamehive.metastore.warehouse.dir/namevalue/user/hive/warehouse/value/propertyproperty namehive.cli.print.header/namevaluetrue/value/propertypropertynamehive.cli.print.current.db/namevaluetrue/value/property
/configuration配置 hive-log4j.properties $ cp conf/hive-log4j2.properties.template conf/hive-log4j2.properties
$ vi conf/hive-log4j2.propertie
修改为
property.hive.log.dir /opt/modules/hive-3.1.3/${sys:user.name}配置hive-env.sh $ cp conf/hive-env.sh.template conf/hive-env.sh
$ vi conf/hive-env.sh
修改为
HADOOP_HOME/opt/modules/hadoop-3.3.4
export HIVE_CONF_DIR/opt/modules/hive-3.1.3/conf添加mysql驱动 $ mv ~/software/mysql-connector-java-5.1.46.jar /opt/modules/hive-3.1.3/lib/初始化metadata
$ bin/schematool -initSchema -dbType mysql -verbose通过本地客户端访问
$ bin/hive
hive (default)show databases;4 开启hiveserver2服务
自己本地验证的集群可以配置
hiveserver2依赖Hadoop提供的 代理用户功能, 可以允许多个用户远程连接访问(beelinejdbc等)
修改配置文件 修改${HADOOP_HOME}/core-site.xml 注意配置分发到所有节点 propertynamehadoop.proxyuser.hadoop.hosts/namevalue*/value
/propertypropertynamehadoop.proxyuser.hadoop.groups/namevalue*/value
/propertypropertynamehadoop.proxyuser.hadoop.users/namevalue*/value
/property修改${HIVE_HOME}/hive-site.xml propertynamehive.server2.thrift.bind.host/namevaluebd-centos01/value
/propertypropertynamehive.server2.thrift.port/namevalue10000/value
/property加载hadoop配置 在${HADOOP_HOME}下执行
$ bin/hdfs dfsadmin -refreshSuperUserGroupsConfiguration
$ bin/yarn rmadmin -refreshSuperUserGroupsConfiguration启动hiveserver2服务 $ bin/hive --service hiveserver2连接 可通过jdbc、beeline等方式连接 $ bin/beeline -u jdbc:hive2://bd-centos01:10000 -n hadoop5 metastore服务
Hive的元数据服务为Hive CLI、Hiveserver2提供元数据访问。Hive的3种运行模式: 嵌入模式、本地模式元数据服务都嵌入Hive服务中不需要额外启动上面的配置meatastore是本地模式。生产一般是远程模式将metastore服务独立启动。根据hive.metastore.uris 参数值来判断如果不为空则为远程模式需要额外启动元数据服务。
自己本地验证的集群可以配置
下面是 metastore远程模式的配置 修改配置${HIVE_HOME}/hive-site.xml propertynamehive.metastore.uris/namevaluethrift://bd-centos01:9083/value
/property启动metastore服务 后续必须启动该服务才能访问hive $ bin/hive --service metastorebeeline远程连接输入密码 $ beeline -u jdbc:hive2://bd-centos01:10000 -n hadoop -p