[HADOOP] 원인 : ERROR XSDB6 : Derby의 다른 인스턴스가 이미 데이터베이스를 부팅했을 수 있습니다.
HADOOP원인 : ERROR XSDB6 : Derby의 다른 인스턴스가 이미 데이터베이스를 부팅했을 수 있습니다.
Spark SQL을 실행하려고합니다.
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
하지만 내가 받고있는 오류는 아래와 같습니다.
... 125 more
Caused by: java.sql.SQLException: Another instance of Derby may have already booted the database /root/spark/bin/metastore_db.
at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
... 122 more
Caused by: ERROR XSDB6: Another instance of Derby may have already booted the database /root/spark/bin/metastore_db.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.privGetJBMSLockOnDB(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.getJBMSLockOnDB(Unknown Source)
at org.apache.derby.impl.store.raw.data.BaseDataFileFactory.boot(Unknown Source)
metastore_db 폴더가 있다는 것을 알았습니다 .. 내 하이브 메타 스토어에는 mysql이 metastore로 포함되어 있습니다. 그러나 왜 오류가 더비 실행으로 표시되는지 확실하지 않습니다.
해결법
-
==============================
1.Spark Shell에서 데이터 프레임을 만드는 동안 같은 오류가 발생했습니다.
Spark Shell에서 데이터 프레임을 만드는 동안 같은 오류가 발생했습니다.
원인 : ERROR XSDB6 : Derby의 다른 인스턴스가 이미 데이터베이스 / metastore_db를 부팅했을 수 있습니다.
원인:
나는 Spark-Shell이 이미 실행 중이고 더비 DB를 이미 보유하고 있으므로 다른 스파크 셸을 시작하고 RDD.toDF ()를 사용하여 데이터 프레임을 만들 때 오류가 발생 함으로 인해 이러한 일이 발생하는 것으로 나타났습니다.
해결책:
ps 명령을 실행하여 Spark-Shell의 다른 인스턴스를 찾습니다.
ps -ef | 그립 킥 - 쉘
kill 명령을 사용하여 모두 죽였습니다.
kill -9 Spark-Shell-processID (예 : kill -9 4848)
모든 SPARK-SHIFT 인스턴스가 사라진 후에, 나는 새로운 SPARK SHELL을 시작했고 데이터 프레임 함수를 재배치했다.
-
==============================
2.스파크 셸에서 실행중인 경우에는 HiveContext를 인스턴스화하면 안됩니다. 자동으로 sqlContext라는 이름이 만들어집니다 (이름이 잘못되었습니다 - Hive로 Spark를 컴파일하면 HiveContext가됩니다). 비슷한 토론을 여기서보십시오.
스파크 셸에서 실행중인 경우에는 HiveContext를 인스턴스화하면 안됩니다. 자동으로 sqlContext라는 이름이 만들어집니다 (이름이 잘못되었습니다 - Hive로 Spark를 컴파일하면 HiveContext가됩니다). 비슷한 토론을 여기서보십시오.
쉘에서 실행하지 않는 경우,이 예외는 동일한 JVM에서 둘 이상의 HiveContext를 작성했음을 의미합니다. 이는 불가능한 것으로 보이며 하나만 작성할 수 있습니다.
-
==============================
3.나는 테이블을 만들면서 같은 문제에 직면했다.
나는 테이블을 만들면서 같은 문제에 직면했다.
sqlContext.sql("CREATE TABLE....
ps -ef |에 대한 많은 항목을 볼 수있었습니다. grep spark-shell 그래서 나는 그들을 모두 죽이고 spark-shell을 재시작했다. 그것은 나를 위해 일했습니다.
-
==============================
4.동일한 오류를 볼 수있는 또 다른 경우는 동적 프레임을 데이터 프레임으로 변환하려고 할 때 AWS Glue 개발자 엔드 포인트의 Spark REPL입니다.
동일한 오류를 볼 수있는 또 다른 경우는 동적 프레임을 데이터 프레임으로 변환하려고 할 때 AWS Glue 개발자 엔드 포인트의 Spark REPL입니다.
실제로 다음과 같은 몇 가지 예외가 있습니다.
해결책은 Google로 찾아 내기가 어렵지만 궁극적으로 여기에 설명되어 있습니다.
로드 된 REPL에는 변수 spark에 인스턴스화 된 SparkSession이 포함되어 있으므로 새 SparkContext를 만들기 전에 중지해야합니다.
>>> spark.stop() >>> from pyspark.context import SparkContext >>> from awsglue.context import GlueContext >>> >>> glue_context = GlueContext(SparkContext.getOrCreate()) >>> glue_frame = glue_context.create_dynamic_frame.from_catalog(database=DB_NAME, table_name=T_NAME) >>> df = glue_frame.toDF()
-
==============================
5.Windows 컴퓨터에서 WAS 응용 프로그램을 실행하는 동안 문제가 발생하는 경우 :
Windows 컴퓨터에서 WAS 응용 프로그램을 실행하는 동안 문제가 발생하는 경우 :
-
==============================
6.이것은 내가 pyspark ml Word2Vec을 사용할 때 일어났습니다. 이전에 빌드 된 모델을로드하려고했습니다. 트릭은 sqlContext를 사용하여 pyspark 또는 scala의 빈 데이터 프레임을 만드는 것입니다. 다음은 파이썬 구문입니다.
이것은 내가 pyspark ml Word2Vec을 사용할 때 일어났습니다. 이전에 빌드 된 모델을로드하려고했습니다. 트릭은 sqlContext를 사용하여 pyspark 또는 scala의 빈 데이터 프레임을 만드는 것입니다. 다음은 파이썬 구문입니다.
from pyspark.sql.types import StructType schema = StructType([])` empty = sqlContext.createDataFrame(sc.emptyRDD(), schema)
이 해결 방법입니다. 이 블록을 사용한 후에도 문제가 해결되었습니다. 주 - SQLContext가 아닌 HiveContext에서 sqlContext를 인스턴스화하는 경우에만 발생합니다.
-
==============================
7.sqlContext._get_hive_ctx ()를 실행하여이 오류가 발생했습니다. 이것은 초기에 파이프 라인 된 RDD를 데이터 프레임에로드하려고 시도했기 때문에 발생했습니다 나는 오류가있다. 예외 : ( "하이브로 Spark를 빌드해야하며, 'SPARK_HIVE = true'를 내보내고 build / sbt 어셈블리를 실행하십시오.), Py4JJavaError (None.org.apache.spark.sql.hive.HiveContext를 호출하는 동안 오류가 발생했습니다. \ n ', JavaObject id = o29)) 그래서 당신은 그것을 재건하기 전에 이것을 실행할 수 있습니다.하지만 저는 이것을보고 한 다른 사람들이 그들을 도와주지 않았 음을 알았습니다.
sqlContext._get_hive_ctx ()를 실행하여이 오류가 발생했습니다. 이것은 초기에 파이프 라인 된 RDD를 데이터 프레임에로드하려고 시도했기 때문에 발생했습니다 나는 오류가있다. 예외 : ( "하이브로 Spark를 빌드해야하며, 'SPARK_HIVE = true'를 내보내고 build / sbt 어셈블리를 실행하십시오.), Py4JJavaError (None.org.apache.spark.sql.hive.HiveContext를 호출하는 동안 오류가 발생했습니다. \ n ', JavaObject id = o29)) 그래서 당신은 그것을 재건하기 전에 이것을 실행할 수 있습니다.하지만 저는 이것을보고 한 다른 사람들이 그들을 도와주지 않았 음을 알았습니다.
-
==============================
8.오류는 여러 개의 불꽃 껍질 때문에 당신이 동일한 노드에서 실행하려고하거나 시스템 고장으로 인해 시스템 종료로 인해 셧다운이 제대로 종료되지 않았기 때문에 발생했습니다. 어떤 이유로 든 프로세스 ID를 찾아서 죽이면됩니다. 우리
오류는 여러 개의 불꽃 껍질 때문에 당신이 동일한 노드에서 실행하려고하거나 시스템 고장으로 인해 시스템 종료로 인해 셧다운이 제대로 종료되지 않았기 때문에 발생했습니다. 어떤 이유로 든 프로세스 ID를 찾아서 죽이면됩니다. 우리
[hadoop@localhost ~]$ ps -ef | grep spark-shell hadoop 11121 9197 0 17:54 pts/0 00:00:00 grep --color=auto spark-shell [hadoop@localhost ~]$ kill 9197
-
==============================
9.당신의 Derby metastore_db가 다른 스레드에 의해 액세스되는 곳을 찾기가 매우 어렵습니다. 프로세스를 찾을 수 있다면 kill 명령을 사용하여 kill 할 수 있습니다.
당신의 Derby metastore_db가 다른 스레드에 의해 액세스되는 곳을 찾기가 매우 어렵습니다. 프로세스를 찾을 수 있다면 kill 명령을 사용하여 kill 할 수 있습니다.
시스템을 재시작하는 최상의 솔루션.
from https://stackoverflow.com/questions/34465516/caused-by-error-xsdb6-another-instance-of-derby-may-have-already-booted-the-da by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 스파크 1.6 - hadoop 바이너리 경로에서 winutils 바이너리를 찾지 못했습니다. (0) | 2019.06.02 |
---|---|
[HADOOP] Hadoop은 YARN 애플리케이션의 로그를 어디에 저장합니까? (0) | 2019.06.02 |
[HADOOP] thread "main"의 예외 java.lang.NoClassDefFoundError : org / apache / hadoop / hbase / HBaseConfiguration (0) | 2019.06.01 |
[HADOOP] HiveQL (Hadoop)을 사용하여 Hive에서 두 개의 테이블 조인 [duplicate] (0) | 2019.06.01 |
[HADOOP] 네임 노드 파일 수량 제한 (0) | 2019.06.01 |