kudu 1.7  源碼安裝

kudu 1.7  源碼安裝

一. 安裝環境依賴

yum install autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi \

  cyrus-sasl-plain flex gcc gcc-c++ gdb \

  krb5-server krb5-workstation libtool make openssl-devel patch \

  pkgconfig redhat-lsb-core rsync unzip vim-common which

二.安裝開發以下工

DTLS_RPM=rhscl-devtoolset-3-epel-6-x86_64-1-2.noarch.rpm

DTLS_RPM_URL=https://www.softwarecollections.org/repos/rhscl/devtoolset-3/epel-6-x86_64/noarch/${DTLS_RPM}wget ${DTLS_RPM_URL} -O ${DTLS_RPM}

yum install -y scl-utils ${DTLS_RPM}

yum install -y devtoolset-3-toolchain

三.安裝額外的軟件和文檔構建工具

yum install doxygen gem graphviz ruby-devel zlib-devel

四.下載kudu源碼

https://archive.apache.org/dist/kudu/1.7.1/apache-kudu-1.7.1.tar.gz

tar -zxf apache-kudu-1.7.1.tar.gz

cd apache-kudu-1.7.1

五.構建第三方平臺需要的環境

build-support/enable_devtoolset.sh thirdparty/build-if-necessary.sh

這個步驟會下載相關的依賴包,會花費比較長的時間4小時左右(具體和網速有關)

六.構建kudu 

使用上述相關的工具進行構建,構建的時候需要新建一個臨時目錄來保存輸出結果,注意:不能使用kudu源碼目錄

mkdir -p build/release

 

cd build/release

 

 

../../build-support/enable_devtoolset.sh \

  ../../thirdparty/installed/common/bin/cmake \

  -DCMAKE_BUILD_TYPE=release \

  ../..

 

如果出現問題:

 Version mismatch error.  This is libtool 2.4.6, but definition of this LT_INIT comes from libtool 2.2.6b.

(可能是你之前裝的和現在裝的衝突,本次就是anaconda的和yum安裝的衝突)

yum remove -y autoconf

conda install -c anaconda autoconf

conda install -c anaconda automake  (這個也要安裝)

 

繼續執行(花了幾十分鐘)

../../build-support/enable_devtoolset.sh \

  ../../thirdparty/installed/common/bin/cmake \

  -DCMAKE_BUILD_TYPE=release \

  ../..

 

make -j4(將近一個小時)

七.構建文檔(可選)

make docs

八. 編譯後的將需要的文件整理到新建的文件夾

目錄結構:

其中:bin是服務程序目錄,conf是配置文件目錄,www是web後臺相關的js、圖片、css文件目錄。

九.安裝

Node2、node3的kudu配置(kudu程序根目錄是:/opt/kudu)

修改vim conf/master.gflagfile


--master_addresses=node2,node3
--fs_data_dirs=/opt/data/kudu/data
--fs_metadata_dir=/opt/data/kudu/metedata
--fs_wal_dir=/opt/data/kudu/wal
--log_dir=/opt/data/kudu/logs
--webserver_doc_root=/opt/kudu/www

修改vim conf/tserver.gflagfile

--fs_data_dirs=/opt/data/kudu_tserver/data--fs_metadata_dir=/opt/data/kudu_tserver/metedata--fs_wal_dir=/opt/data/kudu_tserver/wal--log_dir=/opt/data/kudu_tserver/logs--tserver_master_addrs=node2:7051,node3:7051

創建master需要的目錄:

mkdir -p /opt/data/kudu/data /opt/data/kudu/metedata /opt/data/kudu/metedata /opt/data/kudu/wal /opt/data/kudu/logs

創建tserver需要的目錄:

mkdir -p /opt/data/kudu_tserver/data /opt/data/kudu_tserver/metedata /opt/data/kudu_tserver/metedata /opt/data/kudu_tserver/wal /opt/data/kudu_tserver/logs

 

分別開啓node2、node3的服務

先開啓master服務

./kudu-master --flagfile=../conf/master.gflagfile

報錯:

./kudu-master: error while loading shared libraries: libsasl2.so.3: cannot open shared object file: No such file or directory

[root@node2 bin]# find / -name libsasl*

/usr/lib64/libsasl2.so.2.0.23

/usr/lib64/libsasl2.so

/usr/lib64/libsasl2.so.2

/usr/lib64/sasl2/libsasldb.so

/usr/lib64/sasl2/libsasldb.so.2.0.23

/usr/lib64/sasl2/libsasldb.so.2

確實沒有,下載libsasl2.so.3放到/usr/lib64/目錄

Chmod 777 libsasl2.so.3

再次開啓

./kudu-master --flagfile=../conf/master.gflagfile

報錯:

[root@node2 bin]# ./kudu-master --flagfile=../conf/master.gflagfile

./kudu-master: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./kudu-master)

./kudu-master: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found (required by ./kudu-master)

./kudu-master: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libsasl2.so.3)

./kudu-master: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib64/libsasl2.so.3)

[root@node2 bin]# 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

最新的纔是2.12,沒有2.14

下載glibc軟件,並且升級

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz

tar -xvf  glibc-2.14.tar.gz

tar -xvf  glibc-ports-2.14.tar.gz

mv glibc-ports-2.14 glibc-2.14/ports

mkdir glibc-2.14/build

cd glibc-2.14/build

../configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make

make install

 

運行再次報錯:

[root@node2 bin]# ./kudu-master --flagfile=../conf/master.gflagfile

./kudu-master: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by ./kudu-master)

./kudu-master: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found (required by ./kudu-master)

./kudu-master: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib64/libsasl2.so.3)

 

 

可以看見沒有GLIBCXX_3.4.13往上的

解決

##下載gcc最新版

wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.1/gcc-4.8.1.tar.gz

然後解壓到文件夾

tar -xvzf gcc-4.8.1.tar.gz

進入解壓縮之後的目錄

cd gcc-4.8.1

然後執行下面的運行

./contrib/download_prerequisites

再返回上一層,建立build_gcc_4.8.1目錄,這個目錄和gcc-4.8.1平行

cd ..

mkdir build_gcc_4.8.1

進入剛建立的目錄,並執行編譯過程

cd build_gcc_4.8.1

../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib  

make -j23

make install

再次開啓

[root@node2 bin]# ./kudu-master --flagfile=../conf/master.gflagfile

報錯:

./kudu-master: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ./kudu-master)

./kudu-master: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib64/libsasl2.so.3)

 

解決:

wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz

wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz

tar -xvf  glibc-2.15.tar.gz

tar -xvf  glibc-ports-2.15.tar.gz

mv glibc-ports-2.15 glibc-2.15/ports

mkdir glibc-2.15/build

cd glibc-2.15/build

../configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make

make install

查看結果,ok

[root@node2 build]# 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_2.13

GLIBC_2.14

GLIBC_2.15

GLIBC_PRIVATE

再次運行master:

[root@node2 bin]# ./kudu-master --flagfile=../conf/master.gflagfile

WARNING: Logging before InitGoogleLogging() is written to STDERR

F1122 17:58:20.281831 15935 init.cc:84] Check failed: _s.ok() Bad status: Not implemented: The CPU on this system (Intel(R) Xeon(R) CPU           E5405  @ 2.00GHz) does not support the SSE4.2 instruction set which is required for running Kudu. If you are running inside a VM, you may need to enable SSE4.2 pass-through.

*** Check failure stack trace: ***

Aborted (core dumped)

 

安裝了兩天,還這樣,心累,不玩了

參考文章:https://www.cnblogs.com/chengjunhao/p/9070945.html

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章