目次
1. 問題の背景
hbase シェル スクリプトを開始し、テーブルを表示するために list と入力すると、次のエラーが発生します。
ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
at org.apache.hadoop.hbase.master.HMaster.checkServiceStarted(HMaster.java:2731)
at org.apache.hadoop.hbase.master.MasterRpcServices.isMasterRunning(MasterRpcServices.java:1205)
at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:395)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)
2. 解決策
まず第一に、インターネットで多くの方法を読んだ後、そのほとんどは、hdfs がセーフ モードに入るとhbaseが起動できなくなり、hadoop が起動しなくなるというものでした。
セーフ モードをオフにして HBase を再起動するだけです。
1. namenode が安全な状態であるかどうかを確認します
hadoop dfsadmin -safemode get
セーフモードがOFFの場合は閉じた状態になりますセーフ モードがオンになっている場合は有効になっているため、オフにする必要があります。
2. セーフモードをオフにするhadoop dfsadmin -safemode Leave
この方法を試しましたが、もともと閉じられていたため、この方法では問題は解決できませんでした。
次に、私のhadoopは3.3.0で、hbaseは2.4.3です。インストールするときは、hbaseの公式Webサイトに従いました。公式Webサイトには、hadoop3.3.Xはhbase2.4.xと互換性があると書かれていましたが、オンラインで調べました一部の情報ではバージョンの非互換性について言及されていますが、hadoop3.3 であると言われています。
最後に、 hbase 設定ファイル hbase-site.xml にいくつかの設定を追加することで問題が解決したという質問と回答を見つけたので、それに倣って最終的に問題を解決しました。
具体的な方法は以下の通りです。
1. hbase クラスターを停止します。
2. 次の設定を設定ファイル hbase-site.xml ファイルに追加します。
<プロパティ>
<名前>hbase.wal.provider</name>
<値>ファイルシステム</値> </
プロパティ>3. hbase クラスターを開始します。
2番目の方法を使用して解決しました