Ubuntu16.04にCDH5を入れる
CDH5をインストールするを読んで、Ubuntuでやろうとしたら思いの外つまづいたので、備忘録代わりに残しておきます。
(今更こんな方法でHadoop入れる人いないと思うけど。。。)
環境
Javaのインストール
ひとまず、java8を先に入れて、PATHを通しておきます。
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get -y install oracle-java8-installer cat << EOF >> ~/.bashrc JAVA_HOME=/usr/lib/jvm/java-8-oracle PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME export PATH EOF source ~/.bashrc
Hadoopのリポジトリ登録
ここでおおきく躓いた。。。
まず、そもそもリポジトリの概念がCentとUbuntuで異なるので、Ubuntu用のファイルをとってこないと行けない。
# trustyはUbuntu14.04だけど、16.05用のディレクトリがないのでこっちから落としてくる
sudo wget https://archive.cloudera.com/cdh5/one-click-install/trusty/amd64/cdh5-repository_1.0_all.deb
その後、debパッケージを開く
sudo dpkg -i cdh5-repository_1.0_all.deb
sudo curl -s https://archive.cloudera.com/cdh5/ubuntu/trusty/amd64/cdh/archive.key |
sudo apt-key add -
これで準備は完了。。。と思いきや、、、ここでまた一つ問題が・・・
インストールするバージョンを指定する
というのも、このままなにもせずに素直にapt-getすると最新版のCDHが入ってしまう。
今回は都合によりバージョン5.12に指定したいので、
/etc/apt/sources.list.d配下のcloudera-cdh5.listファイルを修正する
cd /etc/apt/sources.list.d cp cloudera-cdh5.list cloudera-cdh5.list.orig cat << EOF > cloudera-cdh5.list deb [arch=amd64] https://archive.cloudera.com/cdh5/ubuntu/xenial/amd64/cdh xenial-cdh5.12 contrib deb-src https://archive.cloudera.com/cdh5/ubuntu/xenial/amd64/cdh xenial-cdh5.12 contrib EOF
ポイントは指定するURLで
https://archive.cloudera.com/cdh5/ubuntu/<Ubuntuのバージョン>/amd64/cdh <Ubuntuのバージョン> - <インストールするCDHのバージョン>
みたいにする。
今回は、
+ Ubuntu : 16.04(xenial)
+ Hadoop : CDH5.12
だったので上のような書き方になった。
ちなみに、書き方を見たい場合は、
https://archive.cloudera.com/cdh5/ubuntu/
例: https://archive.cloudera.com/cdh5/ubuntu/xenial/amd64/cdh/conf/distrobutionsの一部
Origin: Cloudera Label: Cloudera Codename: xenial-cdh5.11.1 Version: 16.04 Architectures: amd64 source Components: contrib Description: Cloudera nightly packages for xenial SignWith: 02A818DD Origin: Cloudera Label: Cloudera Codename: xenial-cdh5.12.0 Version: 16.04 Architectures: amd64 source Components: contrib Description: Cloudera nightly packages for xenial SignWith: 02A818DD Origin: Cloudera Label: Cloudera Codename: xenial-cdh5.12 Version: 16.04 Architectures: amd64 source Components: contrib Description: Cloudera nightly packages for xenial SignWith: 02A818DD
Hadoopインストール&起動
あとは素直にHadoopを入れて動かすだけ。
sudo apt update sudo apt-get install -y hadoop-conf-pseudo sudo -u hdfs hdfs namenode -format sudo systemctl start hadoop-hdfs-namenode hadoop-hdfs-datanode hadoop-hdfs-secondarynamenode sudo /usr/lib/hadoop/libexec/init-hdfs.sh sudo systemctl restart hadoop-hdfs-namenode hadoop-hdfs-datanode hadoop-hdfs-secondarynamenode sudo systemctl start hadoop-yarn-resourcemanager hadoop-yarn-nodemanager
結論
Cloudera ManagerとCloudera Directorは正義。