Hadoop的完全分布模式配置——以普通用户'hadoop'启动

最近尝试了以普通用户权限配置Hadoop,现已配置成功。Hadoop版本为1.0.3。

完全分布的结构如下:

1台master,2台slave;

ip:

192.168.1.10 master

192.168.1.11 slave01

192.168.1.12 slave02

其中用户名为hadoop,添加用户命令如下:

$sudo adduser hadoop

Hadoop安装路径为/home/hadoop/workplace/hadoop-1.0.3;

jdk安装路径为/home/hadoop/software/java/jdk1.7;

HDFS的路径为/home/hadoop/workplace/hdfs。

配置过程如下:

(1)修改本地主机的名称,修改在/etc文件夹下的hostsname文件,这里主节点叫master,两个从节点分别叫slave01,slave02

 修改每台机器下/etc文件夹下的hosts文件

127.0.0.1 localhost
192.168.0.10 master
192.168.0.11 slave01
192.168.0.12 slave02

(2)SSH配置——实现master与slaves之间的免密码通信

如果本机上未安装ssh服务,需要安装,测试命令如下:

$ssh localhost

$ssh slave01

$ssh slave02

若出现错误:

ssh: connect to host xxx port 22: Connection refused

(其中xxx为主机ip名)

则输入ssh安装命令:

$sudo apt-get install openssh-server

启动ssh服务后,在/home/hadoop文件夹下创建文件.ssh:

$mkdir .ssh

在namenode机器的/home/hadoop文件夹下生成密钥对,执行:
$ ssh-keygen -t rsa
然后一直按Enter键,就会按照默认选项生成密钥对保存在/home/hadoop/.ssh/id_rsa文件中。


继续执行如下命令,把密钥传递给每个datanode节点:
$ cd ~/.ssh  
$ cp id_rsa.pub authorized_keys
$ scp authorized_keys slave01:/home/hadoop/.ssh/authorized_keys  
$ scp authorized_keys slave02:/home/hadoop/.ssh/authorized_keys


(3)namenode机器上JDK和Hadoop的安装配置
打开/etc下的profile文件,并在结尾处加下面几行
export JAVA_HOME=/home/hadoop/software/jdk1.7
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export HADOOP_HOME=/home/hadoop/workplace/hadoop-1.0.3
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
然后使文件生效
$ source /etc/profile


在workplace文件夹下需要建立几个文件夹,如下:
$ mkdir hdfs
$ mkdir hdfs/name
$ mkdir hdfs/data

Hadoop的主要配置:

进入hadoop-1.0.3/conf文件夹下,

修改hadoop-env.sh,加入如下语句,使得hadoop能够找到java的路径:
export JAVA_HOME=/home/hadoop/software/java/jdk1.7


修改core-site.xml,如下:
<configuration>  
        <property>  
                <name>fs.default.name</name>  
                <value>hdfs://master:9000</value>  
        </property>  
</configuration>


修改hdfs-site.xml,如下:
<configuration>
        <property>
                <name>dfs.name.dir</name>
                <value>/home/hadoop/workplace/hdfs/name</value>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/home/hadoop/workplace/hdfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
</configuration>


修改mapred-site.xml,如下:
<configuration>  
        <property>  
                <name>mapred.job.tracker</name>  
                <value>master:9001</value>  
        </property>  
</configuration>

修改masters和slaves文件:
masters文件里写入作为namenode节点机器的名称,我们这里是:
master
slaves里写入作为datanode节点的机器名,这里是:
slave01
slave02


(4)datanode机器上的配置
将namenode机器下的jdk文件夹,hadoop-1.0.3文件夹传送到slave01和slave02上,其中datanode的安装路径与namenode的路径相同:使用命令:

$scp -r /home/hadoop/software/jave/jdk1.7 slave01:/home/hadoop/software/jave/

$scp -r /home/hadoop/software/jave/jdk1.7 slave02:/home/hadoop/software/jave/

$scp -r /home/hadoop/workplace/hadoop-1.0.3 slave01:/home/hadoop/workplace/

$scp -r /home/hadoop/workplace/hadoop-1.0.3 slave02:/home/hadoop/workplace/

然后修改datanode上的/etc/profile文件,其配置与namenode的配置相同。





(5)到此基本配置已经完成,在namenode机器上cd到hadoop-1.0.3文件夹下,格式化分布式文件系统:
$ bin/hadoop namenode -format  
下面接着在namenode端启动hadoop进程,cd到~/workplace/hadoop-1.0.3,然后键入命令:
$ bin/start-all.sh

如果没有其它差错的话,hadoop可以正常启动,并能够看到如下结果:
在namenode端用jps命令查看启动情况,如下:
hadoop@master:~/workplace/hadoop-1.0.3$ jps  
xxxx Jps  
xxxx Namenode  
xxxx Secondarynamenode  
xxxx JobTracker  


在datanode端用jps查看启动情况,如下:
hadoop@slave01:~/workplace/hadoop-1.0.3$ jps  
xxxx Jps  
xxxx DataNode  
xxxx TaskTracker


hadoop@slave02:~/workplace/hadoop-1.0.3$ jps  
xxxx Jps  
xxxx DataNode  
xxxx TaskTracker

然后可以通过如下地址来查看集群运行状况:
http://master:50030 
http://master:50070  


为方便配置,大家可以到hadoop-1.0.3下载


本人也是刚刚接触hadoop,还有许多不懂的方面,希望大家可以交流,共同促进。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值