1 安装的主要环境
OS:Centos 7 64-bit
Hadoop version:2.6.0
Java:Jdk1.7.0_75
1.1 首先安装编译和安装过程所需要的所有依赖程序包:
sudo yum install autoconfautomake libtool cmake ncurses-devel gcc* openssl-devel
注意:更新过程中,若发现速度慢,则进行源更换,换个镜像下载。
1.2 Java环境配置:
l Jdk下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
l 在/usr/下新建java文件夹,将下载好的压缩文件移动到/usr/java/文件夹中并解压:
sudo mkdir/usr/java
sudo mv jdk-7u79-linux-x64.tar.gz/usr /java/
sudo tar –zxvf jdk-7u79-linux-x64.tar.gz
l 修改~/.bashrc,配置java环境变量
vim ~/.bashrc
(文件末尾加入以下四行)
exportJAVA_HOME=/usr /java/jdk1.7.0_79
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:$PATH
l 使环境变量生效
source ~/.bashrc
l 检查一下是否配置成功
java –version
1.3 protobuf安装配置
l protobuf下载地址:
https://code.google.com/p/protobuf/downloads/list
l 在/usr/下新建protobuf文件夹,将下载好的压缩文件移动到/usr/protobuf/文件夹中并解压,然后编译安装:
sudo mkdir /usr/ protobuf
sudo mv protobuf-2.5.0.tar.gz /usr / protobuf /
tar -zxvfprotobuf-2.5.0.tar.gz
l 进入到protobuf的安装目录/usr/protobuf/protobuf-2.5.0
cd /usr/protobuf/ protobuf-2.5.0
./configure --prefix=/usr/(--prefix=/usr/这部分可以不写,直接执行./configure即可)
sudo make
sudo make check
sudo make install
l 检查是否安装成功:
protoc --version
1.4 ant安装配置
l 在/usr/下新建ant文件夹,将下载好的压缩文件移动到/usr/ant/文件夹中并解压,然后编译安装:
sudo mkdir /usr/ ant
sudo mv apache-ant-1.9.5-bin.tar.gz /usr / ant /
tar -zxvf apache-ant-1.9.5-bin.tar.gz
l 修改~/.bashrc,配置ant环境变量
vim ~/.bashrc
(文件末尾加入一行)
expoet ANT_HOME= /usr/ant/apache-ant-1.9.5
1.5 findbugs安装配置
l 在/usr/下新建findbugs文件夹,将下载好的压缩文件移动到/usr/ findbugs /文件夹中并解压,然后编译安装:
sudo mkdir /usr/ findbugs
sudo mv findbugs-3.0.1.tar.gz /usr / findbugs /
tar -zxvf findbugs-3.0.1.tar.gz
l 修改~/.bashrc,配置ant环境变量
vim ~/.bashrc
(文件末尾加入一行)
expoetFINDBUGS_HOME= /usr/findbugs/ findbugs -3.0.1
1.6 maven安装配置
l 在/usr/下新建maven文件夹,将下载好的压缩文件移动到/usr/ maven/文件夹中并解压,然后编译安装:
sudo mkdir /usr/ maven
sudo mv apache-maven-3.3.3-bin.tar.gz /usr / maven/
tar -zxvf apache-maven-3.3.3-bin.tar.gz
l 修改~/.bashrc,配置java环境变量
vim ~/.bashrc
(文件末尾加入一行)
expoet MAVEN_HOME=/usr/maven/ apache-maven -3.3.3
l 最后在~/.bashrc文件末尾加上一行
exportPATH=$JAVA_HOME/bin:$ANT_HOME/bin:$FINDBUGS_HOME/bin:$MAVEN_HOME/bin:$PATH
l 使环境变量生效
source ~/.bashrc
注意:完成这一部分之后,若是在虚拟机中安装,可以将这台机器关闭,复制整台机器到其他服务器上,并在其他服务器中的虚拟机中打开。
2配置网络环境及ssh免密安装配置
假设服务器设备如下:(每台机器都可以连接外网,进行通信)
hostname | IP | 作用 |
master | 125.216.242.200 | NameNode、ResourceManager |
slave1 | 125.216.242.202 | DataNode、NodeManager |
slave2 | 125.216.242.203 | DataNode、NodeManager |
2.1. 配置网络环境
l 修改hostname:
sudo vim/etc/hostname
l 三台服务器修改成对应的hostname后保存文件。
具体如下图:
master机器上:
slave1机器上:
slave2机器上:
l 修改hosts:
sudo vim /etc/hosts
将其中内容全部删掉,然后在文件中加入以下三行:
125.216.242.200master
125.216.242.202slave1
125.216.242.203slave2
(三台服务器均需配置。)
2.2. SSH免密安装配置
l 在三台服务器中执行:
ssh-keygen –t rsa –P‘’
l 查看~/.ssh权限
ls –al ~
l 若为700,则不做任何操作,否则执行
sudo chmod 700 ~/.ssh
l 进入到.ssh目录
cd ~/.ssh
sudo chmod 600 authorized_keys
l 在master中执行:
scp id_rsa.pub hadoop@slave1:~/.ssh/key_from_master(其中hadoop是用户名)
scp id_rsa.pub hadoop@slave2:~/.ssh/key_from_master
l 在slave1和slave2中执行:
catkey_from_master >> authorized_keys
rm key_from_master
以上步骤实现了数据节点(slave1、slave2)单向免密登录主节点(master),但主节点(master)并不能免密登录数据节点(slave1、slave2)
l 在slave1执行:
scp id_rsa.pub hadoop@slave1:~/.ssh/key_from_slave1
l 在slave2中执行:
scp id_rsa.pub hadoop@slave1:~/.ssh/key_from_slave2
l 在master中执行:
cat key_from_ slave1>>authorized_keys
cat key_from_ slave2>>authorized_keys
rm key_from_ slave1
rm key_from_ slave2
这样就实现了主节点和数据节点双向通信了。
注意:若上述操作后,主节点和数据节点还是不能免密连接时,如下图:
则在所有机器中使用命令:ssh-add,即可成功免密通信。
3 hadoop-2.6.0安装配置
3.1安装hadoop
l 将下载好的压缩文件hadoop-2.6.0.tar.gz移动到用户的主目录/home/hadoop下并解压,然后编译安装:
mv hadoop-2.6.0.tar.gz /home/hadoop
tar –zxvf hadoop-2.6.0.tar.gz
l 修改~/.bashrc,配置hadoop环境变量
vim ~/.bashrc
(文件末尾加入以下6行)
exportHADOOP_HOME=/home/hadoop/hadoop-2.6.0
exportPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
exportHADOOP_LOG_DIR=$HADOOP_HOME/logs
exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
exportHDFS_CONF_DIR=$HADOOP_HOME/etc/hadoop
exportYARN_CONF_DIR=$HADOOP_HOME/etc/Hadoop
如下图:
l 使环境变量生效
source ~/.bashrc
3.2配置hadoop
l 进入hadoop的配置目录
cd ~/hadoop-2.6.0/etc/hadoop/ (其中~表示当前用户主目录,即:/home/hadoop)
l 修改上图中红色方框中的core-site.xml:
vim core-site.xml
内容如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master0:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop-2.6.0/tmp</value>
<description>Abase for othertemporary directories.</description>
</property>
</configuration>
l 修改上图中红色方框中的hdfs-site.xml:
vim hdfs-site.xml
内容如下:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/hdfs/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hdfs/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
l 将上图红色方框中mapred-site.xml.template文件一份复制为mapred-site.xml
cp mapred-site.xml.templatemapred-site.xml
修改mapred-site.xml:
vim mapred-site.xml
内容如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
l 修改上图中红色方框中的yarn-site.xml:
vim yarn-site.xml
内容如下:
erty>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
l 修改上图中红色方框中的yarn-env.sh:
vim yarn-env.sh
在文件开头添加如下一行内容:
exportJAVA_HOME=/usr /java/jdk1.7.0_79
l 修改上图中红色方框中的slaves:
vim slaves
内容如下:
slave1
slave2
l 三台服务器的hadoop配置是一样的,所以可以先将编译输出安装到其中一台服务器,然后配置好所有配置文件,然后再将整个hadoop目录复制安装到其他服务器中。
如在master中完成配置后:
scp -r/home/hadoop/hadoop-2.6.0 slave1:/home/hadoop/hadoop-2.6.0
scp -r/home/hadoop/hadoop-2.6.0 slave2:/home/hadoop/hadoop-2.6.0
注意:传输完成后,必须手动创建临时目录(/home/hadoop/hadoop-2.6.0/tmp/)、主节点目录(/home/hadoop/hdfs/dfs/name/)和数据节点目录(/home/hadoop/hdfs/dfs/data/)
4.启动hadoop
l 格式化主节点(只执行一次)
hadoop namenode-format
l 在master中执行:
start-dfs.sh
start-yarn.sh
l 用jps命令查看Java进程。
master中应有:
NameNode
SecondaryNameNode
ResourceManager
slave1和slave2中应有:
NodeManager
DataNode
l 浏览器中查看集群状态:
查看HDFS:http://125.216.242.200:50070
查看YARN:http://125.216.242.200:8088