Precondition:
hadoop 2.7.1
Nutch 2.3
hbase 1.0.1.1 / hbase 0.98.13
solr 4.8.1
Linux version 3.16.0-4-amd64
jdk1.8.0_45
hadoop編譯部署
1. 安裝相關軟件
apt-get install ssh rsync
apt-get install openssh-server
apt-get install maven
apt-get install autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
hadoop 使用openjdk可能導致問題,必須使用sun jdk,也就是不能“apt-get install default-jdk”
這篇文章使用的都是jdk1.8.0_45
hadoop 需要使用protobuf2.5,不是最新的2.6,可以從我的資源裏面下載,網上也有。
運行protoc 2.5 的時候需要加上export LD_LIBRARY_PATH=/usr/local/lib
2. ssh免密碼登錄,網上有很多參考
1) cd /root/
2) ssh-keygen -t rsa
/root/.ssh/下生成id_rsa和id_isa.pub兩個文件
3) ssh-copy-id -i .ssh/id_rsa.pub [email protected]
將本機id_isa.pub拷貝到對方。
4) ssh 192.168.1.106
5) 遇到權限問題,可以嘗試:
chmod 700 -R .ssh
chmod 644 /root/.ssh/authorized_keys
3. 編譯hadoop前準備
export LD_LIBRARY_PATH=/usr/local/lib
export JAVA_HOME=/disk2/java/jdk1.8.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
4. mvn clean package -Pdist,native -DskipTests -Dtar
mvn可能因爲下載掛住,停止再運行一下mvn package -Pdist,native -DskipTests -Dtar就好了
將編譯好的tar文件解壓即可
5. 部署前準備,兩臺機器192.168.1.105(datanode) / 192.168.1.106(namenode / datanode)
以下修改都是在192.168.1.106上面修改,然後scp到另外機器
/etc/profile
export JAVA_HOME=/disk2/java/jdk1.8.0_45
export HADOOP_HOME=/disk2/hadoop/hadoop-2.7.1
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
6. $HADOOP_HOME/etc/hadoop/hadoop-env.sh
該文件是hadoop運行基本環境的配置,需要修改的爲java虛擬機的位置。
export JAVA_HOME=${JAVA_HOME} =>
export JAVA_HOME=/disk2/java/jdk1.8.0_45
7. $HADOOP_HOME/etc/hadoop/yarn-env.sh
該文件是yarn框架運行環境的配置,同樣需要修改java虛擬機的位置。
export JAVA_HOME=/disk2/java/jdk1.8.0_45
8. $HADOOP_HOME/etc/hadoop/slaves
直接輸入機器IP即可
192.168.1.105
192.168.1.106
9.參考修改:
$HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.106:9000</value>
</property>
</configuration>
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.http.address</name>
<value>192.168.1.106:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name><value>192.168.1.106:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/disk2/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/disk2/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
$HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.106:9001</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/disk2/hadoop/hdfs/mapred.system.dir</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/disk2/hadoop/hdfs/mapred.local.dir</value>
</property>
</configuration>
10. 創建必須目錄
mkdir -p /disk2/hadoop/hdfs/mapred.local.dir
mkdir -p /disk2/hadoop/hdfs/mapred.system.dir
mkdir -p /disk2/hadoop/hdfs/name
mkdir -p /disk2/hadoop/hdfs/data
11.部署到其他機器
scp /etc/profile 192.168.1.105:/etc/
scp -r hadoop-2.7.1/ 192.168.1.105:/disk2/hadoop/
http://192.168.1.106:8088
應該都能訪問
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar pi 20 10