由于前期做了些准备工作,看了一遍教程,对hadoop的整个原理有了大概的了解,在看第二遍教程的时候,开始真正动手搭建hadoop环境,除了在配置ssh免密码登录的时候,走了写弯路,卡了两个小时,在这昨晚文章中已经有记录。总体上还算顺利,先将整个过程大概记录下来
1、硬件准备:此次我准备了3台虚拟机作为硬件环境,安装linux比较顺利,用的是redhat 5 三个机器分别如下:
IP | 机器名 | 作用 |
192.168.1.161 | hadoop01 | master |
192.168.1.162 | hadoop02 | slaves |
192.168.1.163 | hadoop03 | slaves |
2、下载安装包:包括JDK和hadoop安装包,我下载的是jdk1.8,hadoop1.21。
oracle官网:https://www.oracle.com.cn/
apache hadoop官网:http://hadoop.apache.org/
JDK1.8下载连接:http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.tar.gz
hadoop1.2.1镜像下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1-bin.tar.gz
3、##########配置服务器环境###############
1)创建hadoop账号:
useradd hadoop
passwd hadoop
2)关闭防火墙:
service iptables stop
设置防火墙永久关闭(重启后不再启动)
chkconfig iptables off
3)修改host文件
vi /etc/hosts
粘贴以下内容:
192.168.1.161 hadoop01
192.168.1.162 hadoop02
192.168.1.163 hadoop03
以上1)、2)、3)操作都是使用root账号操作。
4) 配置免密码:
su - hadoop
ssh-keygen -t rsa
(这步骤要注意,会有3个提示,3个提示都直接回车,我昨天晚上就是在这里犯了错我,浪费了2小时)
这时候进入 .ssh目录,会看到两个文件
cd .ssh
ll
创建 authorized_keys文件
cat ./id_rsa.pub >>authorized_keys
以上步骤在3台机器上都需要操作一遍
(从以下步骤开始,3台机器操作有所不同)
在节点2和节点3分别执行以下命令
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@192.168.1.161(这个步骤是将节点2,3的authorized_keys 追加到节点1的authorized_keys 上)
在节点1执行以下命令,此时,节点1已经拥有3个节点的公钥,用这个authorized_keys 覆盖其他两个节点的authorized_keys
scp ./authorized_keys hadoop@hadoop02:/home/hadoop/.ssh/authorized_keys
scp ./authorized_keys hadoop@hadoop03:/home/hadoop/.ssh/authorized_keys
至此ssh免密码配置完成。
如果确认配置无误,仍然提示输入密码,则执行一下命令:
chmod 700 /home/hadoop/.ssh
chmod 600 /home/hadoop/.ssh/*
5)安装jdk
将文件jdk文件拷贝到/home/hadoop目录下,解压
tar -xvzf jdk-8u111-linux-x64.tar.gz
配置jdk环境变量
vi .bashrc
将以下内容添加到 .bashrc中
export JAVA_HOME=/home/hadoop/jdk1.8.0_111
export JAVA_BIN=$JAVA_HOME/bin
export JAVA_LIB=$JAVA_HOME/lib
export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar
export PATH=$JAVA_BIN:$PATH
使jdk环境变量立即生效
source ~/.bashrc
source ~/.bashrc
查看jdk版本
java -version、javac –version
第5)步也是需要3个节点都操作一次
4、###############配置hadoop############
此步骤执行在主节点操作,修改好配置文件后,通过scp拷贝到其他两个节点即可
1)将文件hadoop文件拷贝到/home/hadoop目录下,解压
tar -xvzf hadoop-1.2.1-bin.tar.gz
2)修改conf/hadoop-env.sh 配置jdk环境变量
3)修改核心配置文件 vi core-site.xml
粘贴以下内容:
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-1.2.1/tmp</value>
</property>
4)配置复制因子 vi hdfs-site.xml
粘贴以下内容:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
5)配置jobtracker的地址和端口 vi mapred-site.xml
粘贴以下内容:
<property>
<name>mapred.job.tracker</name>
<value>hadoop01:9001</value>
</property>
6)修改vi masters
粘贴以下内容:
hadoop01
7)修改 vi slaves
粘贴以下内容:
hadoop02
hadoop03
8)拷贝修改好的hadoop文件夹到其他两个节点
5、初始化名称节点 此步骤执行在主节点操作 cd ~scp -r ./hadoop-1.2.1 hadoop@hadoop02:/home/hadoop
scp -r ./hadoop-1.2.1 hadoop@hadoop03:/home/hadoop
cd hadoop-1.2.1
bin/hadoop namenode -format
看到成功初始化的信息
6、启动hadoop集群
只需主节点启动即可 cd ~
cd hadoop-1.2.1
cd hadoop-1.2.1
bin/start-all.sh
看到成功初始化的日志信息
7、检查是否启动成功
1)检查主节点
/home/hadoop/jdk1.8.0_111/bin/jps
2)检查其他两个节点
/home/hadoop/jdk1.8.0_111/bin/jps
至此整个hadoop集群安装完成!