您好,登錄后才能下訂單哦!
$ /data/hadoop/bin/hadoopchecknative -a # 警告信息:
2017-03-27 18:02:12,116 WARN util.NativeCodeLoader:Unable to load native-hadoop library for your platform... using builtin-javaclasses where applicable
Native library checking:
hadoop: false
zlib: false
zstd : false
snappy: false
lz4: false
bzip2: false
openssl: false
ISA-L: false
參看信息:
(1)查看hadoop native的GLIBC支持的版本:
# strings/data/hadoop/lib/native/libhadoop.so.1.0.0 |grep GLIBC
GLIBC_2.2.5
GLIBC_2.12
GLIBC_2.7
GLIBC_2.14
GLIBC_2.6
GLIBC_2.4
GLIBC_2.3.4
(2)查看本地linux的GLIBC版本:
# strings /lib64/libc.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE
上面報錯可見,在linux上沒有GLIBC 2.14,因此報錯,處理方式只能是將hadoop源碼在本地linux上用本地c庫來編譯,這樣在運行hadoop時就會用本地的c庫。
解決:第一種方法:
# tar -jxvf glibc-2.14.tar.bz2
# cd glibc-2.14
# tar -jxvf../glibc-linuxthreads-2.5.tar.bz2
# cd ..
# export CFLAGS="-g -O2"
# ./glibc-2.14/configure --prefix=/usr \
--disable-profile --enable-add-ons \
--with-headers=/usr/include \
--with-binutils=/usr/bin \
# make -j `grep processor /proc/cpuinfo |wc -l`
# make install
### 注意:安裝編譯過程:
(1)要將glibc-linuxthreads解壓到glibc目錄下。
(2)不能在glibc當前目錄下運行configure。
(3)加上優化開關,export CFLAGS="-g -O2",否則會出現錯誤
# /data/hadoop/bin/hadoopchecknative -a # 核實成功
2017-03-28 09:43:42,942 INFObzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 librarysystem-native
2017-03-28 09:43:42,962 INFOzlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /data/hadoop-3.0.0-alpha2/lib/native/libhadoop.so.1.0.0
zlib: true /lib64/libz.so.1
zstd : false
snappy: true /usr/lib64/libsnappy.so.1
lz4: true revision:10301
bzip2: true /lib64/libbz2.so.1
openssl: true /usr/lib64/libcrypto.so
ISA-L: false libhadoop wasbuilt without ISA-L support
2017-03-28 09:43:43,190 INFO util.ExitUtil:Exiting with status 1
[root@master opt]# file/data/hadoop-3.0.0-alpha2/lib/native/libhadoop.so.1.0.0
/data/hadoop-3.0.0-alpha2/lib/native/libhadoop.so.1.0.0:ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, notstripped
### 說明:以上紅色字體暫沒解決,查閱資料暫時不影響使用,有知者麻煩告知,謝謝。
$./start-all.sh # 再次啟動信息
WARNING: Attempting to start all ApacheHadoop daemons as hadoop in 10 seconds.
WARNING: This is not a recommendedproduction deployment configuration.
WARNING: Use CTRL-C to abort.
Starting namenodes on [master]
Starting datanodes
Starting secondary namenodes [master]
Starting resourcemanager
Starting nodemanagers
解決:第二種方法重新編譯hadoop本地庫 # 本人沒有測試過,參考如下:
http://zkread.com/article/1187940.html
http://forevernull.com/category/%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/
目前在Hadoop中用得比較多的有lzo,gzip,snappy,bzip2這4種壓縮格式,筆者根據實踐經驗介紹一下這4種壓縮格式的優缺點和應用場景,以便大家在實踐中根據實際情況選擇不同的壓縮格式。
1、gzip壓縮
優點:壓縮率比較高,而且壓縮/解壓速度也比較快;hadoop本身支持,在應用中處理gzip格式的文件就和直接處理文本一樣;有hadoop native庫;大部分linux系統都自帶gzip命令,使用方便。
缺點:不支持split。
應用場景:當每個文件壓縮之后在130M以內的(1個塊大小內),都可以考慮用gzip壓縮格式。譬如說一天或者一個小時的日志壓縮成一個gzip文件,運行mapreduce程序的時候通過多個gzip文件達到并發。hive程序,streaming程序,和java寫的mapreduce程序完全和文本處理一樣,壓縮之后原來的程序不需要做任何修改。
2、lzo壓縮
優點:壓縮/解壓速度也比較快,合理的壓縮率;支持split,是hadoop中最流行的壓縮格式;支持hadoop native庫;可以在linux系統下安裝lzop命令,使用方便。
缺點:壓縮率比gzip要低一些;hadoop本身不支持,需要安裝;在應用中對lzo格式的文件需要做一些特殊處理(為了支持split需要建索引,還需要指定inputformat為lzo格式)。
應用場景:一個很大的文本文件,壓縮之后還大于200M以上的可以考慮,而且單個文件越大,lzo優點越越明顯。
3、snappy壓縮
優點:高速壓縮速度和合理的壓縮率;支持hadoop native庫。
缺點:不支持split;壓縮率比gzip要低;hadoop本身不支持,需要安裝;linux系統下沒有對應的命令。
應用場景:當mapreduce作業的map輸出的數據比較大的時候,作為map到reduce的中間數據的壓縮格式;或者作為一個mapreduce作業的輸出和另外一個mapreduce作業的輸入。
4、bzip2壓縮
優點:支持split;具有很高的壓縮率,比gzip壓縮率都高;hadoop本身支持,但不支持native;在linux系統下自帶bzip2命令,使用方便。
缺點:壓縮/解壓速度慢;不支持native。
應用場景:適合對速度要求不高,但需要較高的壓縮率的時候,可以作為mapreduce作業的輸出格式;或者輸出之后的數據比較大,處理之后的數據需要壓縮存檔減少磁盤空間并且以后數據用得比較少的情況;或者對單個很大的文本文件想壓縮減少存儲空間,同時又需要支持split,而且兼容之前的應用程序(即應用程序不需要修改)的情況。
在安裝過程中會出現頻繁重啟測試配置文件內容,建議每次先關閉,清理日志,清理以下創建的文件:
# mkdir -p/data/{hdfsname1,hdfsname2}/hdfs/name
# mkdir -p/data/{hdfsdata1,hdfsdata2}/hdfs/data
# rm -rf /data/hadoop/tmp
### 發現還有好多東西要搞,后續有時間繼續完善,然后……不知道什么時候了^_^
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。