Hiveの展開
MySQLのインストールと構成
My SQLはHiveのメタデータ(テーブル構造、データベース情報など)を格納するために使用され、インストール、権限設定、Hive 専用データベースの作成が必要です。
環境の準備と設置
/optディレクトリに切り替えて、mysqlフォルダを作成
cd /opt
sudo mkdir mysql
Ubuntuソフトウェアソースの更新
sudo apt update
MySQL 8.0サーバーのインストールすべての依存関係を自動的に処理
sudo apt install -y mysql-server
インストールが完了したら、サービスの状態を確認しますActive active runningは起動が成功したことを示します
sudo systemctl status mysql
! [] httr2.hoshi.z_img/画像 46.png
MySQLへのログイン
rootユーザーとしてMy SQLにログインする(sudoは権限を確保し、初回ログインではEnterキーを押してパスワード入力をスキップ)
sudo mysql -u root -p
PS:ここではMy SQLに置き換えられます。 パスワードが間違っている場合は、Debian 一時パスワードを確認する
cat /etc/mysql/debian.cnf
一時アカウントでログインします(ファイルの[client]のpasswordフィールドを入力します)。
sudo mysql -u debian-sys-maint -p
パスワードの変更パーミッションの追加
rootの初期パスワードを直接変更する
alter user 'root'@'localhost' identified by 'root123456';
リフレッシュ権限の有効化
flush privileges;
Hiveメタデータストアデータベースの作成
Hiveメタデータベースの作成文字セットはlatin1にされ、Hiveメタデータストア形式と性
create database hive character set latin1;
リモートアクセスユーザーの作成(%はすべてのIP 接続を、プラグインはHiveと准拠)
create user 'hive'@'%' identified with mysql_native_password by 'hive123456';
Hiveデータベースに対するすべての権限をユーザーに付与します(他のユーザーに権限を付与する権限を含む)
grant all privileges on hive.* to 'hive'@'%' with grant option;
Hiveローカルアクセスユーザーの作成(ネイティブアクセスのみ、セキュリティ強化)
create user 'hive'@'localhost' identified with mysql_native_password by 'hive123456';
ローカル権限の付与
grant all privileges on hive.* to 'hive'@'localhost' with grant option;
権限のリフレッシュ
flush privileges;
権限の認証
show grants for 'hive'@'%';
ユーザ情報の認証パスワードはauthentication_stringフィールドに格納されます
use mysql;
select host, user, authentication_string as password from user where user = 'hive';
実行が完了したら、exitと入力してMySQLコマンドラインを終了します。
Hiveのインストール
この記事では、Hiveバージョン4.0.1(Hadoop 3.4.0 用)を選択し、ダウンロード、解凍、環境変数の設定を完了する必要があります。
Hiveインストールパッケージのダウンロードと解凍
圧縮パッケージのステージングディレクトリへの切り替え
cd /export/software
Huawei 社のイメージソースからHive 4.0.1 圧縮パッケージをダウンロードする(より速く、公式ソースのタイムアウトを回避)
wget -P /export/software/ https://repo.huaweicloud.com/apache/hive/hive-4.0.1/apache-hive-4.0.1-bin.tar.gz
圧縮パックの解凍
tar -zxvf /export/software/apache-hive-4.0.1-bin.tar.gz -C /export/servers/
解凍ディレクトリの名前を変更する(以降のパス構成を簡素化する。直接 hiveにすることもできるが、後で変更する必要がある)
mv /export/servers/apache-hive-4.0.1-bin /export/servers/hive-4.0.1
解凍に失敗した場合(ファイルが破損している場合)、wgetコマンドを再実行してパッケージをダウンロードします(ダウンロード中にネットワークが中断してファイルが不完全になる可能性があります)。
Hiveの環境変数の設定
システム環境変数にHiveパスを追加して、hiveコマンドをグローバルに呼び出すことができます。
ユーザー変数プロファイルの集
sudo vi /etc/profile
ファイルの最後に次の構成を追加します(パスは実際のHiveインストールディレクトリと一致します)
export HIVE_HOME=/export/servers/hive-4.0.1
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HCAT_HOME=$HIVE_HOME/hcatalog
export PATH=$HIVE_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HIVE_HOME/lib/*:$HIVE_CONF_DIR
保存して終了
環境変数の構成を有効にする
source /etc/profile
構成の検証実行後にHiveのインストールディレクトリが表示され、構成が成功したことが示されます
echo $HIVE_HOME
Hiveの基本構成
Hive 構成ファイルの変更、My SQLメタデータベース、Hadoopクラスタの関連付け、一時ディレクトリの構成などが必要です。 まずは権限を与える。
sudo chown -R hadooper:hadooper /export/servers/hive-4.0.1/
hive-env.shの構成 Hadoopパスの関連づけ
Hive Configurationディレクトリへの切り替え
cd /export/servers/hive-4.0.1/conf
テンプレートファイルを正式なプロファイルとしてコピーするHiveはデフォルトでテンプレートを提供し、名前変更後に変更する必要があります
sudo cp /export/servers/hive-4.0.1/conf/hive-env.sh.template /export/servers/hive-4.0.1/conf /hive-env.sh
設定ファイルの編集
sudo vi /export/servers/hive-4.0.1/conf/hive-env.sh
48 行目(またはHADOOP_HOME)を探し、Hadoopのインストールパスを追加します(実際のHadoopディレクトリと一致します)
HADOOP_HOME=/export/servers/hadoop
! [] httr2.hoshi.z_img/画像 47.png
保存して終了するEscキーを押して\wqのリターンを入力
hive-site.xmlの構成(コア構成ファイル)
My SQL 接続情報、HDFSストレージパス、一時ディレクトリなどを構成するためのファイルで、手動で作成して以下を追加します。
hive-site.xmlファイルを作成および編集する
sudo vi /export/servers/hive-4.0.1/conf/hive-site.xml
以下の構成をコピーする
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 1. MySQL 元数据库连接 URL(指定数据库、端口,不存在则自动创建) --> <property>
<name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true</value>
</property>
<!-- 2. MySQL JDBC 驱动类名(MySQL 8.0+ 用 com.mysql.cj.jdbc.Driver) --> <property>
<name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value>
</property>
<!-- 3. 连接 MySQL 的用户名(前文创建的 hive 用户) -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<!-- 4. 连接 MySQL 的密码(前文设置的 hive123456) -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive123456</value> </property>
<!-- 5. Hive 数据仓库在 HDFS 中的存储路径 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://mycluster/user/hive/warehouse</value>
</property>
<!-- 6. HBase 快照恢复临时目录(默认 /tmp) -->
<property>
<name>hive.hbase.snapshot.restoredir</name>
<value>/tmp</value> </property>
<!-- 7. Java 临时目录(Hive 运行时临时文件存储) -->
<property>
<name>system:java.io.tmpdir</name>
<value>/tmp/hive/iotmp</value>
</property>
<!-- 8. Hive 运行用户(与前文 MySQL 授权用户一致) -->
<property>
<name>system:user.name</name>
<value>hive</value>
</property>
<!-- 9. Hive 本地临时目录(基于 Java 临时目录和用户名) -->
<property>
<name>hive.exec.local.scratchdir</name> <value>${system:java.io.tmpdir}/${system:user.name}</value>
</property>
<!-- 10. 下载资源临时目录(会话级资源存储) -->
<property>
<name>hive.downloaded.resources.dir</name> <value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>false</value>
<description>关闭用户模拟,HiveServer2直接以自身运行用户(hadooper)执行操作</description>
</property>
<!-- 确保权限校验相关配置匹配 -->
<property>
<name>hive.security.authorization.enabled</name>
<value>false</value>
</property>
<property>
<name>hive.server2.authentication</name>
<value>NONE</value>
</property>
</configuration>! [] httr2.hoshi.z_img/画像 48.png
重要な注意:ConnectionURLにuseSSL=false(SSL 接続を閉じ、警告を回避)、serverTimezone=UTC(タイムスタンプ例外を回避)、allowPublicKeyRetrieval=true(My SQL 公開鍵を取得し、接続障害を解決)を追加します。
ログファイルの構成オプション、ログ出力の最適化
Hiveには、公式文書としてコピーするログ構成テンプレートがあります。 Hive Configurationディレクトリへの切り替え
cd /export/servers/hive-4.0.1/conf
レプリケーション·ログ構成テンプレートを公式ファイルとして使用
sudo cp /export/servers/hive-4.0.1/conf/hive-log4j2.properties.template /export/servers/hive-4.0.1/conf/hive-log4j2.properties
sudo cp /export/servers/hive-4.0.1/conf/hive-exec-log4j2.properties.template /export/servers/hive-4.0.1/conf/hive-exec-log4j2.properties
ログストレージのパスとログレベルを変更するには、両方のファイルを編集します(デフォルトのログは/tmp/hiveディレクトリに保存されます)。
Hadoopに接続してください
Hadoopファイルをhiveにコピーする
sudo cp /export/servers/hadoop/etc/hadoop/core-site.xml /export/servers/hive-4.0.1/conf/
sudo cp /export/servers/hadoop/etc/hadoop/hdfs-site.xml /export/servers/hive-4.0.1/conf/
データベースファイルの作成
hdfs dfs -mkdir -p /user/hive
hdfs dfs -mkdir -p /user/hive/warehouse
/user/hiveとそのすべてのサブディレクトリの所有者がhadooperに変更された
hdfs dfs -chown -R hadooper:hadooper /user/hive
Spark 構成の統合
Hiveはデフォルトで実行エンジンとしてMapReduceを使用しており、計算効率を向上させるために、Hive 構成変更、Spark 構成変更の2ステップを含む実行エンジンとしてSparkを構成する必要があります。
Hiveプロファイルの変更
設定済みのHiveコア構成に加えて、Spark Execution Engine 関連の構成を補完します。
移行後のHive 構成ディレクトリに移動します(パスは/export/servers/hiveに移行済み)
cd /export/servers/hive-4.0.1/conf
hive-site.xmlファイルを編集するXMLインデントを一貫したまま、元の構成に次を追加する
sudo vi /export/servers/hive-4.0.1/conf/hive-site.xml
<configuration>タブ内に次の構成を追加します厳密にインデントされており、従来の構成と同等です。
<!-- 配置 Hive 执行引擎为 Spark -->
<property>
<name>hive.execution.engine</name>
<value>spark</value>
</property>
<!-- 配置 Spark 运行模式为 YARN(依赖 Hadoop YARN 资源管理) -->
<property>
<name>spark.master</name>
<value>yarn</value>
</property>
<!-- 配置 Spark 安装路径(需与实际 Spark 目录一致) -->
<property>
<name>spark.home</name>
<value>/export/servers/spark</value>
</property>
<!-- 配置 Spark JAR 包在 HDFS 的存储路径(后续需上传 JAR 包至此路径) -->
<property>
<name>spark.yarn.jars</name>
<value>hdfs://mycluster/spark/jars/*</value>
</property>
<!-- 配置 Spark 客户端与服务端连接超时时间(避免大集群环境下连接失败) -->
<property>
<name>hive.spark.client.server.connect.timeout</name>
<value>300000</value>
</property>! [] https//r2.hoshiumi.xyz/old_img/画像 49.png
Sparkプロファイルの変更
Spark 関連のHiveメタデータを構成し、コーディングフォーマットを指定し、Hadoopクラスパス依存性を追加して、SparkとHive 互換性を確保します。
spark-defaults.confの構成関連付けられたHiveメタデータ
Spark 設定ディレクトリに移動
cd /export/servers/spark/conf
テンプレートファイルの名前を正式なプロファイルに変更
sudo cp /export/servers/spark/conf/spark-defaults.conf.template /export/servers/spark/conf/spark-defaults.conf
spark-defaults.confファイルを編集し、Hiveメタデータとエンコード構成を追加する
sudo vi /export/servers/spark/conf/spark-defaults.conf
ファイルの最後に以下を追加します(Hiveパス、HDFSアドレスと一致する必要があります)。
# 配置 Hive 元数据版本
spark.sql.hive.metastore.version 4.0.1
# 配置 Spark 加载 Hive 的 JAR 包路径
spark.sql.hive.metastore.jars = /export/servers/hive-4.0.1/lib/*
# 配置 Hive Metastore 服务地址(hadoop01 为 metastore 所在主机名,默认端口 9083)
spark.sql.hive.metastore.uris thrift://hadoop01:9083
# 配置 Spark SQL 数据仓库路径(与 Hive 数据仓库路径一致,避免数据分散)
spark.sql.warehouse.dir
hdfs://hadoop01:8020/user/hive/warehouse
# 配置 Spark 驱动与执行器的编码格式(解决中文乱码问题)
spark.driver.extraJavaOptions=-Dfile.encoding=UTF-8
spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8spark-env.shの構成(HiveとHadoop 依存関係の追加)
Spark 構成ディレクトリでspark-env.shファイルを編集します(存在しない場合は作成します)。
sudo vi /export/servers/spark/conf/spark-env.sh
ファイルの最後に以下を追加します(HiveパスとHadoopクラスパスの関連付け)。
# 设置Hive配置文件的目录
export HIVE_HOME=/export/servers/hive-4.0.1
export HIVE_CONF_DIR=$HIVE_HOME/conf
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
! [] httr2.hoshi.z_img/画像 50.png
Sparkの環境変数の設定
システム環境変数にSparkパスを追加して、すべてのユーザーがSparkコマンドを呼び出すことができるようにします。
システムグローバル環境変数ファイルの編集/etc/profileはすべてのユーザーに有効で、sudo 権限が必要
sudo vi /etc/profile
ファイルの最後にSpark 環境変数を追加する(Hive、Hadoop 環境変数と同じレベル)
#Spark环境变量
export SPARK_HOME=/export/servers/spark
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
環境変数を即座に有効にする(現在の端末で有効にする、すべての端末で再起動または再ログイン)
source /etc/profile
Spark 環境変数の検証出力/export/servers/sparkは構成成功を示します
echo $SPARK_HOME
依存コンポーネント構成(HDFSディレクトリ+My SQL JDBCドライバ)
HDFSでのハイブディレクトリの作成
HiveデータウェアハウスはHDFSに保存され、手動でディレクトリを作成して承認する必要があります。
Hadoopクラスタが起動していることを確認します(起動していない場合は以下のコマンドを実行)
/export/servers/hadoop/sbin/start-all.sh
HDFSでのデータベース作成
hdfs dfs -mkdir -p /user/hive
hdfs dfs -mkdir -p /user/hive/warehouse
/user/hiveとそのすべてのサブディレクトリの所有者をhadooperに変更
hdfs dfs -chown -R hadooper:hadooper /user/hive
ディレクトリの検証hadoop fs -ls /user/hiveを実行し、作成に成功したことを示すwarehouseディレクトリを表示します。
MySQL JDBCドライバのインストール
HiveはJDBCドライバ経由でMy SQLに接続し、Hive 依存ライブラリにダウンロードしてコピーする必要があります。
/optディレクトリに移動し、My SQL JDBCドライバ(バージョン8.0.33、My SQL 8.0+互換)をダウンロードします
cd /opt
sudo wget -P /opt/ https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar
ドライバパッケージをHiveのlibディレクトリにコピーします(Hiveは起動時にこのディレクトリの依存関係を自動的にロードします)
cp /opt/mysql-connector-j-8.0.33.jar /export/servers/hive-4.0.1/lib/
ダウンロードに失敗した場合は、手動でリンクにアクセスして/optディレクトリにアップロードし、コピーコマンドを実行します。
駆動ソフトリンクを作成する
Hive libディレクトリに移動
cd /export/servers/hive-4.0.1/lib
互換性のあるソフトリンクを作成する(-jを削除し、Hiveが認識するファイル名と一致)
ln -s mysql-connector-j-8.0.33.jar mysql-connector-java-8.0.33.jar
ソフトリンクが正常に作成されたことの確認
ls -l | grep mysql-connector
ご覧ください:
lrwxrwxrwx 1 hadooper hadooper ... mysql-connector-java-8.0.33.jar -> mysql-connector-j-8.0.33.jar
-rw-r--r-- 1 hadooper hadooper ... mysql-connector-j-8.0.33.jar
! [] httr2.hoshi.z_img/画像 51.png
Hadoopプロキシユーザ権限の構成
HiveランタイムはHadoopクラスタへのプロキシユーザーアクセスを必要とし、Hadoop 構成での承認が必要です。
Hadoop 用のcore-site.xml構成ファイルの編集(パスは実際のHadoopディレクトリと一致する必要があります)
sudo vi /export/servers/hadoop/etc/hadoop/core-site.xml
<configuration>タブ内に次のプロキシユーザー設定を追加します一般ユーザーを許可
<property>
<name>hadoop.proxyuser.hadooper.hosts</name>
<value>*</value> <!-- * 表示允许所有主机代理 -->
</property>
<property>
<name>hadoop.proxyuser.hadooper.groups</name>
<value>*</value> <!-- * 表示允许所有用户组代理 -->
</property>
<property>
<name>hadoop.proxyuser.hadoop01.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop01.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadooprunner.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadooprunner.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property> ! [] httr2.hoshi.z_img/画像 52.png
保存して終了
Hadoopクラスタの再起動(構成を有効にする)
/export/servers/hadoop/sbin/stop-all.sh
/export/servers/hadoop/sbin/start-all.sh
Hadoopステータスの検証(すべてのコアプロセスの起動を確認)
jps
HDFSディストリビューションとのJARパッケージ依存関係の競合の処理
SparkとHive、HadoopにはJARパッケージのバージョンの競合がある可能性があります。競合を解決するには、“主要 JARパッケージの双方向コピー”が必要で、Spark JARパッケージをHDFSにアップロードしてYARNクラスタ共有呼び出します。
重要なJARパッケージの双方向コピー
指定されたJARパッケージのリストに基づいて、双方向コピー操作を実行し、HiveとSpark 依存バージョンの互換性を確認します。
Spark → Hive(Sparkの依存関係をHive libディレクトリにコピー)
cd $SPARK_HOME/jars
cp $SPARK_HOME/jars/spark-core_2.12-3.4.3.jar /export/servers/hive-4.0.1/lib/
cp $SPARK_HOME/jars/spark-network-common_2.12-3.4.3.jar /export/servers/hive-4.0.1/lib/
cp $SPARK_HOME/jars/spark-launcher_2.12-3.4.3.jar /export/servers/hive-4.0.1/lib/
cp $SPARK_HOME/jars/spark-unsafe_2.12-3.4.3.jar /export/servers/hive-4.0.1/lib/
cp $SPARK_HOME/jars/scala-library-2.12.17.jar /export/servers/hive-4.0.1/lib/
Hive → Spark(Hive 依存性をSpark jarsディレクトリにコピー)
cd /export/servers/hive-4.0.1/lib
cp /export/servers/hive-4.0.1/lib/hive-exec-4.0.1.jar /export/servers/spark/jars/
cp /export/servers/hive-4.0.1/lib/hive-metastore-4.0.1.jar /export/servers/spark/jars/
cp /export/servers/hive-4.0.1/lib/hive-common-4.0.1.jar /export/servers/spark/jars/
cp /export/servers/hive-4.0.1/lib/hive-serde-4.0.1.jar /export/servers/spark/jars/
cp /export/servers/hive-4.0.1/lib/hive-cli-4.0.1.jar /export/servers/spark/jars/
cp /export/servers/hive-4.0.1/lib/jline-2.14.6.jar /export/servers/spark/jars/
コピー結果の検証
ls /export/servers/hive-4.0.1/lib | grep -E "spark|scala"
ls /export/servers/spark/jars | grep -E "hive|jline"
Spark JARパッケージをHDFSに配布する
Hadoopクラスタが起動したことを確認
/export/servers/hadoop/sbin/start-all.sh
HDFSディレクトリの作成
cd /export/servers
hdfs dfs -mkdir -p /spark/jars
Spark JARパッケージをアップロード
hdfs dfs -put $SPARK_HOME/jars/* /spark/jars
アップロード結果の確認
hdfs dfs -ls /spark/jars | wc -l
ls $SPARK_HOME/jars | wc -l
冗長 JARパッケージの消去実際に決定
Spark Jarsにアクセスする
cd /export/servers/spark/jars
Hiveバージョン2.3.9の冗長 JARパッケージの削除
sudo rm /export/servers/spark/jars/hive-exec-2.3.9-core.jar /export/servers/spark/jars/hive-metastore-2.3.9.jar /export/servers/spark/jars/hive-common-2.3.9.jar /export/servers/spark/jars/hive-serde-2.3.9.jar /export/servers/spark/jars/hive-cli-2.3.9.jar /export/servers/spark/jars/hive-beeline-2.3.9.jar
残りのパッケージを検证するHive 4.0.1のみ予约
ls /export/servers/spark/jars/ | grep -E "hive-exec|hive-metastore|hive-common|hive-serde|hive-cli|hive-beeline"
! [] httr2.hoshi.z_img/画像 53.png
Hiveメタデータ·データベースの初期化
最初のデプロイには、メタデータの初期化が必要です(Hiveの作成に必要なテーブル構造)。
Hadoopクラスタが起動されていることを確認する(初期化に失敗する)
jps
NameNode、DataNode、ResourceManager、NodeManagerプロセスが存在することを確認します。
Hiveメタデータベース初期化コマンドの実行データベースのタイプをMySQLに指定
schematool -dbType mysql -initSchema
実行結果:端末は大量のログ(テーブル作成文を含む)を出力し、エラーが報告されない(schemaTool completedなど)初期化成功を示します。
例外処理:“My SQLに接続できません”というメッセージが表示された場合、My SQLサービスが開始され、hive-site.xmlの接続情報が正しいこと、JDBCドライバが正常にコピーされていることを確認します。
Hiveの起動と確認
Hive 初期化
HiveServer2の/サービス
nohup hive --service hiveserver2 > /tmp/hiveserver2.log 2>&1 &
Metastoreメタデータ·サービスの起動
nohup hive --service metastore -p 9084 > /tmp/metastore.log 2>&1 &
しばらく待機した後(約 15 秒)、Metastoreサービスを検証します(ポート9084のリスニングが成功したことを示す)
netstat -tuln | grep 9084
ハイブへの接続
hiveまたはbeelineコマンドを実行してBeeline 対話モードに入ります(プロンプトがbeeline>に変わります)
hive
または
beeline
そうでない場合は、SparkとHiveの環境順序を変更します。つまり、Sparkが前にあり、Which Beelineを使用して、HiveのBeelineが返されるかどうかを確認します。
HiveServer2への接続ローカル接続、SASL 不要
!connect jdbc:hive2://localhost:10000/default;auth=noSASL
ユーザー名とパスワードを入力します(ユーザー名はroot、パスワードはそのままEnterキー、ローカル接続にはパスワードは不要)
rootの後に戻る。
root
接続のプロンプトが0 jc hive2//localhost\10000/>になり、次のコマンドを実行
データベースを表示する
show databases;
Hiveのシステム構成を見る
set -v;
デフォルトデータベースの正常な出力は、Hiveの配備が完了し、正常に使用できることを示します。
! [] httr2.hoshi.z_img/画像 54.png
気に入ったならばコメントを残してくださいね~