一 下载软件
安装环境:CentOS 6.4 X86_64
JDK 1.7.0_25
Hadoop 1.2.1
二 SSH免密码登录
a.安装SSH服务
yum install ssh 安装SSH协议
yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)
service sshd restart 启动服务
b.配置
生成其无密码密钥对
ssh-keygen
–t rsa –P ‘‘
询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。
查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚生产的无密码密钥对。
把id_rsa.pub追加到授权的key里面去
cat
~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
c.修改权限
在验证前,需要做两件事儿。第一件事儿是修改文件"authorized_keys"权限(权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能),另一件事儿是用root用户设置"/etc/ssh/sshd_config"的内容。使其无密码登录有效。
修改文件"authorized_keys"权限
chmod
600 ~/.ssh/authorized_keys
用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容
vim
/etc/ssh/sshd_config
修改如下的内容:
RSAAuthentication
yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
d.验证登录
退出root登录,使用hadoop普通用户验证是否成功
ssh
localhost
注意:把公钥复制到其他的所有机器上,可以实现hadoop集群部署
scp ~/.ssh/id_rsa.pub
远程用户名@远程服务器IP:~/
scp
~/.ssh/id_rsa.pub hadoop@192.168.1.3:~/
上面的命令是复制文件"id_rsa.pub"到服务器IP为"192.168.1.3"的用为"hadoop"的"/home/hadoop/“下面。
注意:1.文件夹".ssh"在配置SSH无密码登录时系统自动生成时,权限自动为"700",如果是自己手动创建,它的组权限和其他权限都有,这样就会导致RSA无密码远程登录失败,所以如果是手动创建.ssh文件夹的话应将其权限设置为700:
chmod
700 ~/.ssh
2.在配置SSH需要注意两个权限:a.authorized_keys的权限600 b.ssh文件夹的权限700
三 配置JAVA
a. 将下载后的java文件进行解压,然后将其放到相应的文件夹中
b. 配置java环境变量
以下命令都适用root用户进行操作
vim /etc/profile
在文件尾部添加以下内容
#set
java environment
export JAVA_HOME=/usr/java/jdk1.6.0_31
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
使配置生效
source /etc/profile
c.验证
java
-version
四 配置主机名字
a.主机名称的修改
查看当前主机的名称:hostname
修改当前主机的名称(使用root用户):vim
/etc/sysconfig/network
HOSTNAME=Master
b.配置hosts文件
"/etc/hosts"这个文件是用来配置主机将用的DNS服务器信息,是记载LAN内接续的各主机的对应[HostName和IP]用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的IP地址。
我们要测试两台机器之间知否连通,一般用"ping 机器的IP",如果想用"ping 机器的主机名"发现找不见该名称的机器,解决的办法就是修改"/etc/hosts"这个文件,通过把LAN内的各主机的IP地址和HostName的一一对应写入这个文件的时候,就可以解决问题。
修改hosts文件:vim
/etc/hosts
192.168.2.175 Master
192.168.2.175 Slave
注:如果是集群搭建的话,可以书写不同的IP地址
c.测试连通性
ping Slave
五 配置Hadoop
a.修改hadoop-env.sh文件,设置java环境
export
JAVA_HOME=/usr/java/jdk1.6.0_31
b.配置core-site.xml
-
<configuration>
-
<property>
-
<name>fs.default.name</name>
-
<value>hdfs://192.168.2.175:9000/</value>
-
默认的namenode的端口为8020
-
</property>
-
<property>
-
<name>hadoop.tmp.dir</name>
-
<value>/home/hadoop/hadoop/tmp</value>
-
</property>
-
</configuration>
c.配置hdfs-site.xml
-
<configuration>
-
<property>
-
<name>dfs.name.dir</name>
-
<value>/home/hadoop/hadoop/hdfs/name</value>
-
</property>
-
<property>
-
<name>dfs.data.dir</name>
-
<value>/home/hadoop/hadoop/hdfs/data</value>
-
</property>
-
<property>
-
<name>dfs.replication</name>
-
<value>1</value>
-
</property>
-
</configuration>
d.配置mapred-site.xml
-
<property> -
<name>mapred.job.tracker</name>
-
<value>http://192.168.2.175:9001</value>
-
</property>
-
<property>
-
<name>mapred.local.dir</name>
-
<value>/home/hadoop/hadoop/mapred/local</value>
-
</property>
-
<property>
-
<name>mapred.system.dir</name>
-
<value>/tmp/hadoop/mapred/system</value>
-
</property>
-
</configuration>
e.配置masters和slaves文件
192.168.2.175
f.配置/etc/profile文件
#
set hadoop environment
export HADOOP_HOME=/home/hadoop/hadoop
export PATH=$PATH :$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_HOME_WARN_SUPPRESS=1
export HADOOP_PID_DIR=$HADOOP_HOME/run/tmp
这样就能直接使用"bin/hadoop"也可以直接使用"hadoop",现在不管哪种情况,hadoop命令都能找见了。我们也没有必要重新在设置hadoop环境变量了,只需要记住执行Hadoop命令时不需要在前面加"bin"就可以了。
d.测试hadoop 安装
hadoop version
六 启动应用
a.格式化hadfs
hadoop namenode -format
b. 启动hadoop
start-all.sh
注:对于集群的环境,在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。
service
iptables stop
c.验证hadoop
用"jps”命令
jps
查看Hadoop集群的状态
hadoop
dfsadmin -report
d.网页查看
可以通过以下链接访问haddop服务了
localhost:50030/
for the Jobtracker
localhost:50070/ for the Namenode
localhost:50060/ for the Tasktracker
知识补充说明
hadoop-env.sh:用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;
core-site.xml: 用于定义系统级别的参数,它作用于全部进程及客户端,如HDFS
URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;
hdfs-site.xml: HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;
mapred-site.xml:mapreduce的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;
masters: hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;
slaves:Hadoop集群的slave(datanode)和tasktracker的主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;
Hadoop 伪分布模式的安装,布布扣,bubuko.com
Hadoop 伪分布模式的安装
原文:http://blog.csdn.net/crazy__programmer/article/details/20714769