반응형

에러

trino를 통해 타 DB간 조인시 타입이 안맞는 경우가 있었습니다. 그래서 다른 DB의 카테고리 넘버를 char -> int로 변경하려고 했을 때 위와 같은 에러가 나타났습니다.

해결

해결 방법은 간단하며, CHAR을 VARCHAR로 변경한 후 INT로 변경해주면 됩니다.

## 에러 발생 SQL
cast(broad_cate_no a as int)


## 에러 해결 SQL
cast(cast(broad_cate_no as varchar) as int)
반응형
반응형
import pymysql
conn = pymysql.connect(
    user='id',
    passwd='password',
    host='111.10.1.1',
    db='test_db',
    charset='utf8'
)



#df는 컬럼이 8개인 데이터프레임

cursor = conn.cursor()
sql = 'insert into test_tbl (col1, col2, col3, col4, col5, col6, col7,col8) values '
data = []
for idx, i in tqdm(enumerate(df.values)):
    sql += '(%s, %s, %s, %s, %s, %s, %s, %s),'
    for j in i:
        data.append(j)
    if idx % 30 == 0:
        sql = sql.rstrip(',')
        cursor.execute(sql, tuple(data))
        sql = 'insert into test_tbl (col1, col2, col3, col4, col5, col6, col7,col8) values '
        data = []
sql = sql.rstrip(',')
try:
    cursor.execute(sql, tuple(data))
except:
    pass
conn.commit()
conn.close()
반응형
반응형

주연테크 모니터를 구매하며, 사용 중 모니터가 꺼지는 현상이 빈번히 일어났습니다. 특히 모니터가 꺼지는 주요 행동으로는, 방 전등 점등시, 아이폰 전원버튼 클릭 시, 그 외 이유없이... 주연테크 고객센터는  연락조차 되지 않고, 대리점 또한 모니터는 수리하지 않는다는 답변만 받았네요..

 

그러다 해결책을 발견했습니다. 그건 바로 C타입 연결.. 유튜브에서 주연테크의 장점을 C타입을 통한 모니터 연결 및 충전이라고 소개하며, 저 또한 이런 부분이 메리트가 있어 사용하였는데, 문제는 바로 이 C타입에 있었습니다.

 

C타입 연결을 제외하고 같이 동봉된 HDMI를 연결하니 그전에 있었던 끊김 현상이 교체 후 최근 3일 동안 나타나지 않았습니다.

 

저는 아래 저연테크 V28UE 제품을 구매하였고, 끊김 현상이 없어진 지금은 만족하며 사용하고 있습니다.

다만, 사운드는 전혀 고려하지 않고? 생산된 제품일 정도로 소리는 기대하지 않는게 좋습니다. 현재 맥북 스피커 사용중

 

이만 마치며, 제 포스팅이 도움이 되었으면, 좋겠습니다.

반응형

'Etc' 카테고리의 다른 글

주식 매매 실수 기록  (0) 2023.07.30
내 카카오톡 프로필 클릭 수 확인하기  (0) 2023.07.08
반응형

원인

하둡 서버 자체가 다운되었습니다. nn02에는 모든 데몬이 내려가 있었고 (주키퍼, 저널노드 포함), nn01에 hbase와 namenode가 내려갔습니다. 네임노드 재시작 시 아래와 같은 에러가 발생하며, 네임노드 데몬이 올라오지 못했습니다. 에러내용으로는 네임노드가 내려가면서, edit로그의 정합성이 깨진 것 같습니다.

 

 

해결1- (nn01,nn02 둘다 데몬 내려가서 안 올라올 때)

# edit_log 및 fsimage 백업 (nn01)
cd /data/dfs/nn/current/
cd -r current current_backup

# hadoop bin 폴더 이동 (nn01)
cd /hadoop/bin

# 네임노드 복구(nn01) Continue or Always 옵션 선택(nn01)
./hadoop namenode -recover

# 네임노드 시작(nn01)
/rnd/hadoop/default/bin/./hdfs --daemon start namenode

# 세이프 모드 진입 및 설정(nn01)
cd /hadoop/bin/
./hdfs dfsadmin -safemode enter
./hdfs dfsadmin -saveNamespace
./hdfs dfsadmin -safemode leave

# fsimage 파일 복사(nn02)
cd /hadoop/bin/
./hdfs namenode -bootstrapStandby -force

# 네임노드 재시작 (nn02)
/rnd/hadoop/default/bin/./hdfs --daemon start namenode

# 네임노드 상태 확인
/hadoop/bin/./hdfs haadmin -getServiceState nn01
/hadoop/bin/./hdfs haadmin -getServiceState nn02

 

 

해결2 - (nn02 데몬 내려가서 안 올라올 때)

# 세이프 모드 진입 및 설정(nn01)
cd /hadoop/bin/
./hdfs dfsadmin -safemode enter
./hdfs dfsadmin -saveNamespace
./hdfs dfsadmin -safemode leave

# fsimage 파일 복사(nn02)
cd /hadoop/bin/
./hdfs namenode -bootstrapStandby -force

# 네임노드 재시작 (nn02)
/hadoop/bin/./hdfs --daemon start namenode

# 네임노드 상태 확인
/hadoop/bin/./hdfs haadmin -getServiceState nn01
/hadoop/bin/./hdfs haadmin -getServiceState nn02

 

반응형
반응형

최근에 airflow 웹상에 dag들이 올라오지 않아 고생한 부분을 정리하고자 합니다. 결론적으로 아래 발생한 현상은 모두 인코딩 문제로 간단하게? 해결할 수 있었습니다.

 

 

dag가 웹에 안보이는 케이스

1. 한글주석

아래와 같이 dag 파일 내에 한글 주석을 넣으면 dag가 웹상에 올라오지 않았습니다.

 

2. 스케쥴링

분과 시를 설정할 경우에는 dag들이 웹상에 잘 나왔지만 년월일 스케쥴링시 dag가 웹상에 올라오지 않았습니다.

특히 @daily는 가능하나 @monthly 및 @hourly등은 dag가 올라오지 않았습니다.

 

스케쥴링 에러를 확인하니 아래와 같은 에러가 계속해서 발생했습니다.

airflow unicodeencodeerror: 'charmap' codec can't encode characters in position 7-8: character maps to <undefined>

 

 

해결방법

아마 위의 에러는 mysql등 다른 디비와 연결하며 발생했을거라고 생각됩니다.

airflow.cfg 파일 sql_alchemy_conn에서 airflow뒤에 ?charset=utf8 추가 후 airflow 재시작하게 되면 위에 두가지 케이스일 때 dag가 정상적으로 올라오는 것을 볼 수 있습니다.

 

sql_alchemy_conn = mysql://root:password@127.0.0.1:3306/airflow?charset=utf8

 

 

반응형
반응형

hdfs 및 hbase 는 기본적으로 데이터노드 및 리전서버와 22번 포트를 통해 ssh통신을 사용합니다. 만약 서버 셋팅이 22번 포트가 아니라면 아래와 같이 설정이 필요합니다.

 

 

1.hadoop-env.sh(hdfs)

### 2023 port를 이용하여 ssh통신을 원할경우
export HADOOP_SSH_OPTS="-p 2023"

 

2. 1.hbase-env.sh(hbase)

### 2023 port를 이용하여 ssh통신을 원할경우
export HBASE_SSH_OPTS="-p 2022"

 

반응형
반응형

nn01이 네트워크 이슈로 다운되면서, nn02가 active로 변경되었습니다. 

 

특이점으로는 nn02 네임노드는 정상이었지만 DFSZKFailoverController가 꺼진 상태였습니다.

 

이러한 상태에서 nn01 네임노드를 활성화 하니 자동으로 nn01이 active nn02가 standby로 변경되네요. 관련하여 네임노드를 재실행시 자동으로 변경되는 것을 원하지 않을 경우 nn02에 DFSZKFailoverController가 실행되어 있는지 확인이 필요해 보입니다.

 

반응형
반응형

[hdfs] ha 중 org.apache.hadoop.ha.SshFenceByTcpPort: Unable 에러

 

[hdfs] ha 중 org.apache.hadoop.ha.SshFenceByTcpPort: Unable 에러

에러 ha테스트 중 active namenode를 kill하고 standby 네임노드가 active가 되기를 기다렸지만 여전히 standby 상태였습니다. tail -f zkfc.log를 확인하니 아래와 같은 에러메세지가 발생했습니다. WARN org.apache.

taeguu.tistory.com

에러

위의 에러를 해결 후에도 ha가 제대로 동작을 안합니다. 에러 내용확인 하니 아래와 같은 경고를 발생합니다.

 WARN org.apache.hadoop.ha.SshFenceByTcpPort: PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 8020 via ssh: bash: fuser: command not found

원인

fuser 는 파일이나 소켓을 어떤 프로세스가 사용하는 지 알려주는 명령어인데, 그렇다면 이 부분 때문에 ha가 진행되지 않을 수 있다 생각하였습니다.

 

 

해결방법

yum install psmisc설치 후 ha가 제대로 동작하는 것을 확인하였습니다.

반응형

+ Recent posts