강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của chkim1006173611
chkim1006173611

câu hỏi đã được viết

Dự án thí điểm dữ liệu lớn trong 15 ngày

6. Vận hành thí điểm khám phá GĐ4 - 05. Chủ đề 3 - Thông tin mẫu lái bất thường xe thông minh

예약 및 workflow 실행 불가 관련

Viết

·

448

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".
bigdataHadoopImpalaZooKeeperredisKafkaFlume데이터 엔지니어링

Câu trả lời 5

0

chul kim님의 프로필 이미지
chul kim
Người đặt câu hỏi

안녕하세요 선생님!

어찌저찌 해서 문제는 해결 되었습니다

보내주신 workflow 로 교체를 해도 이전 내용으로 원복되는 현상이 있었어요

그래서 생성했던 workflow 와 예약을 제거하고 재생성해서 해결을 했습니다....

어리둥절 하네요

문제 해결에 고민 같이 해주셔서 감사드립니다

남은 주말 즐겁게 보내세요!!

빅디님의 프로필 이미지
빅디
Người chia sẻ kiến thức

네~ 다행 입니다! ^^

파일럿 플젝 끝까지 화이팅 입니다.

-김강원 드림

0

chul kim님의 프로필 이미지
chul kim
Người đặt câu hỏi

선생님 안녕하세요!

workflow-app 태그에 name 속성에 특수문자가 있는 것은

요 에디터로 붙여넣기 하면서 생긴 것 같습니다

실제 파일에는 특수문자가 없습니다..ㅠㅠ

그래도 혹시나 싶어서 xml 파일의 name 속성의 값을 완전히 지우고 다시 입력한 뒤에

실행읋 해보았지만 동일한 에러가 나타나네요...ㅠㅠ

다른 방법이 있을까요...??

좋은하루 보내세요~!

감사합니다.

빅디님의 프로필 이미지
빅디
Người chia sẻ kiến thức

넵! "chul kim"님 혹시 메일주소좀 남겨 주세요~

정상 작동하는 workflow.xml 과, hive-xxx.sql 파일을 보내 드리겠습니다.

해당 워크플로우의 작업영역에서 기존 workflow.xml 과, hive-xxx.sql 파일을 삭제 하시고요..

메일로 드립 파일로 교체후 테스트해 봐 주세요~ - 빅디 드림

chul kim님의 프로필 이미지
chul kim
Người đặt câu hỏi

ㅠㅠ...

메일주소는 chkim100617@gmail.com 입니다!

감사합니다

0

chul kim님의 프로필 이미지
chul kim
Người đặt câu hỏi

안녕하세요 선생님!

말씀해주신 내용들 보내드립니다

다만 .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;


빅디님의 프로필 이미지
빅디
Người chia sẻ kiến thức

넵! 확인 했습니다.

hive-xxx.sql 파일은 2개만 있어야 정상이고요..

hive-207f.sql 파일은 삭제 하셔도 될 것 같습니다.

workflow.xml에서 보시면..Subject3 앞에 들어간 특수문자가 문제로 보입니다.

요걸 제거해 보시고 실행해봐 주세요~ -빅디 드림

<workflow-app name="Subject3 - Workflow" xmlns="uri:oozie:workflow:0.5">

0

chul kim님의 프로필 이미지
chul kim
Người đặt câu hỏi

안녕하세요 선생님!

요청해주신 워크플로우 스샷을 캡쳐해서 보내드립니다!

좋은 하루 보내세요!

감사합니다

빅디님의 프로필 이미지
빅디
Người chia sẻ kiến thức

네~ 보내주신 워크플로 이미지상에서는 잘만들어 진것으로 보입니다. ^^*

워크플로우의 상세 정보를 확인해 봐야할 것 같은데요..

Subject 3 - Workflow에서 > 우측 상단의 "..." 버튼을 누르시면 "작업영역" 메뉴가 보입니다.

작업영역에서 > 3개의 파일(hive-xxxx.sql, hive-xxx.sql, workflow.xml)의 내용좀 부탁드립니다.

ps. 의심스러운건 주제영역3에 2개의 hive쿼리를 에디터에서 열고, 복붙하면서 인코딩 문제가 발생한 것 같습니다.

-빅디 드림

chul kim님의 프로필 이미지
chul kim
Người đặt câu hỏi

저는 복붙을 하지 않고 수업자료에 있는 쿼리를 직접 타이핑했습니다

혹시 workflow-app name 에 이상한 특수 문자가 있어서 그런걸까요...??

hue 상에서는 보이지 않아요..

빅디님의 프로필 이미지
빅디
Người chia sẻ kiến thức

"chul kim"님!!

직접 Hive SQL을 모두 작성해 보시다니...파일럿 프로젝트를 찐으로 진행하고 계시네요!! ^^

아래 답글을 달았는데요!!! 저도 name에 붙은 특수문자가 문제인것 같습니다.

-빅디 드림

0

빅디님의 프로필 이미지
빅디
Người chia sẻ kiến thức

안녕하세요! "chul kim"님!

올려주신 내용만으로 문제의 원인 파악이 어려워 보입니다. ^^;;;

혹시 작성하신 주제영역3의 워크플로우를 캡쳐해서 올려 주실 수 있는지요?! - 빅디 드림

Hình ảnh hồ sơ của chkim1006173611
chkim1006173611

câu hỏi đã được viết

Đặt câu hỏi