最近开始准备阿里天池大数据比赛,一切从0开始学习,此系列文章只为记录自己的学习历程与总结,知识有错误还望大家提出。
官网文档: http://hadoop.apache.org/docs/r1.2.1/#Getting+Started
我的安装环境:3台 Centos6.4 虚拟机,一个作NameNode ,另外两个做dataNode
1.修改hostname和dns映射
(我这里Linux虚拟机网络链接方式全部采用NAT,没有配置固定IP)
1.1.为了不用频繁敲IP,我们修改每一台Linux的hostname:
修改/etc/sysconfig/network
在其中将hostname=xxx 修改为hostname=node1(自定义名字)
正确检验:uname -n 或者直接hostname 将给出自己定义的名字
1.2.修改DNS映射
修改/etc/hosts
在该文件后添加 ip hostname对 如:192.168.136.128 node3
正确检验:在一台机器上使用ping命令链接其他机器,ping通则成功 如:ping node2
2.先决条件:jdk、ssh
可以使用 java -version 查看有没有安装jdk,一般默认安装openjdk,所以最好卸载然后装sun jdk
配置本地环境变量(/etc/profile最后添加内容) 用javac和Java -version 两个命令检验
3.配置免密码登录
根据官方文档,现在每台机器上执行
$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
以生成
authorized_keys , 并完成本地免密码登录
然后在目标机(从哪台机器上ssh别的机器)执行:
在.ssh目录下
scp id_dsa.pub root@node1(别的机器名字):~
然后在别的机器上执行:
cat ~/id_dsa.pub >> ~/.ssh/authorized_keys
4.解压下载好的hadoop压缩包
我这里解压到的目录为 /root
5.修改配置文件 conf/hadoop-env.sh
配置好
JAVA_HOME(/etc/hosts)
6.修改配置文件 /hadoop-1.2.1/conf/core-site.xml
添加如下内容:
<property>
<name>fs.default.name</name>
<value>hdfs://node3:9000</value> <!--nameNode 节点 -->
</property>
<property>
<name>hadoop.tmp.dir</name> <!--默认工作目录 --> 不设置的话会在Linux tmp 目录下,重启之后清空,需要重新format
<value> /opt/hadoop-1.2</value>
</property>
5.修改配置文件 conf/hdfs-site.xml:
配置 dataNode节点数量,不配置默认为3
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
6.修改配置文件 conf/slaves:
配置dataNode的IP或者主机名称
我这里添加 node1 node2(我以node3作为nameNode)
!!注意:直接使用hostname的话需要在/etc/hosts 中配置ip 和 hostname(域名解析)
7.修改配置文件conf/masters
配置Secondary NameNode 位置(不能与NameNode在同一台机器上)
我这里写node2
至此完成HDFS部分
在nameNode 和各个dataNode上使用jps查看Java进程有没有对应的Node
在windows下通过访问http://192.168.136.128:50070 查看Node状态,特别注意看一下Live Nodes 的数量,可能为0(原因是前面的hostname没有配置好)
8.配置/conf/mapred-site.xml
修改文件内容
<property>
<name> mapred.job.tracker</name>
<value>node3:9001</value>
</property>
至此,Hadoop的MapReduce部分搭建完成,通过./start-all.sh 启动HDFS 和 MapRedue,通过jps查看进程,浏览器中通过node3:50030/查看