작성
·
313
0
안녕하세요 선생님!
오랜만에 질문글 드립니다
Subject3 의 hive-script 작성 + 워크 플로우 생성 후
예약 실행 시 오류가 납니다
워크플로우만 따로 실행하려고 해도 동일한 에러가 납니다
xml 을 파싱하면서 나는 에러인 거 같은데요...
(앞의 강의와 과제는 잘 실행이 됐었습니다!)
확인해주시면 감사드리겠습니다ㅠㅠ
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 21; An invalid XML character (Unicode: 0x8) was found in the value of attribute "name" and element is "workflow-app".
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.jaxp.validation.StreamValidatorHelper.validate(Unknown Source)
at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown Source)
at javax.xml.validation.Validator.validate(Validator.java:124)
at org.apache.oozie.workflow.lite.LiteWorkflowAppParser.validateAndParse(LiteWorkflowAppParser.java:176)
... 24 more
2022-08-28 19:24:49,493 ERROR org.apache.oozie.command.coord.CoordActionStartXCommand: SERVER[server02.hadoop.com] USER[admin] GROUP[-] TOKEN[] APP[Subject3 - 예약] JOB[0000003-220828190147543-oozie-oozi-C] ACTION[0000003-220828190147543-oozie-oozi-C@8] Failing the action 0000003-220828190147543-oozie-oozi-C@8. Because E0701 : E0701: XML schema error, An invalid XML character (Unicode: 0x8) was found in the value of attribute "name" and element is "workflow-app".
답변 5
0
안녕하세요 선생님!
어찌저찌 해서 문제는 해결 되었습니다
보내주신 workflow 로 교체를 해도 이전 내용으로 원복되는 현상이 있었어요
그래서 생성했던 workflow 와 예약을 제거하고 재생성해서 해결을 했습니다....
어리둥절 하네요
문제 해결에 고민 같이 해주셔서 감사드립니다
남은 주말 즐겁게 보내세요!!
0
선생님 안녕하세요!
workflow-app 태그에 name 속성에 특수문자가 있는 것은
요 에디터로 붙여넣기 하면서 생긴 것 같습니다
실제 파일에는 특수문자가 없습니다..ㅠㅠ
그래도 혹시나 싶어서 xml 파일의 name 속성의 값을 완전히 지우고 다시 입력한 뒤에
실행읋 해보았지만 동일한 에러가 나타나네요...ㅠㅠ
다른 방법이 있을까요...??
좋은하루 보내세요~!
감사합니다.
넵! "chul kim"님 혹시 메일주소좀 남겨 주세요~
정상 작동하는 workflow.xml 과, hive-xxx.sql 파일을 보내 드리겠습니다.
해당 워크플로우의 작업영역에서 기존 workflow.xml 과, hive-xxx.sql 파일을 삭제 하시고요..
메일로 드립 파일로 교체후 테스트해 봐 주세요~ - 빅디 드림
0
안녕하세요 선생님!
말씀해주신 내용들 보내드립니다
다만 .sql 파일이 2개가 아닌 3개가 생성되어 있어서.. 일단은 다 보내드립니다!
(workflow.xml 을 보면 2개만 사용하는 거 같긴 하지만 혹시 몰라서요ㅎㅎ)
좋은 밤 되세요!
workflow.xml
<workflow-app name="Subject3 - Workflow" xmlns="uri:oozie:workflow:0.5">
<start to="hive-a283"/>
<kill name="Kill">
<message>작업 실패, 오류 메시지[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<action name="hive-a283" cred="hive2">
<hive2 xmlns="uri:oozie:hive2-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<jdbc-url>jdbc:hive2://server02.hadoop.com:10000/default</jdbc-url>
<script>${wf:appPath()}/hive-a283.sql</script>
</hive2>
<ok to="hive-340f"/>
<error to="Kill"/>
</action>
<action name="hive-340f" cred="hive2">
<hive2 xmlns="uri:oozie:hive2-action:0.1">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<jdbc-url>jdbc:hive2://server02.hadoop.com:10000/default</jdbc-url>
<script>${wf:appPath()}/hive-340f.sql</script>
<param>working_day=20200322</param>
</hive2>
<ok to="End"/>
<error to="Kill"/>
</action>
<end name="End"/>
</workflow-app>
hive-207f.sql
USE default;
insert into table Managed_SmartCar_Symptom_Info
select
t1.car_number,
t1.speed_p_avg_by_carnum,
case
when (abs((t1.speed_p_avg_by_carnum - t3.speed_p_avg) / t4.speed_p_std)) > 2
then 'abnormal'
else 'normal'
end
as speed_p_symptom_score,
t1.break_p_avg_by_carnum,
case
when (abs((t1.break_p_avg_by_carnum - t3.break_p_avg) / t4.break_p_std)) > 2
then 'abnormal'
else 'normal'
end
as break_p_symptom_score,
t2.steer_a_count,
case
when (t2.steer_a_count) > 2000
then 'abnormal'
else 'normal'
end
as steer_p_symptom_score,
t1.biz_date
from
(select car_number,
biz_date,
avg(speed_pedal) as speed_p_avg_by_carnum,
avg(break_pedal) as break_p_avg_by_carnum
from managed_smartcar_drive_info
where biz_date = '${working_day}'
group by car_number, biz_date) t1
join
(select car_number,
count(*) as steer_a_count
from managed_smartcar_drive_info
where steer_angle in ('L2', 'L3', 'R2', 'R3') and
biz_date = '${working_day}'
group by car_number) t2
on
t1.car_number = t2.car_number,
(select avg(speed_pedal) as speed_p_avg,
avg(break_pedal) as break_p_avg
from managed_smartcar_drive_info) t3,
(select stddev_pop(s.speed_p_avg_by_carnum) as speed_p_std,
stddev_pop(s.break_p_avg_by_carnum) as break_p_std
from (select car_number,
avg(speed_pedal) as speed_p_avg_by_carnum,
avg(break_pedal) as break_p_avg_by_carnum
from managed_smartcar_drive_info
group by car_number) s) t4
hive-340f.sql
USE default;
insert into table Managed_SmartCar_Symptom_Info
select
t1.car_number,
t1.speed_p_avg_by_carnum,
case
when (abs((t1.speed_p_avg_by_carnum - t3.speed_p_avg) / t4.speed_p_std)) > 2
then 'abnormal'
else 'normal'
end
as speed_p_symptom_score,
t1.break_p_avg_by_carnum,
case
when (abs((t1.break_p_avg_by_carnum - t3.break_p_avg) / t4.break_p_std)) > 2
then 'abnormal'
else 'normal'
end
as break_p_symptom_score,
t2.steer_a_count,
case
when (t2.steer_a_count) > 2000
then 'abnormal'
else 'normal'
end
as steer_p_symptom_score,
t1.biz_date
from
(select car_number,
biz_date,
avg(speed_pedal) as speed_p_avg_by_carnum,
avg(break_pedal) as break_p_avg_by_carnum
from managed_smartcar_drive_info
where biz_date = '${working_day}'
group by car_number, biz_date) t1
join
(select car_number,
count(*) as steer_a_count
from managed_smartcar_drive_info
where steer_angle in ('L2', 'L3', 'R2', 'R3') and
biz_date = '${working_day}'
group by car_number) t2
on
t1.car_number = t2.car_number,
(select avg(speed_pedal) as speed_p_avg,
avg(break_pedal) as break_p_avg
from managed_smartcar_drive_info) t3,
(select stddev_pop(s.speed_p_avg_by_carnum) as speed_p_std,
stddev_pop(s.break_p_avg_by_carnum) as break_p_std
from (select car_number,
avg(speed_pedal) as speed_p_avg_by_carnum,
avg(break_pedal) as break_p_avg_by_carnum
from managed_smartcar_drive_info
group by car_number) s) t4;
hive-a283.sql
USE default;
create table if not exists Managed_SmartCar_Symptom_Info (
car_number string,
speed_p_avg string,
speed_p_symptom string,
break_p_avg string,
break_p_symptom string,
steer_a_cnt string,
steer_p_symptom string,
biz_date string
)
row format delimited
fields terminated by ','
stored as textfile;
넵! 확인 했습니다.
hive-xxx.sql 파일은 2개만 있어야 정상이고요..
hive-207f.sql 파일은 삭제 하셔도 될 것 같습니다.
workflow.xml에서 보시면..Subject3 앞에 들어간 특수문자가 문제로 보입니다.
요걸 제거해 보시고 실행해봐 주세요~ -빅디 드림
<workflow-app name="Subject3 - Workflow" xmlns="uri:oozie:workflow:0.5">
0
네~ 보내주신 워크플로 이미지상에서는 잘만들어 진것으로 보입니다. ^^*
워크플로우의 상세 정보를 확인해 봐야할 것 같은데요..
Subject 3 - Workflow에서 > 우측 상단의 "..." 버튼을 누르시면 "작업영역" 메뉴가 보입니다.
작업영역에서 > 3개의 파일(hive-xxxx.sql, hive-xxx.sql, workflow.xml)의 내용좀 부탁드립니다.
ps. 의심스러운건 주제영역3에 2개의 hive쿼리를 에디터에서 열고, 복붙하면서 인코딩 문제가 발생한 것 같습니다.
-빅디 드림
저는 복붙을 하지 않고 수업자료에 있는 쿼리를 직접 타이핑했습니다
혹시 workflow-app name 에 이상한 특수 문자가 있어서 그런걸까요...??
hue 상에서는 보이지 않아요..
"chul kim"님!!
직접 Hive SQL을 모두 작성해 보시다니...파일럿 프로젝트를 찐으로 진행하고 계시네요!! ^^
아래 답글을 달았는데요!!! 저도 name에 붙은 특수문자가 문제인것 같습니다.
-빅디 드림
0
안녕하세요! "chul kim"님!
올려주신 내용만으로 문제의 원인 파악이 어려워 보입니다. ^^;;;
혹시 작성하신 주제영역3의 워크플로우를 캡쳐해서 올려 주실 수 있는지요?! - 빅디 드림
네~ 다행 입니다! ^^
파일럿 플젝 끝까지 화이팅 입니다.
-김강원 드림