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/