オープンソースの詳細については、以下をご覧ください。 51CTO オープンソース基本ソフトウェアコミュニティ https://ost..com 1. はじめに1. 序文- インターネットの発展により、ネットワークが存在する世界中のあらゆる場所でデータが常に生成されるようになりました。蓄積されたデータは、人々が探索するのを待っている、目に見えない巨大な資源のようなものです。その結果、ビッグデータ処理の理論とその結果生じる技術はますます成熟しつつあります。開発者として、これを学習し、理解し、使用することで、身の回りの問題を解決できる可能性があります。
- この記事では、クラウドネイティブ Docker をベースにしたスタンドアロンのビッグデータ プラットフォームを構築し、ビッグデータ関連テクノロジの構築と使用について説明します。
2. 関連技術- 動物園の飼育員
分散クラスタ管理、マスター選出、メッセージの公開とサブスクリプション、データ ストレージ、分散ロックなど。クラスタ構成の一貫性、タスク送信のトランザクション性、クラスタ内のサービスのアドレス管理、クラスタ管理などを維持するために使用される分散調整サービス。 - ハードウェア
一度書き込み、複数回読み取るシナリオに適した分散ファイル システム。ファイルが作成され、書き込まれ、閉じられた後は、変更する必要はありません。 - 糸
同じクラスタ内のリソース(メモリなど)を管理するために使用される分散リソース管理システム - マップリデュース
Hadoop のプログラミング フレームワークは、Spring と同様に、map メソッドと Reduce メソッドを使用して分散プログラミングを実装します。 - ハイブ
データ ウェアハウス ツール Hive がデータのオフライン バッチ処理を実行する場合、まずクエリ言語を MR タスクに変換し、MR バッチ処理で結果を返す必要があるため、Hive はリアルタイムのデータ クエリと分析のニーズを満たすことができません。 - Hベース
NoSQL に似た、Hadoop 上の分散データベース。 - スクープ
Hadoop (Hive) と従来のデータベース (mysql、postgresql など) 間でデータを転送するために使用されます。 - ハドゥープ
Hadoop は、ビッグデータを分析および処理するためのソフトウェア プラットフォームです。これは、Java で実装された Apache オープンソース ソフトウェア フレームワークです。多数のコンピュータで構成されたクラスター内で、膨大なデータの分散コンピューティングを実現します。 Hadoop=HDFS+Yarn+MapReduce+Hbase+Hive+Zookeeper+Hbase+Hive+Sqoop (エコシステム)
3. ユーザーポートレート- ユーザープロフィール:
ユーザー情報のラベル付け。 - データは、ユーザーの社会的属性、消費習慣、嗜好特性などを収集することによって生成されます。
- データを分析することで、ユーザーまたは製品の特性が特徴付けられ、カウントされ、潜在的に価値のある情報が探索されます。
- タグ分類
- 過去 30 日間のアクティブ日数やアクティブ期間などの統計タグ。
- ルールベースのタグ。たとえば、ユーザーが 30 日以内に 15 日以上アクティブになると、アクティブ ユーザーとしてラベル付けされます。
- ユーザーの購入嗜好、ユーザーの解約意図などの機械学習マイニング クラス ラベル。
2. Dockerはビッグデータプラットフォームを構築する1. ハードウェア- ホストマシン: WIN10 ラップトップ 16G、VMWare 仮想マシン。
- 仮想マシン: CentOS8、64 ビット、ブリッジ モード、割り当てメモリ 8G メモリ、ストレージ 80G。
- この記事をビルドした後、free -h を使用して 4.6G のメモリが使用されていることを確認します。
2. 技術フレームワークのバージョンとダウンロードリンクフレームワークパッケージ | 説明する | ダウンロードパス | ハドゥープ 2.7.7 | | http://archive.apache.org/dist/hadoop/core/hadoop-2.7.7/ | hbase-2.1.1 | | http://archive.apache.org/dist/hbase/1.2.1/ | ハイブ2.3.4 | | http://archive.apache.org/dist/hive/hive-2.3.4/ | 1.8.0_144 より | | | スカラ2.11.12 | | https://www.scala-lang.org/download/2.11.12.html | spark-2.4.8-bin-hadoop2.7 | | http://archive.apache.org/dist/spark/spark-2.4.8/ | 動物園飼育係-3.4.8 | | http://archive.apache.org/dist/zookeeper/zookeeper-3.4.8/ |
3. 依存パッケージが天一クラウドディスク(速度無制限)にアップロードされましたhttps://cloud.189.cn/t/RF3YrmYb6RZv(アクセスコード:0iz2)。 4. DockerをインストールするDocker を使い始める - オンライン インストール、オフライン インストール、およびアンインストール。 5. Dockerは独立したネットワークセグメントを作成します docker ネットワーク作成--subnet = 172 .18.0.0/16 spark-net 6. コンテナ計画ドメイン名 | IP | クラウド1 | 172.18.0.2 | クラウド2 | 172.18.0.3 | クラウド3 | 172.18.0.4 |
7. 基本的なコンテナを作成し、SSHとパスワード不要の設定をインストールするパラメータ | 例示する | -名前 | コンテナ名 | -h | ドメイン名 | --ホストの追加 | /etc/hosts ファイル内のドメイン名と IP マッピング | -ネット | ネットワークセグメントを指定する |
docker プル Ubuntu docker run --name cloud1 \ --netスパークネット--ip 172 .18.0.2 \ -hクラウド1 \ --add -hostクラウド1:172.18.0.2 \ --add -hostクラウド2:172.18.0.3 \ --add -hostクラウド3:172.18.0.4 \ -それはUbuntu エコー> /etc/apt/sources.list cat >> /etc/apt/sources.list <<EOF deb http://mirrors.aliyun.com/ubuntu/ バイオニックメイン 制限付き宇宙 マルチバース deb-src http://mirrors.aliyun.com/ubuntu/ バイオニックメイン 制限付き宇宙 マルチバース deb http://mirrors.aliyun.com/ubuntu/ bionic-security メイン 制限された宇宙 マルチバース deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security メイン 制限付き宇宙 マルチバース deb http://mirrors.aliyun.com/ubuntu/ bionic-updates メイン 制限付き宇宙 マルチバース deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates メイン 制限付き宇宙 マルチバース deb http://mirrors.aliyun.com/ubuntu/ バイオニック提案メイン制限宇宙マルチバース deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main 制限付き宇宙 マルチバース deb http://mirrors.aliyun.com/ubuntu/ bionic-backports メイン 制限付き宇宙 マルチバース deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports メイン 制限付き宇宙 マルチバース 終了 #vimをインストールする apt-getアップデート apt-get install -y vim apt-get でネットツールをインストール #コンテナ cloud1 で apt ツールを使用して ssh をインストールします apt-get install -y ssh #~/.bashrc に ssh サービスの起動コマンドを追加します vim ~/.bashrc エクスポート LC_ALL="C.UTF-8" /usr/sbin/sshd #ディレクトリを作成する必要があります mkdir -p /run/sshd # 直接入力 ssh-keygen -t rsa -P "" #秘密鍵 (~/.ssh/id_rsa) はクライアントが保持します #サーバーへの公開鍵 (~/.ssh/id_rsa.pub) #承認された公開鍵 (~/.ssh/authorized_keys) はサーバーによって保持されます。認証された公開鍵を持つクライアントのみがサーバーに接続できます。 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #接続が成功したかどうかをテストする ssh ルート@cloud1 8. ビッグデータ環境のインストールソフトウェア | バージョン | ジャワ | 1.8.0_144 | スカラ | 2.11.12 | 動物園の飼育員 | 3.4.10 | ハドゥープ | 2.7.7 | スパーク | 2.4.8 | ハイブ | 2.3.4 |
mkdir -p /usr/local/spark mkdir -p /opt/spark_tar docker cp apache-hive-2.3.4-bin.tar.gz cloud1:/opt/spark_tar docker cp hadoop-2.7.7.tar.gz cloud1:/opt/spark_tar docker cp jdk-8u191-linux-x64.tar.gz cloud1:/opt/spark_tar docker cp scala-2.11.12.tgz cloud1:/opt/spark_tar Docker cp spark-2.4.8-bin-hadoop2.7.tgz cloud1:/opt/spark_tar docker cp zookeeper-3.4.10.tar.gz cloud1:/opt/spark_tar docker cp mysql-connector-java.jar cloud1:/opt/spark_tar docker cp hive-site.xml cloud1:/opt/spark_tar
tar -zxvf apache-hive-2.3.4-bin.tar.gz -C /usr/local/spark/ tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/spark/ tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/local/spark/ tar -zxvf scala-2.11.12.tgz -C /usr/local/spark/ tar -zxvf spark-2.4.8-bin-hadoop2.7.tgz -C /usr/local/spark/ tar -zxvf zookeeper-3.4.10.tar.gz -C /usr/local/spark/ Apache Hive 2.3.4 をローカルにインストールします。 cd /usr/local/spark/ drwxr-xr-x 9 1000スタッフ149 2018年7月19日hadoop-2.7.7/ drwxr-xr-x 10ルート ルート184 7月14日17:55 hive-2.3.4/ drwxr-xr-x 7 uucp 143 245 2018 年10 月6 日jdk1.8.0_191/ drwxrwxr-x 6 1001 1001 50 2017年11月10日scala-2.11.12/ drwxr-xr-x 13 501 1000 211 2021年5月8日spark-2.4.8-bin-hadoop2.7/ drwxr-xr-x 10 1001 1001 4096 2017年3月23日zookeeper-3.4.10/ vim ~ / .bashrc JAVA_HOME = /usr/local/spark/jdk1.8.0_191 をエクスポートします。 エクスポートPATH = $ PATH : $ JAVA_HOME / bin エクスポートSCALA_HOME = / usr / local / spark / scala - 2.11.12 PATH をエクスポートする= $ PATH : $ SCALA_HOME / bin ZOOKEEPER_HOME をエクスポート= / usr / local / spark / zookeeper - 3.4.10 PATH = $ PATH : $ ZOOKEEPER_HOME / bin をエクスポートします HADOOP_HOME をエクスポートします= / usr / local / spark / hadoop - 2.7.7 エクスポートPATH = $ PATH : $ HADOOP_HOME / bin : $ HADOOP_HOME / sbin エクスポートJAVA_LIBRARY_PATH = $ HADOOP_HOME / lib / native エクスポートSPARK_HOME = /usr/local/spark/spark-2.4.8-bin-hadoop2.7 エクスポートPATH = $ SPARK_HOME / bin : $ SPARK_HOME / sbin : $ PATH エクスポートHIVE_HOME = / usr / local / spark / hive - 2.3.4 エクスポートPATH = $ HIVE_HOME / bin : $ PATH ソース~ / .bashrc 9. Zookeeperのインストールと設定 cp /usr/local/spark/zookeeper-3.4.10/conf/zoo_sample.cfg /usr/local/spark/zookeeper-3.4.10/conf/zoo.cfg mkdir -p /root/zookeeper/tmp vim /usr/local/spark/zookeeper-3.4.10/conf/zoo.cfg データディレクトリ= /root/zookeeper/tmp server.1 =クラウド1:2888:3888 server.2 = cloud2:2888:3888 server.3 = cloud3:2888:3888
エコー1 > ~/zookeeper/tmp/myid 10. Hadoopのインストールと設定 vim /usr/local/spark/hadoop-2.7.7/etc/hadoop/hadoop-env.sh JAVA_HOME = /usr/local/spark/jdk1.8.0_191 をエクスポートします。 HADOOP_COMMON_LIB_NATIVE_DIR をエクスポートします= ${HADOOP_HOME} /lib/native エクスポートHADOOP_OPTS = " $HADOOP_OPTS -Djava.library.path= ${HADOOP_HOME} /lib/native" LD_LIBRARY_PATH を$JAVA_LIBRARY_PATHにエクスポートします。
パラメータ | 例示する | fs.defaultFS | デフォルトのファイルシステム | hadoop.tmp.dir | 一時ファイルディレクトリ | ha.zookeeper.クォーラム | Zkserver情報 |
vim /usr/local/spark/hadoop-2.7.7/etc/hadoop/core-site.xml <プロパティ> <name>fs.defaultFS</name> <値>hdfs://ns1</値> </プロパティ> <プロパティ> <name>hadoop.tmp.dir</name> <値>/root/hadoop/tmp</値> </プロパティ> <プロパティ> <name>ha.zookeeper.quorum</name> <値>クラウド1:2181、クラウド2:2181、クラウド3:2181</値> </プロパティ> パラメータ | 例示する | dfs.ネームサービス | ネームサービス、HAベースのHDFSでは、ネームサービスは現在アクティブなNameNodeを表すために使用されます。 | dfs.ha.namenodes.<ネームサーバー> | ネーム サービス構成で使用できる NameNode はどれですか? | dfs.namenode.rpc-address.<ネームサービス>.<ネームノード> | NameNode リモート呼び出しアドレスを構成する | dfs.namenode.http-address.<ネームサービス>.<ネームノード> | NameNode ブラウザアクセスアドレスを構成する | dfs.namenode.shared.edits.dir | 名前サービスに対応するJournalNodeを構成する | dfs.journalnode.edits.dirジャーナルノード | データを保存するパス<br /> |
vim /usr/local/spark/hadoop-2.7.7 /etc/hadoop/hdfs-site.xml < プロパティ> <名前> dfs.nameservices </名前> < 値> ns1 < / 値> < / プロパティ> < プロパティ> <名前> dfs.ha.namenodes.ns1 </名前> < 値> nn1 , nn2 < / 値> < / プロパティ> < プロパティ> < 名前> dfs 。 ネームノード。 rpc アドレス。 ns1 。 nn1 < 名前> < 値> cloud1 : 9000 < / 値> < / プロパティ> < プロパティ> <名前> dfs.namenode.http - address.ns1.nn1 </名前> < 値> cloud1 : 50070 < / 値> < / プロパティ> < プロパティ> < 名前> dfs 。 ネームノード。 rpc アドレス。 ns1 。 nn2 < 名前> < 値> cloud2 : 9000 < / 値> < / プロパティ> < プロパティ> <名前> dfs.namenode.http - address.ns1.nn2 </名前> < 値> cloud2 : 50070 < / 値> < / プロパティ> < プロパティ> < 名前> dfs 。 ネームノード。 共有しました。 編集します。 ディレクトリ< / 名前> < 値> qjournal : // cloud1 : 8485 ; クラウド2 : 8485 ; cloud3 : 8485 / ns1 < / 値> < / プロパティ> < プロパティ> <名前> dfs.journalnode.edits.dir </名前> <値> / ルート/ hadoop / ジャーナル</値> < / プロパティ> < プロパティ> < 名前> dfs 。 ハ。 自動フェイルオーバー。 有効< / 名前> < 値> 真< / 値> < / プロパティ> < プロパティ> < 名前> dfs 。 クライアント。 フェイルオーバー。 プロキシ。 プロバイダー。 ns1 < 名前> < 値> org 。 アパッチ。 ハドゥープ。 。 サーバー。 ネームノード。 ハ。 設定されたフェールオーバープロキシプロバイダー< / 値> < / プロパティ> < プロパティ> < 名前> dfs 。 ハ。 フェンシング。 メソッド< / 名前> < 値> sshフェンス シェル( / bin / true ) </値> < / プロパティ> < プロパティ> < 名前> dfs 。 ハ。 フェンシング。 ssh 。 秘密鍵ファイル< / name > < 値> /root/.ssh/id_rsa < / 値> < / プロパティ> < プロパティ> <name> dfs.ha.fencing.ssh.connect - タイムアウト</name> < 値> 30000 < / 値> < / プロパティ> パラメータ | 例示する | yarn.resourcemanager.ホスト名 | RescourceManager と NodeManager のアドレスは、スレーブ ファイルで定義されます。 |
vim /usr/local/spark/hadoop-2.7.7 /etc/hadoop/yarn-site.xml < プロパティ> < 名前> 糸。 リソースマネージャー。 ホスト名< / 名前> < 値> cloud1 < / 値> < / プロパティ> < プロパティ> < 名前> 糸。 ノードマネージャ。 補助サービス< / 名前> < 値> mapreduce_shuffle < / 値> < / プロパティ> - 指定されたDataNodeとNodeManagerの設定ファイルを変更する
vim /usr/local/spark/hadoop-2.7.7/etc/hadoop/slaves #以下の内容に変更 クラウド1 クラウド2 クラウド3 11. Sparkのインストールと設定 cp /usr/local/spark/spark-2.4.8-bin-hadoop2.7/conf/spark-env.sh.template /usr/local/spark/spark-2.4.8-bin-hadoop2.7/conf/spark-env.sh vim /usr/local/spark/spark-2.4.8-bin-hadoop2.7/conf/spark-env.sh エクスポートSPARK_MASTER_IP = cloud1 エクスポートSPARK_WORKER_MEMORY = 1024m JAVA_HOME = /usr/local/spark/jdk1.8.0_191 をエクスポートします。 SCALA_HOMEを /usr/local/spark/scala-2.11.12 にエクスポートします。 SPARK_HOME = /usr/local/spark/spark-2.4.8-bin-hadoop2.7 をエクスポートします。 HADOOP_CONF_DIR をエクスポートします= /usr/local/spark/hadoop-2.7.7/etc/hadoop エクスポートSPARK_LIBRARY_PATH = $SPARK_HOME /lib エクスポートSCALA_LIBRARY_PATH = $SPARK_LIBRARY_PATH エクスポートSPARK_WORKER_CORES = 1 SPARK_WORKER_INSTANCES = 1 をエクスポートします エクスポートSPARK_MASTER_PORT = 7077
LD_LIBRARY_PATH を$JAVA_LIBRARY_PATHにエクスポートします。 vim /usr/local/spark/spark-2.4.8-bin-hadoop2.7/conf/slaves クラウド1 クラウド2 クラウド3 root@cloud1:/ root@cloud1:/ root@cloud1:/ root@cloud1:/ root@cloud1:/ root@cloud1:/ root@cloud1:/ root@cloud1:/ 12. クラスターの展開
docker コミット cloud1 spark:v4 docker 停止クラウド1 docker rmクラウド1 docker ネットワーク作成--subnet = 172 .18.0.0/16 spark-net - 新しいイメージを使用してコンテナを作成し、3 つの ssh タブ ページを作成します。それぞれ以下のコマンドを実行します。
docker run --name cloud1 \ -p 50070 :50070 \ -p 8088 :8088 \ -p 8080 :8080 \ -p 7077 :7077 \ -p 9000 :9000 \ -p 16010 :16010 \ -p 2181 :2181 \ -p 10000 :10000 \ --netスパークネット--ip 172 .18.0.2 \ -hクラウド1 \ --add -hostクラウド1:172.18.0.2 \ --add -hostクラウド2:172.18.0.3 \ --add -hostクラウド3:172.18.0.4 \ -itスパーク:v4 docker run --name cloud2 \ --netスパークネット--ip 172 .18.0.3 \ -hクラウド2 \ --add -hostクラウド1:172.18.0.2 \ --add -hostクラウド2:172.18.0.3 \ --add -hostクラウド3:172.18.0.4 \ -itスパーク:v4 docker run --name cloud3 \ --netスパークネット--ip 172 .18.0.4 \ -hクラウド3 \ --add -hostクラウド1:172.18.0.2 \ --add -hostクラウド2:172.18.0.3 \ --add -hostクラウド3:172.18.0.4 \ -itスパーク:v4 - cloud2 コンテナと cloud3 コンテナの Zookeeper 構成をそれぞれ変更します。
エコー2 > ~/zookeeper/tmp/myid エコー3 > ~/zookeeper/tmp/myid zkServer.sh ステータス
zkServer.sh 開始 - HDFs NameNode の HA モードの同期
HDFS の最初のフォーマット中に、HA はジャーナルノードと通信するため、最初に 3 つのノードのジャーナルノードを起動する必要があります。 hadoop-daemons.sh ジャーナルノードを起動する
hadoop-daemon.sh ジャーナルノードを起動します ネームノードの 1 つをフォーマットします (いずれか 1 つを選択)。たとえば、cloud1 ノードで namenode をフォーマットすることを選択します。 hdfs ネームノード-フォーマット
hadoop-daemon.sh ネームノードを起動します もう一方のネームノードは cloud2 に配置されているため、ネームノードの同期操作は cloud2 ノードで実行する必要があります。 hdfs ネームノード-bootstrapStandby hadoop-daemon.sh ネームノードを起動します ネームノードの 1 つで zkfc を初期化します。 hdfs zkfc -formatZK 停止-dfs.sh
dfs.shを起動します - cloud1 で HDFS、Yarn、Spark を起動します。
NameNode、DataNode、zkfc、JournalNode を起動します。 dfs.shを起動します - ResourceManagerとNodeManagerを起動する
スタートヤーン すべて開始.sh ルート@cloud1:/ 2080ノードマネージャー 305ネームノード 18クォーラムピアメイン 2295労働者 1816リソースマネージャー 971データノード 2365日本 1167ジャーナルノード 2207マスター 13. 外部ウェブアクセスアドレス仕える | 住所 | ハードウェア | クラウド1:50070 | 糸 | クラウド1:8088 | スパーク | クラウド1:8080 |
ファイアウォール-cmd --zone = public --list -ports ファイアウォールコマンド--zone = public --add -port = 50070 /tcp --permanent ファイアウォール-cmd --reload systemctlデーモンリロード systemctl docker を再起動します
systemctl 停止ファイアウォールd.service systemctl は、firewalld.service を無効にします。 14. スクリーンショットにアクセスする http://192.168.0.135:50070/dfshealth.html#tab-datanode http://192.168.0.135:8088/クラスター。 http://192.168.0.135:8080/ です。 15. Spark統計タスクのテスト送信カウントするテキストを準備します。 vim /opt/put.txt シャオ・ナイ・イー ナイナイイイ シャオナイナイ テキストをhdfsにアップロードします。 hdfs dfs -mkdir /opt hdfs dfs -put /opt/put.txt /opt hadoop fs -cat /opt/put.txt Spark 統計タスクを実行します。 スパーク送信\ --master spark://cloud1:7077 \ --class com.gtstar.WordCountLocal \ /opt/my_scala-1.0-SNAPSHOT.jar \ hdfs://cloud1:9000/opt/put.txt \ hdfs://クラウド1:9000/wc #コアクラスcom.gtstar.WordCountLocal org をインポートします。 アパッチ。 スパーク.{ SparkConf 、 SparkContext } オブジェクトWordCountLocal { def main ( args : 配列[ 文字列] ): 単位= { var conf = 新しいSparkConf () conf 。 setAppName ( "WordCountLocal" ) val スパークコンテキスト= 新しいSparkContext ( conf ) val textFileRDD = スパークコンテキスト。 テキストファイル( 引数( 0 )) val wordRDD = textFileRDD 。 flatMap ( 行=> 行.split ( " " )) val pairWordRDD = wordRDD 。 マップ( 単語=> ( 単語、 1 )) val wordCountRDD = pairWordRDD 。 キーによる値の削減(( a , b ) => a + b ) wordCountRDD.saveAsTextFile (引数( 1 )) } } # ソースコードはにありますhttps://gitee.com/hxmeng/my_scalam.git 統計結果を表示します: hadoop fs -cat /wc/* root@cloud1:/opt (ナイ、5) (イ、3) (シャオ、2) 16. ハイブのインストールmysql に接続します (mysql データベースを準備します)。 mysqlで実行
hive_metadata が存在しない場合はデータベースを作成します。 hive_metadata.* のすべての権限を'hive' @ '%' ( 'hive'で識別) に付与します。 hive_metadata.* のすべての権限を'hive' @ 'localhost' ( 'hive'で識別) に付与します。 hive_metadata.* のすべての権限を'hive' @ 'master' ( 'hive'で識別) に付与します。 権限をフラッシュします。 環境設定を確認してください。 vim ~/.bashrc HIVE_HOME = /usr/local/spark/hive-2.3.4 をエクスポートします。 エクスポートPATH = $HIVE_HOME /bin: $PATH ソース~/.bashrc hive-site.xml を構成します。 cp /usr/local/spark/hive-2.3.4/conf/hive-default.xml.template /usr/local/spark/hive-2.3.4/conf/hive-site.xml vim /usr/local/spark/hive-2.3.4/conf/hive-site.xml
/opt/hive-site.xml を /usr/local/spark/hive-2.3.4/conf にコピーします。 <name>javax.jdo.option.ConnectionURL</name> <値>jdbc:mysql://cloud1:3306/hive_metadata ?createDatabaseIfNotExist = true </値> hive-env.sh を設定します。 cp /usr/local/spark/hive-2.3.4/conf/hive-env.sh.template /usr/local/spark/hive-2.3.4/conf/hive-env.sh vim /usr/local/spark/hive-2.3.4/conf/hive-env.sh HADOOP_HOME = /usr/local/spark/hadoop-2.7.7 をエクスポートします。 HIVE_CONF_DIR をエクスポートします= /usr/local/spark/hive-2.3.4/conf JAVA_HOME = /usr/local/spark/jdk1.8.0_144 をエクスポートします。 HIVE_HOME = /usr/local/spark/hive-2.3.4 をエクスポートします。 Hvie メタデータを mysql データベースに初期化します。 schematool - dbType mysql - initSchema インポートデータをテストする準備をします。 vim /opt/users.txt 1 、 浙江工商大学 2. 杭州 3 、 大好き 4 、 ZJGSU 5. さあ! インポートを実行します。 実行し続ける ハイブ コマンドラインモードに入る ユーザーを保存するためのHvieテーブルを作成する hive > create table users ( id int 、 name string ) 行形式は',' で区切られたフィールドです。 データのインポート hive > ローカルインパス'/opt/users.txt'のデータをテーブルusers にロードします。 インポートしたデータの検証 hive > ユーザーから* を選択します。 hive の実行時にエラーが発生した場合:
hdfs haadmin - getServiceState nn1 hdfs haadmin - getServiceState nn2 hdfs haadmin - transitionToActive - - forcemanual nn1
rm - rf / ルート/ hadoop / tmp / dfs / データ/ 現在
hdfs ネームノード- フォーマット 3. Dockerイメージをベースにした素早い作成3 つのノード cloud1、cloud2、cloud3 のイメージはすべて Tianyi クラウド ディスクに配置されます。環境情報は設定されているので、1 つずつ起動するだけです。 cloud1: https://cloud.189.cn/t/Qj6ZBvvANFj2 (アクセスコード: hhl5)。 cloud2: https://cloud.189.cn/t/2q6fMnAjUjIj(アクセスコード:5km2)。 cloud3: https://cloud.189.cn/t/Afa6bme6NFza (アクセスコード: j6ik)。 #3つのノードそれぞれでZkserverを起動します zkServer.sh 開始 ##cloud1 は HDFS を完全に起動します dfs.shを起動します #cloud1 ResourceManager、NodeManagerを起動する スタートヤーン #cloud1 マスターとワーカーを起動する すべて開始.sh 4. よくある質問1. Zookeeper クラスタの起動に失敗しました rm -rf /root/zookeeper/tmp/version-2/ /root/zookeeper/tmp/zookeeper_server.pid zkServer.sh 開始 docker がクラスター コンテナをシャットダウンして再起動すると、各コンテナで zk を起動するときに接続拒否が報告され続けます。原因分析: コンテナの IP が固定されておらず、ランダムに変更されます。解決策: Dockerネットワークをカスタマイズする docker ネットワーク作成 --subnet=172.18.0.0/16 spark-net コンテナ起動時の固定IP --net スパークネット --ip 172.18.0.2 --net スパークネット --ip 172.18.0.3 --net スパークネット --ip 172.18.0.4 2. HDFS HAの起動に失敗しました原因分析: 操作手順が間違っているため、ノードを正常にフォーマットできません。解決策: 操作手順 - HA は HDFS の最初のフォーマット中にジャーナルノードと通信するため、cloud1 ノードは 3 つのノードのジャーナルノードを起動します。
- cloud1 ノード namenode をフォーマットします。
- NameNode の同期。
- NameNode ZKFC をフォーマットします。
3. HDFS HAは常にスタンバイ hdfs haadmin -getServiceState nn1 hdfs haadmin -getServiceState nn2 hdfs haadmin -transitionToActive --forcemanual nn1 rm -rf /root/hadoop/tmp/dfs/data/current hdfs ネームノード-フォーマット 4. Hiveの起動に失敗しました 1. ログ情報を表示するには、tail -f /tmp/root/hive.log を実行します。 2. MySQL ドライバ jar はありますか? cp /opt/my_tar/mysql-connector-java.jar /usr/local/hive-2.3.4/lib/ 3. HDFSのステータスを確認する hdfs haadmin -getServiceState nn1 4. /usr/local/hive-2.3.4/conf/hive-site.xml 内のパスと msyql アドレスが正しいかどうかを確認します。 5. hadoop エラー: 操作カテゴリ READ はスタンバイ状態ではサポートされていません解決策3と同じ オープンソースの詳細については、以下をご覧ください。 51CTO オープンソース基本ソフトウェアコミュニティ https://ost..com. |