CDH クラスター 6.3.2 + CM6.3.1 のオフライン インストールと展開の実践的なナニー レベルの詳細なチュートリアル

目次

1. はじめに

CDH の概要

CM紹介

Apache Hadoop ではなく CDH を選択する理由

CDH のインストール手順

2. 準備作業

前提条件

テストサーバーの準備

ソフトウェア環境の準備

CDHインストールパッケージの準備

CDH6.3.2 インストール パッケージを表示する

CM6.3.1 インストール パッケージを表示する

JDK1.8インストールパッケージを見る

環境構成

静的ネットワーク IP を構成する

 ホスト名の変更

ホスト構成を変更する

SSH パスワード不要のログインを構成する

キーペアの作成

キーペアの表示

パスワードなしのログインを検証する

リモートバッチ操作psshツール

ファイアウォールをオフにする

 SELinuxを無効にする

スワップの構成

 透明なページを閉じる

 プロセスの最大数とファイル ハンドルの最大数を構成する

atimeを無効にする

クラスターのクロック同期

JDKのインストール

MySQL のインストール

MySQL のデプロイ

MySQLの構成

データベースとユーザーを初期化する

JDBCドライバーをインストールする

プライベート Yum ソースを構築する

httpd サービスをインストールする

Webサービスを構成する

ローカルリポジトリソースを作成する

3. CM6.3.1のインストール手順

クラスターの役割

CM6.3.1をインストールする

Cloudera Manager サーバーをインストールする

SCMデータベースの初期化

 Cloudera Manager サーバーを起動する

4. CDH Cluster 6.3.2 のインストール手順

クラスターインストールウィザード

クラスターのインストール設定


1. はじめに

官方文档:Cloudera Enterprise 6.3 Documentation

CDH の概要

CDH は、Cloudera によって開発および保守されている、Apache Hadoop に基づくオープンソース ソフトウェア ディストリビューションです。 CDH は、統合バッチ処理、対話型 SQL と対話型検索、およびロールベースのアクセス制御のための Hadoop ソリューションを提供します。コンポーネントには、Hadoop 分散ファイル システム (HDFS)、分散コンピューティング フレームワーク (MapReduce) およびその他の関連オープン ソース コンポーネント (Hive、 HBase、ImpalaなどCDH の目標は、ビッグ データの処理と分析のプロセスを簡素化し、企業がビッグ データをより適切に活用して洞察と価値を獲得できるようにすることです。

CM紹介

CM は、CDH クラスターを管理および監視するために Cloudera によって提供される集中管理ツールです。 CM は、管理者が CDH クラスターの構成、展開、監視に使用できる直感的な Web インターフェイスを提供します。 CM は、管理者が CDH クラスターをより適切に管理および維持できるように、自動展開、障害診断、アラーム通知などの高度な機能も提供します。 CM 管理者を介して、クラスターの構成を簡単に管理し、クラスターの健全性状態を監視し、クラスターのメンテナンス タスクやパフォーマンスのチューニングなどの操作を実行できます。

Apache Hadoop ではなく CDH を選択する理由

CDH と Apache Hadoop の比較
特徴 CDH アパッチ・ハドゥープ
機能の総合性 Hive、HBase、Impala など、さまざまなビッグ データの処理と分析のニーズをサポートする幅広いコンポーネントとツールを提供します。 コアの分散ストレージ (HDFS) およびコンピューティング (MapReduce) 機能を提供します。より高度なデータ処理と分析には他のコンポーネントまたはツールの使用が必要です。
管理ツール 集中管理および監視機能を提供し、自動展開、障害診断、アラーム通知などをサポートする Cloudera Manager (CM) が含まれています。 Apache Hadoop は、同様の集中管理ツールをネイティブに提供しておらず、通常、管理と監視には他のサードパーティ ツールが必要です。
商用サポート Cloudera は、技術サポート、トレーニング、コンサルティングなどの商用サポートとサービスを提供します。 Apache Hadoop はオープンソース プロジェクトであり、正式な商用サポートはありませんが、関連するサポートとサービスを提供するサードパーティ企業が多数あります。
開発スピード CDH は比較的急速に進化しており、各バージョンは Cloudera によってテストおよび検証されています。 オープンソース プロジェクトとして、Apache Hadoop にはより多くのコミュニティ貢献者が存在するため、より頻繁に更新され、新機能が導入され、より迅速に開発されます。

要約すると、CDH はより包括的で使いやすい機能とサポート管理ツールを提供し、ビッグ データの処理と分析をより簡素化して一元化します。一般にクラスタサイズが大きくなるほど、クラスタの管理や運用保守能力に対する要求も高くなりますが、このときCDHが果たせる価値は大きくなります。

CDH のインストール手順

Cloudera Enterprise Edition は有料です。お金に余裕がなく、テクニカル サポートも受けられない場合は、購入を検討してください。Cloudera Community Edition はオープンソースで無料で、豊富なコミュニティ ドキュメントとリソースがあります。ただし、Cloudera の公式発表によると、2021 年 7 月以降、Cloudera Community Edition は更新とリリースを停止しており、CDH 6.3.2 が Cloudera Community Edition の最後の無料バージョンになるとのことです。また、2021 年 2 月 1 日以降、すべての CDH および Cloudera Manager (履歴バージョンのダウンロードを含む) ではユーザー名とパスワードが必要です。つまり、ユーザーはダウンロードする前に Cloudera 製品をサブスクライブし、対応する承認を取得する必要があります。したがって、インストールと展開にはオフライン パッケージを使用します。この記事では、CDH6.3.2+CM6.3.1 を例として、ビッグ データ クラスターのインストールと展開プロセスを詳しく紹介します。参考にしてください。この記事のオフライン インストール パッケージは、また、誰もがダウンロードして使用できるように無料で共有することもできます。皆さん、言葉を書くのは簡単ではありません。「いいね」を押して保存することを忘れないでください。迷子にならないようにフォローしてください。

2. 準備作業

前提条件

テストサーバーの準備

この記事では 3 台のテスト サーバーを例として、root ユーザーとしてログインし、ノード構成は次のとおりです。

テストサーバー構成情報
シリアルナンバー ホスト IP CPU メモリ ディスク HDFの役割
1 ノード1 192.168.5.10 16C 40G 512G システムディスク (xfs) + 1T データディスク (ext4)

名前ノード1/

データノード

2 ノード2 192.168.5.11 16C 40G 512G システムディスク (xfs) + 1T データディスク (ext4)

名前ノード2/

データノード

3 ノード3 192.168.5.12 16C 40G 512G システムディスク (xfs) + 1T データディスク (ext4) データノード

ソフトウェア環境の準備

ソフトウェア環境の基本情報
シリアルナンバー ソフトウェアの名前 バージョン情報 述べる
1 Centos オペレーティング システムのディストリビューション CentOS Linux リリース 7.9.2009 x86_64 CDH には 7.2 以降が必要です
2 MySQLデータベース 5.7.43 x86_64 CDH6 は 5.7 以降を推奨します。utf8mb4 エンコードではなく utf8 エンコードを必ず使用してください。
3 JDK 1.8.0_181x86_64 CDH6 は JDK1.7 をサポートしなくなり、1.8u181 を推奨します
4 パイソン 2.7.5
5 CDH 6.3.2
6 CM 6.3.1

CDHインストールパッケージの準備

CDH、CM、JDK インストール パッケージは事前にダウンロードする必要があります。現在、公式では無料ダウンロードを提供していません。誰もが使用できるように、Baidu Netdisk にアップロードしました。リンク アドレス: CDH すべてのインストール パッケージ 、リンクが失敗した場合は、メッセージを残すかプライベート メッセージを送信して、ネットワーク ディスクに cdh フォルダーをダウンロードしてローカルに保存してください。

CDH6.3.2 インストール パッケージを表示する
[root@node1 cdh]# tree CDH6.3.2/
CDH6.3.2/
├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
└── manifest.json

0 directories, 4 files
CM6.3.1 インストール パッケージを表示する
[root@node1 cdh]# tree CM6.3.1
CM6.3.1
├── allkeys.asc
├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
└── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm

0 directories, 6 files
JDK1.8インストールパッケージを見る
[root@node1 cdh]# tree JDK
JDK
└── oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

0 directories, 1 file

環境構成

静的ネットワーク IP を構成する

Centos7 の静的ネットワーク構成ファイルは /etc/sysconfig/network-scripts/ifcfg-<interface> です。ローカル ネットワーク インターフェイスの名前は p2p1 です。すべてのノードのネットワーク構成を変更します。特定のパラメータは次のとおりです。

[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-p2p1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="p2p1" # 网络接口名称
UUID="31b15de1-225f-4540-b135-b80d5da6f335"
DEVICE="p2p1"
ONBOOT="yes" # 设置开机启动,确保网络配置有效,否则无法建立网络连接
IPADDR="192.168.5.10" # 静态IP地址
PREFIX="24" # 子网掩码,相当于255.255.255.0
GATEWAY="192.168.5.1" # 默认网关IP地址
DNS1="192.168.1.1" # 首选DNS服务器IP地址,上网必备
IPV6_PRIVACY="no" # 禁用IPV6

ネットワークの再起動はすぐに有効になります

systemctl restart network
 ホスト名の変更

すべてのノードのホスト名を変更すると、ノードを再起動するとすぐに変更が有効になります。

hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
ホスト構成を変更する

すべてのノードの IP とドメイン名のマッピング関係を構成する

# vim /etc/hosts
192.168.5.10 node1
192.168.5.11 node2
192.168.5.12 node3
SSH パスワード不要のログインを構成する

ssh-keygen は、SSH キー ペアの生成と管理に使用されます。SSH キー ペアは、公開キーと秘密キーで構成されます。公開キーは、SSH 認証プロセス中にリモート サーバーにセキュリティ認証を提供するために使用され、通常は authorized_keys ファイルに追加され、秘密キーはデフォルトでローカルに保存されます。デフォルトでは、root ユーザーは秘密キーのペアを /root/ に保存します。.ssh目录下。

创建密钥对

node1和node2节点上生成ssh密钥对,执行ssh-keygen命令,过程如下:

# 一路回车,生成密钥对
[root@node1 ~]# ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:AJWzRl9kwU3kbQ7C518oIKCmQdpvKNeQxiIvxo4ly/w root@node1
The key's randomart image is:
+---[RSA 2048]----+
|  . ..o. o+=o    |
| = . o+. oo...   |
|+ B o..+..+ + o  |
|o+ O  o... = + . |
|+o* +.  S   o o .|
|*B .         o . |
|o+            .  |
|  .              |
|   E             |
+----[SHA256]-----+
キーペアの表示
[root@node1 ~]# ll .ssh
total 8
-rw-------. 1 root root 1675 Aug 22 09:06 id_rsa
-rw-r--r--. 1 root root  392 Aug 22 09:06 id_rsa.pub

公開鍵を各ノードにコピーする 本機を例に実行処理は以下のようになります。

[root@node1 ~]# ssh-copy-id node1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host 'node1 (192.168.5.10)' can't be established.
ECDSA key fingerprint is SHA256:WoqiUZLXfc+dFxBBkVaC/hJybMxqwqwvuHCR1seMkLE.
ECDSA key fingerprint is MD5:f5:9e:e3:ba:f4:15:4d:aa:96:16:bc:df:4c:05:98:ac.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@node1's password: 
Permission denied, please try again.
root@node1's password: # 首次需要输入密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'node1'"
and check to make sure that only the key(s) you wanted were added.
パスワードなしのログインを検証する
[root@node1 ~]# ssh node2
Last login: Sun Aug 20 21:22:36 2023 from 192.168.5.117
リモートバッチ操作psshツール

オープンソース ツール pssh ツールを使用すると、複数のサーバー上でリモート バッチ操作コマンドを実行でき、クラスター管理が大幅に簡素化され、効率と精度が向上します。

Node1 ノードは pssh ツール パッケージをインストールします

# 下载
https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
# 解压
tar xvf pssh-2.3.1.tar.gz
# 安装
python setup.py install
# 验证
pssh --version

コマンドを実行する前に、必ず事前にSSHパスワード不要ログインの設定を行ってください。

[root@node1 ~]# pssh -H root@node2 date
[1] 10:43:30 [SUCCESS] root@node2

ノードファイルを作成し、すべてのノードを構成します

[root@node1 ~]# vim nodes
root@node1
root@node2
root@node3
ファイアウォールをオフにする

pssh バッチはすべてのノードのファイアウォールを無効にしてオフにします

[root@node1 ~]# pssh -h ./nodes -i 'systemctl disable firewalld'
[1] 10:50:18 [SUCCESS] root@node1
[2] 10:50:18 [SUCCESS] root@node2
[3] 10:50:18 [SUCCESS] root@node3
[root@node1 ~]# pssh -h ./nodes -i 'systemctl stop firewalld'
[1] 10:49:59 [SUCCESS] root@node1
[2] 10:49:59 [SUCCESS] root@node2
[3] 10:49:59 [SUCCESS] root@node3
 SELinuxを無効にする

pssh バッチはすべてのノードの /etc/sysconfig/selinux を変更し、永続的に無効にします

pssh -h ./nodes -i "sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux"

pssh バッチ変更が成功したかどうかを確認する

[root@node1 ~]# pssh -h ./nodes -i "cat /etc/sysconfig/selinux | grep SELINUX="
[1] 11:05:38 [SUCCESS] root@node1
# SELINUX= can take one of these three values:
SELINUX=disabled
[2] 11:05:38 [SUCCESS] root@node2
# SELINUX= can take one of these three values:
SELINUX=disabled
[3] 11:05:38 [SUCCESS] root@node3
# SELINUX= can take one of these three values:
SELINUX=disabled
スワップの構成

カーネル パラメータの swappiness は、メモリが不足している場合に、メモリ内のデータをハードディスクのスワップ領域 (swap) にスワップするようにシステムを制御するために使用されます。一般に、swappiness の値は 0 ~ 100 の範囲で設定できます。カーネル バージョン 3.5 以降、および Red Hat カーネル バージョン 2.6.32-303 以降の場合は、スワップを無効にする代わりに、より小さい値を設定することをお勧めします。

pssh は vm.swappiness=1 をすべてのノードにバッチで追加し、マシンを再起動して永続的に有効にします

pssh -h ./nodes -i 'echo vm.swappiness = 1 >> /etc/sysctl.conf' # 永久生效配置
pssh -h ./nodes -i 'sysctl -p' # 动态加载使当前会话生效

 追加が成功したかどうかを確認する

[root@node1 ~]# pssh -h ./nodes -i "cat /etc/sysctl.conf | grep vm.swappiness"
[1] 11:26:41 [SUCCESS] root@node1
vm.swappiness = 1
[2] 11:26:41 [SUCCESS] root@node2
vm.swappiness = 1
[3] 11:26:41 [SUCCESS] root@node3
vm.swappiness = 1
 透明なページを閉じる
[root@node1 log]# vim /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
 echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
 echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

RAC 環境での透過的ヒュージページは、ノードの異常な再起動とパフォーマンスの問題を引き起こします。スタンドアロン環境でも、パフォーマンスの問題が発生する可能性があります。つまり、透過的ヒュージページを有効にすることはお勧めできません。

注: 透明なラージ ページがオフになっていない場合、CM サーバーのインストール プロセス中にホスト エントリをチェックするときに黄色の警告が表示されます。

一時的な効果的な解決策: pssh は透明な大きなページをバッチで閉じます

[root@node1 ~]# pssh -h ./nodes -i "echo never > /sys/kernel/mm/transparent_hugepage/defrag"
[1] 11:38:37 [SUCCESS] root@node1
[2] 11:38:37 [SUCCESS] root@node2
[3] 11:38:37 [SUCCESS] root@node3
[root@node1 ~]# pssh -h ./nodes -i "echo never > /sys/kernel/mm/transparent_hugepage/enabled"
[1] 11:38:39 [SUCCESS] root@node1
[2] 11:38:39 [SUCCESS] root@node3
[3] 11:38:39 [SUCCESS] root@node2

永続的で効果的なソリューション

[root@node1 log]# vim /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
 echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
 echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
[root@node1 log]# chmod +x /etc/rc.d/rc.local

シャットダウンが成功したかどうかを確認する

[root@node1 ~]# pssh -h ./nodes -i "cat /sys/kernel/mm/transparent_hugepage/defrag;cat /sys/kernel/mm/transparent_hugepage/enabled"
[1] 10:14:28 [SUCCESS] root@node2
always madvise [never]
always madvise [never]
[2] 10:14:28 [SUCCESS] root@node3
always madvise [never]
always madvise [never]
[3] 10:14:28 [SUCCESS] root@node1
always madvise [never]
always madvise [never]
 プロセスの最大数とファイル ハンドルの最大数を構成する

ユーザーのプロセスおよびファイル ハンドル番号の構成ファイルは /etc/security/limits.conf です。種類にはハード リミット (ハード) とソフト リミット (ソフト) が含まれます。* はすべてのユーザーを示し、nproc は開いているプロセスの最大数を示します。nofile最大ファイルハンドル数を示します。 Cloudera では、nproc プロセスの最大数を 65536 または 26214 にすることを推奨します。

pssh バッチは、すべてのユーザーのプロセスとファイル ハンドルの最大制限を変更します

pssh -h ./nodes -i "echo '* soft nproc 65535' >> /etc/security/limits.conf"
pssh -h ./nodes -i "echo '* hard nproc 65535' >> /etc/security/limits.conf"
pssh -h ./nodes -i "echo '* soft nofile 65535' >> /etc/security/limits.conf"
pssh -h ./nodes -i "echo '* hard nofile 65535' >> /etc/security/limits.conf"
atimeを無効にする

Linux ファイル システムは、各ファイルのアクセス時間を記録するメタデータを保持するため、読み取り操作でもディスクへの書き込みが発生する可能性があります。ファイル読み取りパフォーマンスを向上させるために、Cloudera では、構成ファイルで noatime マウント オプションを使用して atime オプションを無効にすることをお勧めします。 /etc/fstab

pssh バッチはファイルの最終アクセス時刻を無効にします。ローカルにマウントされたデータ ディレクトリは /data です。次のように変更します。

# 数据目录添加noatime
pssh -h ./nodes -i "sed -i 's/\/data                   ext4    defaults/\/data                   ext4    defaults,noatime/' /etc/fstab"
# 重新挂载不需要重启节点
mount -o remount /data
クラスターのクロック同期

Centos7 は、デフォルトで時刻同期に NTP の代わりに Chrony ツールを使用します。Chrony と NTP の間に競合がある場合、選択できるのは 1 つだけです。CDH6 では Chrony の使用を推奨します。インストールおよび起動コマンドは次のとおりです。

# 安装
yum -y install chrony
# 启动
systemctl start chronyd

すでにインストールされている場合は、それをスキップして、ハードウェア クロックを UTC に、タイム ゾーンをローカル タイム ゾーンに変更できます。

# 硬件时钟设置为UTC
pssh -h ./nodes -i "timedatectl set-local-rtc 0"
# 设置本地时区,显示本地时间
pssh -h ./nodes -i "timedatectl set-timezone Asia/Shanghai"
# 手动加载RTC设置
pssh -h ./nodes -i "hwclock --systohc"

timedatectlで時刻を確認する

[root@node1 ~]# timedatectl
      Local time: Tue 2023-08-22 15:14:57 CST
  Universal time: Tue 2023-08-22 07:14:57 UTC
        RTC time: Tue 2023-08-22 07:14:57
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
JDKのインストール

Cloudera では、JDK1.8u181 バージョンをインストールすることをお勧めします。CDH インストール パッケージを開きます。oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm パッケージは JDK ディレクトリに配置されています。インストールします。バージョン JDK、インストールと構成は比較的簡単です。他の記事を参照してください:Centos7 の 64 ビット JDK1.8 のインストール。 「rpmによるインストール」へ コンテンツがインストールされます。 Centos7 は 64 ビット JDK1.8 をインストールします

MySQL のインストール
MySQL のデプロイ

Node1 ノードは MySQL5.7 サーバーをインストールしてデプロイします。具体的なインストール手順については、私の他の記事を参照してください:MySQL5.7 の Linux インストールとアンインストールの詳細なチュートリアル

MySQLの構成

MySQL の設定ファイルは /etc/my.cnf で、Cloudera の推奨構成は次のとおりです。

ここには落とし穴があることに注意してください: MySQL 5.7 の上位バージョンでは、MySQL に接続するために CM サーバーを起動するときに com.mysql.jdbc.Exceptions.jdbc4.CommunicationsException が報告されることがあります。その理由は、SSL 認証がデフォルトで有効になっているためです。 useSSL=trueと同等 解決策としては、設定にskip-sslを追加してMySQLサービスを再起動する方法と、[mysqld_safe]設定項目を廃止し、以下の設定を確認しています。

[mysqld]
# 务必禁用掉ssl,相当于useSSL=false
skip-ssl 

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0

key_buffer_size = 32M
max_allowed_packet = 16M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

# 设置数据库错误日志时间显示为系统时间
log_timestamps=system

# 设置安全策略
validate_password_policy=LOW
validate_password_length=4
validate_password_mixed_case_count=1
validate_password_number_count=1
validate_password_special_char_count=1

max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log

#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

# [mysqld_safe] 5.7已废弃该配置
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES

MySQL サーバーを再起動して構成を有効にします

systemctl restart mysqld 
データベースとユーザーを初期化する

Cloudera の公式 Web サイトで初期化が必要なデータベースとユーザーは次のとおりです。

 上記のすべてのコンポーネント データベースを作成し、次のスクリプトを実行します。

[root@node1 ~]# mysql -uroot -p
# scm
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'abcd1234';

# amon
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'abcd1234';

# rman
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'abcd1234';

# hue
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'abcd1234';

# hive
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'abcd1234';

# sentry
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'abcd1234';

# nav
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'abcd1234';

# navms
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'abcd1234';

# oozie
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'abcd1234';

# 最后刷新一下权限
flush privileges;

# 检查
show databases;
JDBCドライバーをインストールする

Cloudera では、各ノードがデータベースに接続するには、コンポーネントで使用する前に、データベースを /usr/share/java ディレクトリに作成する必要があります。

# 创建目录
pssh -h ./nodes -i 'mkdir -p /usr/share/java/'
# 复制到各个节点
pscp -h ./nodes /var/www/html/cdh/mysql/mysql-connector-java-5.1.46-bin.jar /usr/share/java/
# 修改权限
pssh -h ./nodes -i 'cd /usr/share/java;chmod 777 mysql-connector-java-5.1.46-bin.jar'
# 重命名jar包以便找到
pssh -h ./nodes -i 'cd /usr/share/java;ln -s mysql-connector-java-5.1.46-bin.jar mysql-connector-java.jar'
# 验证是否创建成功
pssh -h ./nodes -i 'tree /usr/share/java'
プライベート Yum ソースを構築する

CDH および CM のローカル リポジトリ ソースを作成して、イントラネット クラスタ ノードによるアクセスを容易にします。

httpd サービスをインストールする

node1 ノードは Apache httpd サービスをインストールします。このサービスは、その後 HTTP 経由で CDH および CM インストール パッケージにアクセスしてダウンロードするために使用されます。

# 安装httpd和createrepo
yum -y install httpd createrepo
# 启动
systemctl start httpd
# 开机启动
systemctl enable httpd

注: httpd サービスがパーセル ファイルを送信するとき、「Content-Encoding」がデフォルトで設定されているため、CM サーバーはパーセル ファイルが httpd によって圧縮されていると認識し、解凍しようとします。その結果、エラーが発生します。解決策は、httpd の設定ファイルを変更することです。

構成ファイル /etc/httpd/conf/httpd.conf を変更し、パーセル ファイルのリモート ダウンロード用に <IfModule mime_module> に .parcel ファイル タイプのサポートを追加します。​ 

[root@node1 ~]# vim /etc/httpd/conf/httpd.conf
<IfModule mime_module>
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz .parcel
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>

httpdサービスを再起動します

systemctl restart httpd
Webサービスを構成する

node1 ノードは、cdh を httpd サービスのルート ディレクトリ /var/www/html に移動し、Yum 経由でアクセスするためのリポジトリ メタデータを生成します。

[root@node1 ~]# mv /opt/apps/cdh /var/www/html
[root@node1 ~]# tree /var/www/html
/var/www/html
└── cdh
    ├── CDH6.3.2
    │   ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel
    │   ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1
    │   ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256
    │   └── manifest.json
    ├── CM6.3.1
    │   ├── allkeys.asc
    │   ├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
    │   ├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
    │   ├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm
    │   ├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm
    │   └── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm
    ├── JDK
    │   └── oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
    └── mysql
        ├── 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
        ├── 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
        ├── 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
        ├── 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
        ├── 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
        └── mysql-connector-java-5.1.46-bin.jar

5 directories, 17 files
[root@node1 ~]# cd /var/www/html/cdh/CM6.3.1/
[root@node1 CM6.3.1]# createrepo .

http アクセスを確認する

ローカルリポジトリソースを作成する

/etc/yum.repos.d ディレクトリに cm-local.repo 構成ファイルを作成し、次の内容を追加します。

[root@node1 yum.repos.d]# vim cm-local.repo 
[cm-repo]
name=cm-repo
baseurl=http://192.168.5.10/cdh/CM6.3.1
enabled=1 # 启用yum
gpgcheck=0 # 不检查检查gpg

クラスター内の他のノードにコピーし、次の操作を実行します。

# 远程复制
pscp -h ./nodes /etc/yum.repos.d/cm-local.repo /etc/yum.repos.d/
# 先清空再添加缓存
pssh -h ./nodes -i 'yum clean all && yum makecache'
# 查看当前所有yum源
pssh -h ./nodes -i 'yum repolist'

3. CM6.3.1のインストール手順

クラスターの役割

クラスターCMの役割
シリアルナンバー ノード CMサービスの役割
1 ノード1

クラウドデラ-scm-サーバー クラウドデラ-scm-エージェント

2 ノード2 Cloudera-scm-エージェント
3 ノード3 Cloudera-scm-エージェント

CM6.3.1をインストールする

Cloudera Manager サーバーをインストールする

まず、Cloudera Manager サーバーを node1 ノードにインストールして、その後の Web UI を介した CDH のインストールを容易にします。

yum -y install cloudera-manager-server
SCMデータベースの初期化
[root@node1 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm abcd1234
JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_181-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
Tue Aug 22 22:00:51 CST 2023 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!
 Cloudera Manager サーバーを起動する
# 启动
systemctl start cloudera-scm-server
# 开机启动
systemctl enable cloudera-scm-server
# 查看状态
systemctl status cloudera-scm-server

起動ログ /var/log/cloudera-scm-server/cloudera-scm-server.log を確認し、例外がなければ起動は成功しています。​ 

[root@node1 ~]# tail -3 /var/log/cloudera-scm-server/cloudera-scm-server.log
2023-08-22 22:11:22,656 INFO WebServerImpl:org.eclipse.jetty.server.AbstractConnector: Started ServerConnector@30096cd2{HTTP/1.1,[http/1.1]}{0.0.0.0:7180}
2023-08-22 22:11:22,656 INFO WebServerImpl:org.eclipse.jetty.server.Server: Started @39407ms
2023-08-22 22:11:22,656 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

4. CDH Cluster 6.3.2 のインストール手順

クラスターインストールウィザード

ブラウザのアドレス バーに http://192.168.5.10:7180/cmf/login と入力して、ログイン Web ページを開きます。

 デフォルトのユーザー名/パスワード = admin/admin を使用して CM にログインし、ようこそページに入り、[続行] をクリックします。

 ボックスにチェックを入れてライセンス条項に同意し、「続行」をクリックします。

 Cloudera Express無料版を選択し、「続行」をクリックします。

クラスターのインストールページに入り、「続行」をクリックします。

クラスター名を編集し、「cdh6.3.2」と入力します。インストールが成功したら、クラスターの名前を変更して、「続行」をクリックします。

このモードを使用してホスト名または IP アドレスを入力し、[検索] をクリックしてホストを見つけ、ノードを選択して、[続行] をクリックします。

Cloudera Manager エージェントのカスタム リポジトリの場合は、CM ウェアハウスのアドレス http://192.168.5.10/cdh/CM6.3.1 を入力します。

CDH およびその他のソフトウェア [Parcel を使用する (推奨)] を選択し、[その他のオプション] をクリックして Parcel リポジトリ設定ページに入ります。デフォルトのディレクトリを選択するために「パーセル ディレクトリ」と「ローカル パーセル リポジトリ パス」を編集する必要はありません。「リモート パーセル リポジトリ URL」を編集し、CDH ウェアハウス アドレスを入力します: http://192.168.5.10/cdh/CDH6.3.2 /
をクリックし、「-」をクリックして他の URL を削除し、「変更を保存」をクリックします。

 ここでの CDH バージョンは、前の手順で保存した後、自動的に更新されます。[続行] をクリックしてください。

JDKをインストールします。すでにインストールされている場合はスキップして「続行」をクリックします。

SSHログイン用のrootユーザーのパスワードを入力し、「続行」をクリックします。

クラスター内の各ノードにエージェントをインストールします。[詳細] をクリックして、インストール プロセスを表示します。

インストールが完了すると、自動的に次のステップに進み、Parcels のダウンロードとインストールが開始されます。

[ネットワーク パフォーマンスの検査] および [ホストの検査] をクリックして、ネットワークとホストのパフォーマンスを確認します。黄色のアラームが表示された場合は、「チェッカーの結果を表示」をチェックし、各項目を 1 つずつ解決し、すべてのチェックに合格するまで「再実行」をクリックしてから、「続行」をクリックします。最後の項目を直接選択してアラームをスキップし、「」をクリックすることもできます。続く" "。

クラスターのインストール設定

クラスター設定ページに入り、インストールするサービスの組み合わせを選択します。

ここではカスタム サービスを選択し、必要なコンポーネントを選択して、[続行] をクリックします。

クラスターのカスタム役割割り当てを入力し、独自の計画に従ってノードに役割を割り当てます。

設定が完了したら、「ホストごとに表示」をクリックし、「続行」をクリックします。 

データベース設定ページに入り、データベースの種類として MySQL を選択し、ホスト名、データベース、ユーザー、パスワードを入力して、[接続のテスト] をクリックします。テストが成功したら、[続行] をクリックします。

確認変更ページに入り、デフォルトのディレクトリ設定が適切かどうかを確認し、実際の状況に応じて調整できます。​ 

コマンドの実行を開始して各コンポーネントをインストールし、完了したら「続行」をクリックします。

概要ページに入り、クラスタ コンポーネントが正常にインストールされ開始されたことが示され、[完了] をクリックします。

最後に、CM 管理ホームページにアクセスすると、CDH6.3.2 が正常にインストールされます。

おすすめ

転載: blog.csdn.net/BlogPan/article/details/132396576