四、单机伪分布式部署(简单化conf)
我们首先拿namenode0进行伪分布式部署(conf简单配置)
1、实现SSH无密码登陆
1.1 实现无密码本机登录namenode0:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
直接回车,完成后会在 ~/.ssh/ 生成两个文件: id_dsa 和 id_dsa.pub 。这两个是成对出现,类似钥匙和锁。再把 id_dsa.pub 追加到授权 key 里面 ( 当前并没有 authorized_key s文件 ) :
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
还是要输入密码,一般这种情况都是因为目录或文件的权限问题,
sudo tail /var/log/secure -n 20
看看系统日志,确实是权限问题, 、ok了,.ssh下的authorized_keys权限为600,其父目录和祖父目录应为755,
$chmod 755 .
$chmod 755 ~/.ssh
$chmod 600 ~/.ssh/authorized_keys
2、下载Hadoop-1.0.4.tar.gz 下载hadoop-1.0.4.bin.tar.gz也可以。
3,修改hadoop配置文件,指定JDk安装路径
vi conf/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.6.0_21
6,修改Hadoop核心配置文件core-site.xml,配置HDFS的地址和端口号
vi conf/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
7,修改Hadoop中HDFS的配置,修改replication
vi conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
8,修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口
vi conf/mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
9,格式化Hadoop的文件系统HDFS
bin/hadoop namenode -format
10,启动hadoop
bin/start-all.sh
最后,验证Hadoop是否安装成功。打开浏览器,分别输入一下网址:
:50030 (MapReduce的Web页面)
:50070 (HDfS的web页面)
如果都能查看,说明安装成功。
五、分布式集群配置
1,准备3个服务器,分别为
机器名 IP地址 作用
namenode0 192.168.1.11 NameNode,JobTracker(也可作为DataNode,TaskTracker,但没这样做)
datanode00 192.168.1.13 DataNode,TaskTracker
datanode01 192.168.1.14 DataNode,TaskTracker
注:3台主机必须使用相同的用户名运行hadoop
1.2 实现无密码登录其他机器
拷贝id_dsa.pub 文件到其他机器,scp是远程copy命令,192.168.1.11上的id_dsa.pub已经copy到其他机器上了,同样的,将每台机器上的id_dsa.pub copy到其他机器上。 登录其他机器 ,执行 cat 1x.pub >> .ssh/authorized_keys ok,都配通了,ssh的无密码登陆配置,容易出现很多问题,配置时一定要注意!!!
无密码登录是为了在namenode启动时能登录从而启动datanode,所以只需要master->slave拷贝就行了。而此处是互相拷贝(datanode不过不需要登录namenode就不需要copy了)。如下图
对namenode生成key,同样其它机器也类似,之后把1.11的copy到其它机器上,
同样其它机器生成后也需要scp到1.11上,如下的是把datanode00的copy到其它机器上
如下是namenode0和datanode00执行 cat 1x.pub >> .ssh/authorized_keys
进入user/123456 账户分别在这两个主机上,按照单机版的安装方法,安装hadoop,不过为了可以区别开,下面的流程是先对namenode0进行配置,然后copy 拷贝配置后的hadoop-1.0.4到其它机器上并修改conf中的文件。
2,修改/usr/local目录的权限,将hadoop-1.0.4的tar包copy到/usr/local/下
修改 权限sudo chmod 777 /usr/local/
如果从datanode00 copy到datanode01上,则需要先[user@datanode01 .ssh]$ sudo chmod 777 /usr/local/
才能[user@datanode00 local]$ scp -r /usr/local/hadoop-1.0.4 datanode01:/usr/local
不然会提示文件权限,不允许访问