Hadoop全分布模式环境搭建[详细]

Hadoop全分布模式环境搭建

1.      准备三台PC,一个主节点,两个从节点

master(NameNode、SecondaryNameNode、JobTracker、DataNode、TaskTracker)

slave1(DataNode、TaskTracker)

slave2(DataNode、TaskTracker)

2.      修改主机名

vim /etc/hostname(分别给每一台主机指定主机名)

3.      修改主机名到IP的映射

vim /etc/hosts(分别给每一台主机指定主机名到IP地址的映射)

192.168.1.200 master

192.168.1.201 slave1

192.168.1.202 slave2

4.      新建用户和组

三台PC都要新建用户和组,新建的用户专门用来运行Hadoop,这样Hadoop就跟其它程序有了一个隔离,新增的用户的权限相对也有限,可以设置hadoop用户专用的环境变量,这样可以把配置局限到用户范围内,不会对其它用户造成干扰。

addgroup hadoop

adduser--ingroup hadoop hadoop

5.      配置SSH,使得master可以免登陆登录slave节点:

在master上面执行

ssh-keygen  -t  rsa(密码为空,路径默认)

该命令会在用户主目录下创建 .ssh 目录,并在其中创建两个文件:id_rsa 私钥文件,是基于RSA 算法创建,该私钥文件要妥善保管,不要泄漏。id_rsa.pub 公钥文件,和 id_rsa 文件是一对,该文件作为公钥文件,可以公开。

把公钥追加到本机的authorized_keys文件中

 cat  .ssh/id_rsa.pub  >>  .ssh/authorized_keys

把公钥追加到其他主机的authorized_keys文件中

ssh-copy-id  -i  .ssh/id_rsa.pub  hadoop@slave1

ssh-copy-id  -i .ssh/id_rsa.pub  hadoop@slave2

6.      测试是否可以在master上面通过ssh免密码登录本机、slave1和slave2

ssh master

ssh slave1

sshslave2

7.      下载hadoop并解压到/home/hadoop/

下载地址(选择需要的版本):http://archive.apache.org/dist/hadoop/core/

解压:tar -xzvf hadoop-1.2.1.tar.gz

8.      在/home/hadoop/.bashrc 中追加:

export PATH=/home/hadoop/hadoop-1.1.2/bin:$PATH

9.      配置Hadoop运行参数,conf目录

  masters

  把localhost替换为 :master

  slaves

  删除localhost,加入三行:

  master

  slave1

  slave2

  hadoop-env.sh

  任意位置加上:export JAVA_HOME=/usr/local/java/jdk1.7.0_25

  core-site.xml

  <configuration>

  <!-- 指定 NameNode 的 IP 地址和端口号 -->

  <property>

   <name>fs.default.name</name>

   <value>hdfs://master:9000</value>

  </property>

  <!-- 指定Hadoop的临时文件目录 -->

  <property>

  <name>hadoop.tmp.dir</name>

  <value>/home/hadoop/tmp</value>

  </property>

</configuration>

  hdfs-site.xml

  <configuration>

  <!-- NameNode的元数据,hdfs会把元数据冗余复制到这个目录下 -->

  <property>

  <name>dfs.name.dir</name>

  <value>/home/hadoop/dfs/filesystem/name</value>

  </property>

  <!-- NameNode的操作日志 -->

  <!-- 建议把dfs.name.dir和dfs.name.edits.dir配置成相同的值,

  以来提高NameNode的效率 -->

  <property>

  <name>dfs.edits.dir</name>

  <value>/home/hadoop/dfs/filesystem/edits</value>

  </property>

  <!-- DataNode的数据目录,hdfs会把数据存在这个目录下 -->

  <property>

  <name>dfs.data.dir</name>

  <value>/home/hadoop/dfs/filesystem/data</value>

  </property>

  <!-- 数据备份的副本数 -->

  <property>

  <name>dfs.replication</name>

  <value>1</value>

  </property>

</configuration>

  mapred-site.xml

  <configuration>

  <!-- 指定 JobTracker 的 IP 地址和端口号 -->

  <property>

  <name>mapred.job.tracker</name>

  <value>master:9001</value>

  </property>

  <!-- 每一个TaskTracker同时运行的map任务数 -->

  <property>

  <name>mapred.tasktracker.map.tasks.maximum</name>

  <value>4</value>

  </property>

  <!-- 每一个TaskTracker同时运行的reduce任务数 -->

  <!-- 将其设置为节点的核数目或者数目减1比较合适,此时的运行效率最高。 -->

  <property>

  <name>mapred.tasktracker.reduce.tasks.maximum</name>

  <value>4</value>

  </property>

  <!-- 在作业运行期间存储共享文件的目录 -->

  <property>

  <name>mapred.system.dir</name>

  <value>/home/hadoop/mapreduce/system</value>

  </property>

  <!-- MapReduce产生的临时数据(map输出数据)存放目录 -->

  <property>

  <name>mapred.local.dir</name>

  <value>/home/hadoop/mapreduce/local</value>

  </property>

</configuration>

10.  复制Hadoop文件到其他节点

 scp -r/home/hadoop/hadoop-1.2.1  hadoop@slave1:/home/hadoop/hadoop-1.2.1

 scp -r/home/hadoop/hadoop-1.2.1 hadoop@slave2:/home/hadoop/hadoop-1.2.1

11.  格式化名称节点并启动集群

hadoop namenode –format

12.  启动集群并查看WEB管理界面

 start-all.sh

 访问 http://localhost:50030 可以查看 JobTracker 的运行状态

 访问 http://localhost:50060 可以查看 TaskTracker 的运行状态

 访问 http://localhost:50070 可以查看 NameNode 以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及 log 等

13.  停止集群

stop-all.sh停止集群

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值