菜鸟配置Hadoop2.7.1集群搭建
本文章是在虚拟机下安装Hadoop集群
1.安装虚拟机环境
电脑环境是64位操作系统,故采用64位Vmware虚拟机,64 centos6.4 操作系统,本人安装了三台虚拟机分别为:
- NameNode: 192.168.234.88 bdoc1(主机名)
- DataNode: 192.168.234.89 bdoc2(主机名)
- DataNode: 192.168.234.90 bdoc3(主机名)
2.配置环境
2.1修改主机名(3台都需要)
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=bdoc1
NETWORKING=yes
HOSTNAME=bdoc2
NETWORKING=yes
HOSTNAME=bdoc3
需要重启 reboot 才能生效!
2.2 修改每台虚拟机的IP(保证三台之间能够相互通信)
eg:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" ###
HWADDR="00:0C:29:3C:BF:E7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
IPADDR="192.168.234.88" ###
NETMASK="255.255.255.0" ###
GATEWAY="192.168.234.1" ###
DNS1="114.114.114.114" (大多配置8.8.8.8 也可以不用加)
DNS2="8.8.4.4" (可以不用加)
“#” 代表需要修改的地方!
2.3修改主机名和IP的映射关系(每台都需要)
vim /etc/hosts
NameNode(bdoc1):
192.168.234.88 bdoc1
192.168.234.89 bdoc2
192.168.234.90 bdoc3
DataNode(bdoc2):
192.168.234.88 bdoc1
192.168.234.89 bdoc2
DateaNode(bdoc3):
192.168.234.88 bdoc1
192.168.234.90 bdoc3
2.4关闭防火墙(每台)
#关闭防火墙
service iptables stop
#查看防火墙状态
service iptables status
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
2.5重启Linux reboot
3.安装jdk (3台都需要)
3.1上传
可以通过securecrt 或Filezilla ,也可下载
3.2解压jdk
#创建文件夹
mkdir /usr/java
#解压
tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/java/
3.3将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source /etc/profile
4.安装hadoop2.7.1
4.1 上传或下载hadoop(64位的)
4.2 解压Hadoop (3台都需要)
本人解压在 /root/bdoc/ 目录下
tar -zxvf hadoop-2.7.1-x64.tar.gz -C /root/bdoc/
4.3 配置Hadoop环境
所有的配置都是在/root/bdoc/hadoop-2.7.1/etc/hadoop/ 下修改
1)第一个:hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_79
2)第二个:core-site.xml(这个配置三台机器都需要配置,其他的只是主服务器bdoc1配置)
<!-- 指定HDFS的NameNode地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bdoc1:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/bdoc/hadoop-2.7.1/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property
3)第三个:hdfs-site.xml
<property>
<name>dfs.nameservices</name>
<value>bdoc—hadoop-cluster</value>
</property>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
4)第四个:mapred-site.xml
首先 mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5)第五个:yarn-site.xml
<!-- 指定YARN的(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bdoc1</value>
</property>
<!-- reduce获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6)第六个:slaves
vim slaves
bdoc2
bdoc3
4.4 将hadoop添加到环境变量
vim /etc/proflie
export HADOOP_HOME=/bdoc1/hadoop-2.7.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
5.在bdoc1上 格式化NameNode
hdfs namenode -format (hadoop namenode -format)
6. 启动hadoop
先启动HDFS
start-dfs.sh
再启动yarn
start-yarn.sh
验证是否启动成功
使用jps命令验证:
bdoc1:
27408 NameNode
28218 Jps
27643 SecondaryNameNode
27803 ResourceManagerbdoc2 bdoc3使用jps出现: NodeManager jps DataNode
可以进入
http:// 192.168.234.88:50070 (HDFS管理界面)查看DataNode的状态(live or dead)
进入:http:// 192.168.234.88:8088 (MR管理界面)
注意:在第5步之前最好是要配置下ssh免登陆
因为是bdoc1启动时要访问bdoc2,bdoc3,所以在访问时会提示输入密码,为了避免麻烦,最好是配置免登陆。
bdoc1要访问bdoc2,bdoc3,则首先要在bdoc1上生成秘钥,将生成的秘钥拷贝到bdoc2,bdoc3指定的目录下,具体过程如下:
进入到bdoc1机器的home目录
cd ~/.ssh
ssh-keygen -t rsa (敲击回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
cp id_rsa.pub authorized_keys
将公钥authorized_keys拷贝到要免登陆的机器(bdoc1,bdoc2)上
scp authorized_keys root@192.168.234.89:/root/.ssh/
scp authorized_keys root@192.168.234.90:/root/.ssh/
ok,验证无密码登录:
ssh root@192.168.234.90
trouble shooting:
大部分故障都是因为权限引起的, 如果互访中出现问题建议修改为如下权限: 建议修改为如下权限:
用户主目录: 755 及以下权限
.ssh目录 :700
id_rsa : 600
authorized_keys :700
id_rsa.pub : 700