八.壓縮和存儲(chǔ)

8.1 Hadoop源碼編譯支持Snappy壓縮(了解)

8.1.1 資源準(zhǔn)備

1)CentOS聯(lián)網(wǎng)?

配置CentOS能連接外網(wǎng)捆交。Linux虛擬機(jī)ping www.baidu.com?是暢通的

注意:采用root角色編譯敬惦,減少文件夾權(quán)限出現(xiàn)問題

2)jar包準(zhǔn)備(hadoop源碼皂冰、JDK8 恶耽、maven痊夭、protobuf)

(1)hadoop-2.8.4-src.tar.gz

(2)jdk-8u144-linux-x64.tar.gz

(3)snappy-1.1.3.tar.gz

(4)apache-maven-3.0.5-bin.tar.gz

(5)protobuf-2.5.0.tar.gz

8.1.2 jar包安裝

0)注意:所有操作必須在root用戶下完成

1)JDK解壓旱捧、配置環(huán)境變量JAVA_HOME和PATH构捡,驗(yàn)證java-version(如下都需要驗(yàn)證是否配置成功)

[root@bigdata111 software] # tar -zxf jdk-8u144-linux-x64.tar.gz -C /opt/module/

[root@bigdata111 software]# vi /etc/profile

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

[root@bigdata111 software]#source /etc/profile

驗(yàn)證命令:java -version

2)Maven解壓液南、配置??MAVEN_HOME和PATH。

[root@bigdata111 software]# tar -zxvf apache-maven-3.0.5-bin.tar.gz -C /opt/module/

[root@bigdata111 apache-maven-3.0.5]# vi /etc/profile

#MAVEN_HOME

export MAVEN_HOME=/opt/module/apache-maven-3.0.5

export PATH=$PATH:$MAVEN_HOME/bin

[root@bigdata111 software]#source /etc/profile

驗(yàn)證命令:mvn -version

8.1.3 編譯源碼

1)準(zhǔn)備編譯環(huán)境

[root@bigdata111 software]# yum install svn

[root@bigdata111 software]# yum install autoconf automake libtool cmake

[root@bigdata111 software]# yum install ncurses-devel

[root@bigdata111 software]# yum install openssl-devel

[root@bigdata111 software]# yum install gcc*

2)編譯安裝snappy

[root@bigdata111 software]# tar -zxvf snappy-1.1.3.tar.gz -C /opt/module/

[root@bigdata111 module]# cd snappy-1.1.3/

[root@bigdata111 snappy-1.1.3]# ./configure

[root@bigdata111 snappy-1.1.3]# make

[root@bigdata111 snappy-1.1.3]# make install

# 查看snappy庫文件

[root@bigdata111 snappy-1.1.3]# ls -lh /usr/local/lib |grep snappy

3)編譯安裝protobuf

[root@bigdata111 software]# tar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/

[root@bigdata111 module]# cd protobuf-2.5.0/

[root@bigdata111 protobuf-2.5.0]# ./configure?

[root@bigdata111 protobuf-2.5.0]# ?make?

[root@bigdata111 protobuf-2.5.0]# ?make install

# 查看protobuf版本以測試是否安裝成功

[root@bigdata111 protobuf-2.5.0]# protoc --version

4)編譯hadoop native

[root@bigdata111 software]# tar -zxvf hadoop-2.8.4-src.tar.gz

[root@bigdata111 software]# cd hadoop-2.8.4-src/

[root@bigdata111 software]# mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy

執(zhí)行成功后勾徽,/opt/software/hadoop-2.8.4-src/hadoop-dist/target/hadoop-2.8.4.tar.gz即為新生成的支持snappy壓縮的二進(jìn)制安裝包滑凉。

8.2 Hadoop壓縮配置

8.2.1 MR支持的壓縮編碼

壓縮格式工具算法文件擴(kuò)展名是否可切分

DEFAULT無DEFAULT.deflate否

GzipgzipDEFAULT.gz否

bzip2bzip2bzip2.bz2是

LZOlzopLZO.lzo是

Snappy無Snappy.snappy否

為了支持多種壓縮/解壓縮算法,Hadoop引入了編碼/解碼器喘帚,如下表所示

壓縮格式對(duì)應(yīng)的編碼/解碼器

DEFLATEorg.apache.hadoop.io.compress.DefaultCodec

gziporg.apache.hadoop.io.compress.GzipCodec

bzip2org.apache.hadoop.io.compress.BZip2Codec

LZOcom.hadoop.compression.lzo.LzopCodec

Snappyorg.apache.hadoop.io.compress.SnappyCodec

壓縮性能的比較

壓縮算法原始文件大小壓縮文件大小壓縮速度解壓速度

gzip8.3GB1.8GB17.5MB/s58MB/s

bzip28.3GB1.1GB2.4MB/s9.5MB/s

LZO8.3GB2.9GB49.3MB/s74.6MB/s

http://google.github.io/snappy/

On a single core of a Core i7 processor in 64-bit mode, Snappy compresses?at about 250 MB/sec or more and?decompresses?at about?500 MB/sec or more.

8.2.2 壓縮參數(shù)配置

要在Hadoop中啟用壓縮畅姊,可以配置如下參數(shù)(mapred-site.xml文件中):

參數(shù)默認(rèn)值階段建議

io.compression.codecs ??

(在core-site.xml中配置)

org.apache.hadoop.io.compress.DefaultCodec, org.apache.hadoop.io.compress.GzipCodec, org.apache.hadoop.io.compress.BZip2Codec,

org.apache.hadoop.io.compress.Lz4Codec

輸入壓縮Hadoop使用文件擴(kuò)展名判斷是否支持某種編解碼器

mapreduce.map.output.compressfalsemapper輸出這個(gè)參數(shù)設(shè)為true啟用壓縮

mapreduce.map.output.compress.codecorg.apache.hadoop.io.compress.DefaultCodecmapper輸出使用LZO、LZ4或snappy編解碼器在此階段壓縮數(shù)據(jù)

mapreduce.output.fileoutputformat.compressfalsereducer輸出這個(gè)參數(shù)設(shè)為true啟用壓縮

mapreduce.output.fileoutputformat.compress.codecorg.apache.hadoop.io.compress. DefaultCodecreducer輸出使用標(biāo)準(zhǔn)工具或者編解碼器吹由,如gzip和bzip2

mapreduce.output.fileoutputformat.compress.typeRECORDreducer輸出SequenceFile輸出使用的壓縮類型:NONE和BLOCK


8.3 開啟Map輸出階段壓縮

開啟map輸出階段壓縮可以減少job中map和Reduce task間數(shù)據(jù)傳輸量若未。具體配置如下:

案例實(shí)操:

1)開啟hive中間傳輸數(shù)據(jù)壓縮功能,默認(rèn)為false

hive (default)>set hive.exec.compress.intermediate=true;

2)開啟mapreduce中map輸出壓縮功能,默認(rèn)為false

hive (default)>set mapreduce.map.output.compress=true;

3)設(shè)置mapreduce中map輸出數(shù)據(jù)的壓縮方式

hive (default)>set mapreduce.map.output.compress.codec= org.apache.hadoop.io.compress.SnappyCodec;

4)執(zhí)行查詢語句

hive (default)> select count(ename) name from emp;

8.4 開啟Reduce輸出階段壓縮

當(dāng)Hive將輸出寫入到表中時(shí),輸出內(nèi)容同樣可以進(jìn)行壓縮倾鲫。屬性hive.exec.compress.output控制著這個(gè)功能陨瘩。用戶可能需要保持默認(rèn)設(shè)置文件中的默認(rèn)值false,這樣默認(rèn)的輸出就是非壓縮的純文本文件了级乍。用戶可以通過在查詢語句或執(zhí)行腳本中設(shè)置這個(gè)值為true,來開啟輸出結(jié)果壓縮功能帚湘。

案例實(shí)操:

hive (default)> set mapreduce.job.reduces=3;

1)開啟hive最終輸出數(shù)據(jù)壓縮功能,默認(rèn)為false

hive (default)>set hive.exec.compress.output=true;

2)開啟mapreduce最終輸出數(shù)據(jù)壓縮,默認(rèn)為false

hive (default)>set mapreduce.output.fileoutputformat.compress=true;

3)設(shè)置mapreduce最終數(shù)據(jù)輸出壓縮方式

hive (default)> set mapreduce.output.fileoutputformat.compress.codec = org.apache.hadoop.io.compress.SnappyCodec;

4)設(shè)置mapreduce最終數(shù)據(jù)輸出壓縮為塊壓縮

hive (default)> set mapreduce.output.fileoutputformat.compress.type=BLOCK;

5)測試一下輸出結(jié)果是否是壓縮文件

hive (default)> insert overwrite local directory '/opt/module/datas/distribute-result' select * from emp distribute by deptno sort by empno desc;

測試:不設(shè)置reduce玫荣,結(jié)果是否是壓縮格式

hive (default)> set mapreduce.job.reduces=-1;

insert overwrite local directory '/opt/module/datas/distribute-result' select * from test;


8.5 文件存儲(chǔ)格式

Hive支持的存儲(chǔ)數(shù)的格式主要有:TEXTFILE?、SEQUENCEFILE大诸、ORC捅厂、PARQUET。

簡寫:

行儲(chǔ)存:textFile 资柔、?sequencefile 焙贷、

列儲(chǔ)存:orc 、parquet

8.5.1 列式存儲(chǔ)和行式存儲(chǔ)


上圖左邊為邏輯表贿堰,右邊第一個(gè)為行式存儲(chǔ)辙芍,第二個(gè)為列式存儲(chǔ)。

行存儲(chǔ)的特點(diǎn):查詢滿足條件的一整行數(shù)據(jù)的時(shí)候,列存儲(chǔ)則需要去每個(gè)聚集的字段找到對(duì)應(yīng)的每個(gè)列的值故硅,行存儲(chǔ)只需要找到其中一個(gè)值庶灿,其余的值都在相鄰地方,所以此時(shí)行存儲(chǔ)查詢的速度更快吃衅。

列存儲(chǔ)的特點(diǎn):因?yàn)槊總€(gè)字段的數(shù)據(jù)聚集存儲(chǔ)往踢,在查詢只需要少數(shù)幾個(gè)字段的時(shí)候,能大大減少讀取的數(shù)據(jù)量徘层;每個(gè)字段的數(shù)據(jù)類型一定是相同的峻呕,列式存儲(chǔ)可以針對(duì)性的設(shè)計(jì)更好的設(shè)計(jì)壓縮算法。

TEXTFILE和SEQUENCEFILE的存儲(chǔ)格式都是基于行存儲(chǔ)的趣效;

ORC和PARQUET是基于列式存儲(chǔ)的瘦癌。

8.5.2 TextFile格式

默認(rèn)格式,數(shù)據(jù)不做壓縮英支,磁盤開銷大佩憾,數(shù)據(jù)解析開銷大「苫ǎ可結(jié)合Gzip妄帘、Bzip2使用,但使用Gzip這種方式池凄,hive不會(huì)對(duì)數(shù)據(jù)進(jìn)行切分抡驼,從而無法對(duì)數(shù)據(jù)進(jìn)行并行操作。

8.5.3 Orc格式

Orc (Optimized Row Columnar)是Hive 0.11版里引入的新的存儲(chǔ)格式肿仑。

可以看到每個(gè)Orc文件由1個(gè)或多個(gè)stripe組成致盟,每個(gè)stripe250MB大小,這個(gè)Stripe實(shí)際相當(dāng)于RowGroup概念尤慰,不過大小由4MB->250MB馏锡,這樣應(yīng)該能提升順序讀的吞吐率。每個(gè)Stripe里有三部分組成伟端,分別是Index Data杯道,Row Data,Stripe Footer:


???1)Index Data:一個(gè)輕量級(jí)的index责蝠,默認(rèn)是每隔1W行做一個(gè)索引党巾。這里做的索引應(yīng)該只是記錄某行的各字段在Row Data中的offset。

????2)Row Data:存的是具體的數(shù)據(jù)霜医,先取部分行齿拂,然后對(duì)這些行按列進(jìn)行存儲(chǔ)。對(duì)每個(gè)列進(jìn)行了編碼肴敛,分成多個(gè)Stream來存儲(chǔ)署海。

????3)Stripe Footer:存的是各個(gè)Stream的類型,長度等信息。

每個(gè)文件有一個(gè)File Footer叹侄,這里面存的是每個(gè)Stripe的行數(shù)巩搏,每個(gè)Column的數(shù)據(jù)類型信息等;每個(gè)文件的尾部是一個(gè)PostScript趾代,這里面記錄了整個(gè)文件的壓縮類型以及FileFooter的長度信息等贯底。在讀取文件時(shí),會(huì)seek到文件尾部讀PostScript撒强,從里面解析到File Footer長度禽捆,再讀FileFooter,從里面解析到各個(gè)Stripe信息飘哨,再讀各個(gè)Stripe胚想,即從后往前讀。

8.5.4 Parquet格式

Parquet是面向分析型業(yè)務(wù)的列式存儲(chǔ)格式芽隆,由Twitter和Cloudera合作開發(fā)浊服,2015年5月從Apache的孵化器里畢業(yè)成為Apache頂級(jí)項(xiàng)目。

Parquet文件是以二進(jìn)制方式存儲(chǔ)的胚吁,所以是不可以直接讀取的牙躺,文件中包括該文件的數(shù)據(jù)和元數(shù)據(jù),因此Parquet格式文件是自解析的腕扶。

通常情況下孽拷,在存儲(chǔ)Parquet數(shù)據(jù)的時(shí)候會(huì)按照Block大小設(shè)置行組的大小,由于一般情況下每一個(gè)Mapper任務(wù)處理數(shù)據(jù)的最小單位是一個(gè)Block半抱,這樣可以把每一個(gè)行組由一個(gè)Mapper任務(wù)處理脓恕,增大任務(wù)執(zhí)行并行度。Parquet文件的格式如下圖所示窿侈。

上圖展示了一個(gè)Parquet文件的內(nèi)容炼幔,一個(gè)文件中可以存儲(chǔ)多個(gè)行組,文件的首位都是該文件的Magic Code史简,用于校驗(yàn)它是否是一個(gè)Parquet文件江掩,F(xiàn)ooter length記錄了文件元數(shù)據(jù)的大小,通過該值和文件長度可以計(jì)算出元數(shù)據(jù)的偏移量乘瓤,文件的元數(shù)據(jù)中包括每一個(gè)行組的元數(shù)據(jù)信息和該文件存儲(chǔ)數(shù)據(jù)的Schema信息。除了文件中每一個(gè)行組的元數(shù)據(jù)策泣,每一頁的開始都會(huì)存儲(chǔ)該頁的元數(shù)據(jù)衙傀,在Parquet中,有三種類型的頁:數(shù)據(jù)頁萨咕、字典頁和索引頁统抬。數(shù)據(jù)頁用于存儲(chǔ)當(dāng)前行組中該列的值,字典頁存儲(chǔ)該列值的編碼字典,每一個(gè)列塊中最多包含一個(gè)字典頁聪建,索引頁用來存儲(chǔ)當(dāng)前行組下該列的索引钙畔,目前Parquet中還不支持索引頁。

8.5.5 主流文件存儲(chǔ)格式對(duì)比實(shí)驗(yàn)

從存儲(chǔ)文件的壓縮比和查詢速度兩個(gè)角度對(duì)比金麸。

存儲(chǔ)文件的壓縮比測試:

0)測試數(shù)據(jù)(log.data 大小為18.1MB)

1)TextFile

(1)創(chuàng)建表擎析,存儲(chǔ)數(shù)據(jù)格式為TEXTFILE

create table log_text (

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)

row format delimited fields terminated by '\t'

stored as textfile ;

(2)向表中加載數(shù)據(jù)

hive (default)> load data local inpath '/opt/module/datas/log.data' into table log_text ;

(3)查看表中數(shù)據(jù)大小

hive (default)> dfs -du -h /user/hive/warehouse/log_text;

18.1 M ?/user/hive/warehouse/log_text/log.data

2)ORC

(1)創(chuàng)建表,存儲(chǔ)數(shù)據(jù)格式為ORC

create table log_orc(

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)

row format delimited fields terminated by '\t'

stored as orc ;

(2)向表中加載數(shù)據(jù)

hive (default)> insert into table log_orc select * from log_text ;

(3)查看表中數(shù)據(jù)大小

hive (default)> dfs -du -h /user/hive/warehouse/log_orc/ ;

2.8 M ?/user/hive/warehouse/log_orc/000000_0

3)Parquet

(1)創(chuàng)建表挥下,存儲(chǔ)數(shù)據(jù)格式為parquet

create table log_parquet(

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)

row format delimited fields terminated by '\t'

stored as parquet ;

(2)向表中加載數(shù)據(jù)

hive (default)> insert into table log_parquet select * from log_text ;

(3)查看表中數(shù)據(jù)大小

hive (default)> dfs -du -h /user/hive/warehouse/log_parquet/ ;

13.1 M ?/user/hive/warehouse/log_parquet/000000_0

存儲(chǔ)文件的壓縮比總結(jié):

ORC > ?Parquet > ?textFile

存儲(chǔ)文件的查詢速度測試:

1)TextFile

hive (default)> select count(*) from log_text;

_c0

100000

Time taken: 21.54 seconds,?Fetched: 1 row(s)

Time taken: 21.08 seconds, Fetched: 1 row(s)

2)ORC

hive (default)> select count(*) from log_orc;

_c0

100000

Time taken:?20.867 seconds, Fetched: 1 row(s)

Time taken: 22.667 seconds, Fetched: 1 row(s)

3)Parquet

hive (default)> select count(*) from log_parquet;

_c0

100000

Time taken: 22.922 seconds,?Fetched: 1 row(s)

Time taken: 21.074 seconds, Fetched: 1 row(s)

存儲(chǔ)文件的查詢速度總結(jié):查詢速度相近揍魂。

8.6 存儲(chǔ)和壓縮結(jié)合

8.6.1 修改Hadoop集群具有Snappy壓縮方式

1)查看hadoop checknative命令使用

[itstar@bigdata113 hadoop-2.8.4]$ hadoop

?? checknative [-a|-h] ?check native hadoop and compression libraries availability

2)查看hadoop支持的壓縮方式

[itstar@bigdata113 hadoop-2.8.4]$ hadoop checknative

17/12/24 20:32:52 WARN bzip2.Bzip2Factory: Failed to load/initialize native-bzip2 library system-native, will use pure-Java version

17/12/24 20:32:52 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library

Native library checking:

hadoop: ?true /opt/module/hadoop-2.8.4/lib/native/libhadoop.so

zlib: ???true /lib64/libz.so.1

snappy: ?false

lz4: ????true revision:99

bzip2: ??true

3)將編譯好的支持Snappy壓縮的hadoop-2.8.4.tar.gz包導(dǎo)入到bigdata111的/opt/software中

4)解壓hadoop-2.8.4.tar.gz到當(dāng)前路徑

[itstar@bigdata111software]$ tar -zxvf hadoop-2.8.4.tar.gz

5)進(jìn)入到/opt/software/hadoop-2.8.4/lib/native路徑可以看到支持Snappy壓縮的動(dòng)態(tài)鏈接庫

[itstar@bigdata111native]$ pwd

/opt/software/hadoop-2.8.4/lib/native

[itstar@bigdata111native]$ ll

-rw-r--r--. 1 itstar itstar ?472950 9月???1 10:19 libsnappy.a

-rwxr-xr-x. 1 itstar itstar ????955 9月???1 10:19 libsnappy.la

lrwxrwxrwx. 1 itstar itstar ?????18 12月?24 20:39 libsnappy.so -> libsnappy.so.1.3.0

lrwxrwxrwx. 1 itstar itstar ?????18 12月?24 20:39 libsnappy.so.1 -> libsnappy.so.1.3.0

-rwxr-xr-x. 1 itstar itstar ?228177 9月???1 10:19 libsnappy.so.1.3.0

6)拷貝/opt/software/hadoop-2.8.4/lib/native里面的所有內(nèi)容到開發(fā)集群的/opt/module/hadoop-2.8.4/lib/native路徑上

[itstar@bigdata111native]$ cp ../native/* /opt/module/hadoop-2.8.4/lib/native/

7)分發(fā)集群scp 到其他集群目錄

[itstar@bigdata111lib]$ scp - r ./native/?root@主機(jī)名:絕對(duì)路徑

8)再次查看hadoop支持的壓縮類型

[itstar@bigdata111hadoop-2.8.4]$ hadoop checknative

17/12/24 20:45:02 WARN bzip2.Bzip2Factory: Failed to load/initialize native-bzip2 library system-native, will use pure-Java version

17/12/24 20:45:02 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library

Native library checking:

hadoop: ?true /opt/module/hadoop-2.8.4/lib/native/libhadoop.so

zlib: ???true?/lib64/libz.so.1

snappy: ?true?/opt/module/hadoop-2.8.4/lib/native/libsnappy.so.1

lz4: ????true revision:99

bzip2: ??false

9)重新啟動(dòng)hadoop集群和hive

8.6.2 測試存儲(chǔ)和壓縮

官網(wǎng):https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC

ORC存儲(chǔ)方式的壓縮:

KeyDefaultNotes

orc.compressZLIBhigh level compression (one of NONE, ZLIB, SNAPPY)

orc.compress.size262,144number of bytes in each compression chunk

orc.stripe.size67,108,864number of bytes in each stripe

orc.row.index.stride10,000number of rows between index entries (must be >= 1000)

orc.create.indextruewhether to create row indexes

orc.bloom.filter.columns""comma separated list of column names for which bloom filter should be created

orc.bloom.filter.fpp0.05false positive probability for bloom filter (must >0.0 and <1.0)

1)創(chuàng)建一個(gè)非壓縮的的ORC存儲(chǔ)方式

(1)建表語句

create table log_orc_none(

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)

row format delimited fields terminated by '\t'

stored as orc tblproperties ("orc.compress"="NONE");

(2)插入數(shù)據(jù)

hive (default)> insert into table log_orc_none select * from log_text ;

(3)查看插入后數(shù)據(jù)

hive (default)> dfs -du -h /user/hive/warehouse/log_orc_none/ ;

7.7 M ?/user/hive/warehouse/log_orc_none/000000_0

2)創(chuàng)建一個(gè)SNAPPY壓縮的ORC存儲(chǔ)方式

(1)建表語句

create table log_orc_snappy(

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)

row format delimited fields terminated by '\t'

stored as orc tblproperties ("orc.compress"="SNAPPY");

(2)插入數(shù)據(jù)

hive (default)> insert into table log_orc_snappy select * from log_text ;

(3)查看插入后數(shù)據(jù)

hive (default)> dfs -du -h /user/hive/warehouse/log_orc_snappy/ ;

3.8 M ?/user/hive/warehouse/log_orc_snappy/000000_0

3)上一節(jié)中默認(rèn)創(chuàng)建的ORC存儲(chǔ)方式,導(dǎo)入數(shù)據(jù)后的大小為

2.8 M??/user/hive/warehouse/log_orc/000000_0

比Snappy壓縮的還小棚瘟。原因是orc存儲(chǔ)文件默認(rèn)采用ZLIB壓縮现斋。比snappy壓縮的小。

4)存儲(chǔ)方式和壓縮總結(jié):

在實(shí)際的項(xiàng)目開發(fā)當(dāng)中偎蘸,hive表的數(shù)據(jù)存儲(chǔ)格式一般選擇:orc或parquet庄蹋。壓縮方式一般選擇snappy,lzo迷雪。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末限书,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子振乏,更是在濱河造成了極大的恐慌蔗包,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慧邮,死亡現(xiàn)場離奇詭異调限,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)误澳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門耻矮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人忆谓,你說我怎么就攤上這事裆装。” “怎么了倡缠?”我有些...
    開封第一講書人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵哨免,是天一觀的道長。 經(jīng)常有香客問我昙沦,道長琢唾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任盾饮,我火速辦了婚禮采桃,結(jié)果婚禮上懒熙,老公的妹妹穿的比我還像新娘。我一直安慰自己普办,他們只是感情好工扎,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衔蹲,像睡著了一般肢娘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上踪危,一...
    開封第一講書人閱讀 52,785評(píng)論 1 314
  • 那天蔬浙,我揣著相機(jī)與錄音,去河邊找鬼贞远。 笑死畴博,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蓝仲。 我是一名探鬼主播俱病,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼袱结!你這毒婦竟也來了亮隙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤垢夹,失蹤者是張志新(化名)和其女友劉穎溢吻,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體果元,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡促王,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了而晒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝇狼。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖倡怎,靈堂內(nèi)的尸體忽然破棺而出迅耘,到底是詐尸還是另有隱情,我是刑警寧澤监署,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布颤专,位于F島的核電站,受9級(jí)特大地震影響钠乏,放射性物質(zhì)發(fā)生泄漏血公。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一缓熟、第九天 我趴在偏房一處隱蔽的房頂上張望累魔。 院中可真熱鬧,春花似錦够滑、人聲如沸垦写。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梯投。三九已至,卻和暖如春况毅,著一層夾襖步出監(jiān)牢的瞬間分蓖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來泰國打工尔许, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留么鹤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓味廊,卻偏偏與公主長得像蒸甜,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子余佛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1.1 Hadoop源碼編譯支持Snappy壓縮 1.1.1 資源準(zhǔn)備 1.CentOS聯(lián)網(wǎng) 配置CentOS能連...
    Movle閱讀 481評(píng)論 0 4
  • Hadoop 源碼編譯支持Snappy壓縮 資源準(zhǔn)備 CentOS聯(lián)網(wǎng)配置CentOS能連接外網(wǎng)辉巡。Linux虛擬機(jī)...
    ZFH__ZJ閱讀 492評(píng)論 0 2
  • Hadoop 源碼編譯支持 snappy 壓縮 1.下載安裝包 centos7x64 jdk1.8.0_181 a...
    貓頭木有鷹閱讀 1,771評(píng)論 0 0
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,465評(píng)論 0 13
  • 1 gzip壓縮 優(yōu)點(diǎn):壓縮率比較高恨憎,而且壓縮/解壓速度也比較快;hadoop本身支持郊楣,在應(yīng)用中處理gzip格式的...
    scottzcw閱讀 5,656評(píng)論 0 0