データには3つの主要な専攻がありますが、先週、Hadoop環境を構築する方法を学びました。静的IPを構成し、hadoop分散クラスターを構築したら、Zookeeperソフトウェアの構築を開始してから、hbase環境(https://blog.csdn.net/master_hunter/article/details/108704148)を構築します。この分野について不明な点が多く、記事に誤りがある可能性があります。コメント欄で訂正していただければ幸いです。この記事の誤りは継続的に訂正され、維持されます。
プロジェクトシーン:
Hbaseをインストールした後、データウェアハウス(Hive)を構築する予定です。Hiveをインストールした後、Mysqlをインストールすると、hadoopのhdfsのすべてのサービスを開始できなかったことがわかりました。hadoopディレクトリに入り、conf.emptyのみが入力されていることに気付きました。すべての構成ファイルにサフィックスが付いています。 rpmsave。個人的には、rpm時の誤ったパス設定が原因であると考えています。
問題の説明:
Hadoopコマンドが見つからない場合、hdfsは応答せず、conf.emptyファイルのみがhadoopディレクトリに入力され、入力されたすべての構成ファイルのサフィックスは.rpmsaveになります。
原因分析:
これは、Hiveを構成するときに環境設定HADOOP_HOME = / usr / local / hadoopパスが間違っているか、rpmsqlに間違ったコマンドを入力したことが原因である可能性があります。
解決:
secondnamenodeのhadoop2を使用してサービスを開始し、修復します。最初にバックアップしたhadoop1はまだhbaseとzookeeperを構築していないため、将来的に動的にリアルタイムでhadoopを動的にバックアップすることを覚えています(涙)。
hadoop2を複製して名前をhadoop1に変更し、hadoop1に入った後にそのノードのホスト名を変更します。
/ etc / sysconfig / network
hadoop2をhadoop1に変更してから、DataNodeデータ書き込みディレクトリ情報を消去する必要があります(ディレクトリにDataNode番号情報があるため、消去しないと、1つのDataNodeしか起動できません)。
rm -rf / data / dn / *
複製されたhadoop1のMACアドレスを設定します
vi / etc / sysconfig / network-scripts / ifcfg-eth0
Macは仮想マシンのネットワーク構成で確認できます
変更後は必ずゲートウェイを変更してください
rm -rf /etc/udev/rules.d/70-persistent-net.rules
再起動後、新しく生成された/etc/udev/rules.d/70-persistent-net.rulesをNAME = "eth0"に変更します。
このとき、hadoopマッピングの原則に従って、hadoop1が識別され、namenodeサービスがオンになっている必要があります。2番目のノードのコールドバックアップ機能に従って複製されたhadoop1は、元のhadoop1状態に戻りますが、他のノードに入って、他のサービスが正常に開始できるが、DataNodeは開始できないことを確認します。
最初にすべてのノードサービスを一時停止します(他の仮想マシンに展開されているサービスに従って、対応するサービスを閉じます)
サービスhadoop-hdfs-datanode stop
サービスhadoop-yarn-resourcemanager停止
サービスhadoop-mapreduce-historyserver停止
サービスhadoop-hdfs-namenode停止
サービスhadoop-hdfs-secondarynamenode停止
次に、hadoop1、hadoop2、hadoop3の/ data / dn / currentを削除し、次のコマンドを実行します
rm -rf / data / dn / current
起動シーケンス:namenode-> secondnamenode-> all datanode-> recourcemanager-> nodemanager of all machine-> historyserver。
次に、ノードの対応するサービスを開始し、hadoop1が正常に使用できることを確認します。問題が解決しました