最近又安裝了一次hadoop系列,以前裝過幾次,但總也是磕磕碰碰的,本來想這次安裝一步到位,可惜以前記錄不夠詳細,中間還是過程還是有些遺漏,這次把過程詳細記錄起來。hadoop-1.1.2, hbase-0.95-hadoop1, hive-0.10 + snappy壓縮。中間遇到不少坑,記錄下來;由於這次目標是三件套一步到位,因此配置的時候是一塊配置了,三臺ubuntu機器分別爲zmhadoop (hadoop master)、xbhadoop(hbase master)、 gnhadoop
首先下載三件套tar.gz 放到一臺機器的/data/cloud目錄下, 解壓; 最好建立軟連接
ln -s hadoop-1.1.2 hadoop; hbase hive同理。
配置三件套首先有要做的幾件事:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
sudo chmod 400 ~/.ssh/authorized_keys
mkdir -p /data/cloud/dfs/tmp;
mkdir -p /data/cloud/dfs/namesecondary;
mkdir -p /data/cloud/dfs/data; //記住這個目錄要修改到權限 755,忘記修改導致啓動datanode沒法啓動
mkdir -p /data/cloud/dfs/mapred/system;
mkdir -p /data/cloud/dfs/mapred/local;
mkdir -p /data/cloud/dfs/mapred/tmp;
<property>
<name>fs.default.name</name>
<value>hdfs://zmhadoop:9000</value>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/data/cloud/dfs/namesecondary</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/cloud/dfs/tmp</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>1800</value>
</property>
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
<property>
<name>mapred.output.compress</name>
<value>true</value>
<description>Should the job outputs be compressed?
</description>
</property>
<property>
<name>mapred.output.compression.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
<description>If the job outputs are compressed, how should they be compressed?
</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/data/cloud/dfs/data</value>
</property>
<property>
<name>dfs.balance.bandwidthPerSec</name>
<value>10485760</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/data/cloud/dfs/name</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>zmhadoop:9001</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/data/cloud/dfs/mapred/system</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/data/cloud/dfs/mapred/local</value>
</property>
<property>
<name>mapred.temp.dir</name>
<value>/data/cloud/dfs/mapred/tmp</value>
</property>
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
export JAVA_HOME=/data/jdk1.7.0_21/
export HBASE_HOME=/data/cloud/hbase
export HADOOP_HOME=/data/cloud/hadoop
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64:/usr/local/lib
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native/Linux-amd64-64
#Extra Java CLASSPATH elements. Optional.
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HADOOP_HOME/lib/hadoop-snappy-0.0.1-SNAPSHOT.jar:$HBASE_HOME/conf:$HBASE_HOME/lib/zookeeper-3.4.5.jar:$HBASE_HOME/lib/hbase*.jar
<property>
<name>hbase.rootdir</name>
<value>hdfs://zmhadoop:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>xbhadoop:60000</value>
</property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
<description>The port master should bind to.</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>xbhadoop,zmhadoop,gnhadoop</value>
</property>
export JAVA_HOME=/data/jdk1.7.0_21/
export HBASE_OPTS="$HBASE_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode"
export HBASE_MANAGES_ZK=false
export HBASE_HOME=/data/cloud/hbase
export HADOOP_HOME=/data/cloud/hadoop
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/
export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/native/Linux-amd64-64/:/usr/local/lib/:$HBASE_HOME/lib/hadoop-snappy-0.0.1-SNAPSHOT.jar
mysql> CREATE DATABASE metastore; mysql> USE metastore; mysql> SOURCE /usr/lib/hive/scripts/metastore/upgrade/mysql/hive-schema-0.9.0.mysql.sql;
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://MYHOST/metastore</value> //自己用mysql登陸一下看行不行
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveuser</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
export HBASE_HOME=/data/cloud/hbase
export HADOOP_HOME=/data/cloud/hadoop
export HIVE_HOME=/data/cloud/hive
$HADOOP_HOME/bin/hadoop format namenode
$HADOOP_HOME/bin/start-all.sh
$HBASE_HOME/bin/start-hbase.sh