大数据学习第四天

发布于:2024-04-24 ⋅ 阅读:(20) ⋅ 点赞:(0)

yaml 三大组件的方式

resoureManger
负责进行资源分配
nodeManger
一台机器一个负责管理本地资源信息
这个俩个属于(node,resoure)物理层组件
applicatiMange
负责程序运行和监控
这个属于一个app 组件信息

交互流程


交互流程有点高级了,有点看不懂了

hive 使用

安装mysql(hadoop03主机)

查看mariabdb文件

rpm -qa|grep mariadb

卸载mariaba 文件

rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps

查看mariadb文件

rpm -qa|grep mariadb 

在这里插入图片描述

创建文件夹

mkdir -p /export/software/mysql

上传文件
到 /export/software/mysql/
在这里插入图片描述
执行安装

yum -y install libaio

解压文件


tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar

安装

rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm 

出现错误

在这里插入图片描述

解决方式

rpm -e mariadb-libs --nodeps

数据库初始化

  mysqld --initialize

更改属性组

 chown mysql:mysql /var/lib/mysql -R

启动mysql

  systemctl start mysqld.service

查看临时生成的密码


cat  /var/log/mysqld.log

在这里插入图片描述

临时密码

./%zZosea9T!

连接mysql

mysql -u root -p

更新密码

alter user user() identified by "hadoop";

授权

use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;
FLUSH PRIVILEGES; 

mysql 停止 启动 状态

 systemctl stop mysqld
  systemctl status mysqld
  systemctl start mysqld

开机启动

systemctl enable  mysqld

在这里插入图片描述

查看是否成功开机自启动

systemctl list-unit-files | grep mysqld

卸载mysql (hadoop02主机)

查看mysql文件

 rpm -qa | grep -i mysql

卸载mysql信息

yum remove mysql-community-libs-5.7.29-1.el7.x86_64 mysql-community-common-5.7.29-1.el7.x86_64 mysql-community-client-5.7.29-1.el7.x86_64 mysql-community-server-5.7.29-1.el7.x86_64

卸载mysql(hadoop01主机执行)

查询文件

find / -name mysql

删除mysql目录

 rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql

删除默认配置和日志

rm -rf /etc/my.cnf 
rm -rf /var/log/mysqld.log

安装hive

上传文件

在这里插入图片描述

解压

tar zxvf apache-hive-3.1.2-bin.tar.gz

解决版本差异

cd apache-hive-3.1.2-bin/
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

修改hive-env.sh

cd conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh
export HADOOP_HOME=/export/server/hadoop-3.3.0
export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib

修改 hive-site.xml

vim hive-site.xml

添加配置文件信息

<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
	<name>javax.jdo.option.ConnectionURL</name>
	<value>jdbc:mysql://hadoop03:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
</property>

<property>
	<name>javax.jdo.option.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>hadoop</value>
</property>

<!-- H2S运行绑定host -->
<property>
    <name>hive.server2.thrift.bind.host</name>
    <value>hadoop03</value>
</property>

<!-- 远程模式部署metastore metastore地址 -->
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://hadoop03:9083</value>
</property>

<!-- 关闭元数据存储授权  --> 
<property>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <value>false</value>
</property>
</configuration>

上传驱动包

在这里插入图片描述

初始化元数据

cd /export/software/apache-hive-3.1.2-bin/

bin/schematool -initSchema -dbType mysql -verbos

必须在这个目录下执行
在这里插入图片描述

在hdfs 创建hive 存储目录


hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse

我们可以创建一个shell脚步执行命令

启动hive的方式

前台启动的方式

/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore

cltr + c 可以退出前台启动的方式

前台启动开始dbug日志的方式

/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console  

后台启动的方式(推荐)

nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &

beelin 拷贝到node2中的

scp -r /export/server/apache-hive-3.1.2-bin/ hadoop02:/export/server/

刚在遇到了一个小问题

24/04/23 15:36:38 [main]: WARN jdbc.HiveConnection: Failed to connect to hadoop03:10000
Could not open connection to the HS2 server. Please check the server URI and if the URI is correct, then ask the administrator to check the server status.
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop03:10000: java.net.ConnectException: 拒绝连接 (Connection refused) (state=08S01,code=0)

查询到问题说没有启动hive服务的方式我们启动hive服务的方式我们进行测试一下

先杀死hive服务

jps - l -m

-l 输出具体名称
-m 输出具体pid
在这里插入图片描述

我们这里就可以找到hive pid重新启动hive的方式

kill -9 pid 

这俩必须都需要执行,因为hive在metasore才可以访问数据服务

nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &

远程连接hive

我们在hadoop03上做的方式把成功的hive拷贝到hadoop01上

scp -r /export/server/apache-hive-3.1.2-bin/ hadoop02:/export/server/

修改配置文件 core-site.xml

<property>
        <name>hadoop.proxyuser.root.hosts</name>
      <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
</property>

在这里插入图片描述
连接

/export/server/apache-hive-3.1.2-bin/bin/beeline
beeline> ! connect jdbc:hive2://hadoop03:10000
beeline> root
beeline> 直接回车

在这里插入图片描述

连接 hive

在这里插入图片描述

hive 默认存储路径

在这里插入图片描述