그래서 hdfs의/var/log/...에있는 로그 파일은 압축되지 않았거나 압축되어있을 수 있습니다.Hadoop HDFS compress place in
만약 그들이 .snappy
으로 끝나지 않는다면 나는 그것을 압축하고 끝으로 이름을 짓고 싶습니다. 그러나 나는 이것을 데이터 - 지역성으로하고 싶다.
나는 하프 스트리밍 방식을 시도했다.
HAD=/usr/lib/hadoop
$HAD/bin/hadoop jar $HAD/hadoop-streaming.jar \
-D mapred.output.compress=true \
-D madred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec \
-D mapred.reduce.tasks=0 \
-input /var/log/… -output /user/hadoop/working \
-mapper org.apache.hadoop.mapred.lib.IdentityMapper
하지만 그건 일부 파일의 무리를주는 것 것
은 선으로 가지 라인을 수행합니다. 그것은 또한 어떤 이유로 수축을 선택합니다. 그래서 나는part-00000.deflate
등과 같은 파일을 얻습니다. 입력은
app_123456789_0123_1
과 같습니다. 나는
app_123456789_0123_1.snappy
을 좋아했을 것이다.하지만이 부분은 심지어 전체 파일에 맵핑되지도 않았고 멋진 코덱도 아니었다.
FAQ says 파일 이름의 입력 파일을 생성 한 다음 각 이름에 대해 작업을 수행 할 수 있습니다. 하지만 단순한 압축기 도구는 없습니다. 다른 옵션은 더 좋을 것 같습니다 (비록 내가 항아리를 만들 필요가 없다고 생각하지만, 나는 할 수 있다고 생각합니다). 그러나 이름이 보존되지 않을 것이라고 말합니다. 나는 그것이 나에게 도움이되지 않을 것이라고 생각한다.
HDFS에서 파일을 가져 와서 로컬에서 작업하고 다시 가져 오는 작업과 관련이없는 방법이 있습니까? 그리고 어떤 파일 이름을 처리합니까?
이들은 스파크 로그이며 Spark 앱은 로그 파일의 이름을'.inprogress'로 지정합니다 작성한 다음 완료되면 최종 이름으로 바꿉니다. 압축되지 않은 완료된 응용 프로그램 만 압축하는 것을보고있었습니다. 우리는 여기에 여러 사용자가 있고 일부는 개발 중에 로그를 읽기가 더 어렵 기 때문에 압축하지 않는 곳에 자신의 spark config을 사용합니다. 그런 다음 그들은 그것을 그렇게 설정합니다. Flume을 살펴 봅시다. – dlamblin