文档章节

hadoop完全分布式

脸大的都是胖纸
 脸大的都是胖纸
发布于 2015/04/22 11:37
字数 1457
阅读 17
收藏 1

本文是将三台电脑用路由器搭建本地局域网,系统为centos6.5,已经实验验证,搭建成功。

一、设置静态IP&修改主机名&关闭防火墙(all-root)(对三台电脑都需要进行操作)

0.将三台电脑安装centos6.5系统

1.设置静态ip(便于机器之间的通信,防止路由器电脑重启后,ip变化,导致不能通信)

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
BROADCAST=192.168.0.255 #对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址

 

在文件最后面添加一下代码

IPADDR=192.168.80.100

NETMASK=255.255.255.0

NETWORK=192.168.0.0
里面的IPADDR地址设置你想要的,我这里是192.168.80.100。
设置好后,需要让IP地址生效,运行下面命令:

service network restart Shutting down interface

然后运行ifconfig就可以看到静态ip是否生效。

2.修改主机名(每台电脑都要修改,建议使用hadoop100,hadoop101,hadoop102,对应于ip地址最后面三位数)

vi /etc/sysconfig/network 

hostname=hadoop100

重启一下网络service network restart

验证reboot -h now 立刻重启  然后hostname

3.关闭防火墙 

关闭已经启动的防火墙: service iptables stop (只能关闭当前)

验证:service iptables status

Firewall is not running

关闭防火墙开机自动启动功能:

(1). 先查看 查看: chkconfig --list |grep iptables
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off

(2). 关闭 chkconfig  iptables off

验证:chkconfig --list |grep iptables

4.建立hadoop运行帐号

最好不要使用root操作hadoop,root是超级管理员权限,不推荐各个机器之间使用root访问,

useradd hadoop 增加用户
passwd hadoop 设置密码

二、配置hosts文件(只需要对主机192.168.80.100(hadoop100)进行操作,然后通过scp命令将这些配置分发给其他电脑即可)

操作192.168.80.100机器

vi /etc/hosts   添加下面内容

192.168.80.100 hadoop100
192.168.80.101 hadoop101
192.168.80.102 hadoop102

验证:ping  hadoop100
ping  hadoop101
ping  hadoop102

 三、为hadoop账户配置ssh免密码连入(只需对hadoop100操作)

 操作hadoop100机器

① ssh-keygen -t rsa会在~/.ssh/文件夹下生成id_rsa  id_rsa.pub两个文件

② 根据ip分别执行
cp ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.100
cp ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.101
cp ~/.ssh/id_rsa.pub ~/.ssh/id_rsa.pub.102
scp -r ~/.ssh/id_rsa.pub.101   hadoop@hadoop100:/home/hadoop/.ssh
scp -r ~/.ssh/id_rsa.pub.102   hadoop@hadoop100:/home/hadoop/.ssh
 
④ 把所有机器的公钥,放在hadoop100的一个文件中(在hadoop100的hadoop用户下操作)
 cat ~/.ssh/id_rsa.pub.100 >> ~/.ssh/authorized_keys
 cat ~/.ssh/id_rsa.pub.101 >> ~/.ssh/authorized_keys
 cat ~/.ssh/id_rsa.pub.102 >> ~/.ssh/authorized_keys
 
验证 ssh hadoop101  发现无效,提示还是需要密码。
 
⑤ 修改authorized_keys的权限, 组用户不能有 写(W)权限, 不然ssh 由于安全问题不生效
authorized_keys 权限改为 644 就OK 
 
命令  chmod g-w authorized_keys
 
然后分发给 101和102
scp -r ~/.ssh/authorized_keys   hadoop@hadoop101:/home/hadoop/.ssh
scp -r ~/.ssh/authorized_keys   hadoop@hadoop102:/home/hadoop/.ssh
验证: ssh hadoop101 ...
然后神奇的事情发生了。 3台机器彼此之间可以互联。
 
四、下载并解压jdk(只需对hadoop100操作)
使用root用户进行操作,把jdk解压到/usr/local/ 文件夹中。

[root@hadoop100 local]#  cd /usr/local

[root@hadoop100 local]#  ./jdk-6u30-linux-x64.bin解压jdk后,生成jdk1.6.0_30文件夹

配置环境变量
[root@hadoop100 local]# vi /etc/profile在最后面加上下面两行
export JAVA_HOME=/usr/local/jdk1.6.0_30
export PATH=.:$JAVA_HOME/bin:$PATH
保存退出
[root@hadoop100 local]# source /etc/profile使新修改的环境变量生效。
 
验证: java -version
五、下载并解压hadoop安装包(仅对hadoop100操作)
 
5.1解压hadoop并重命名
 
使用root用户进行以下操作
tar -zxvf /usr/local/hadoop-1.1.2.tar.gz  
解压后生成文件夹hadoop-1.1.2。
重命名   mv hadoop-1.1.2 hadoop
 
5.2修改权限,使得hadoop用户可以操作hadoop文件夹
 
chown -R hadoop /usr/local/hadoop/
chgrp -R hadoop /usr/local/hadoop/
 
5.3设置hadoop环境变量
 
vi /etc/profile

修改为
export JAVA_HOME=/usr/local/jdk1.6.0_30
export HADOOP_HOME=/usr/local/hadoop

export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
保存退出
source /etc/profile
 
验证: hadoop
 
六、设置hadoop参数
进入 usr/local/hadoop/conf 文件夹,即可看到以下文件
6.1配置hadoop-env.sh
 
找到export JAVA_HOME这一行,去除前面的#号注释符。
修改 export JAVA_HOME=/usr/local/jdk1.6.0_30
 
6.2配置core-site.xml
 
<configuration>
    <property>
<name>fs.default.name</name>
<value>hdfs://hadoop100:9000</value>
<description>change your own hostname</description>
    </property>
    <property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
    </property> 
</configuration>
 
6.3配置hdfs-site.xml
 
<configuration>
   <property>
<name>dfs.replication</name>
<value>2</value>
   </property>
</configuration>
 
6.4配置mapred-site.xml
 
<configuration>
    <property>
<name>mapred.job.tracker</name>
<value>hadoop100:9001</value>
<description>change your own hostname</description>
    </property>
</configuration>
 
6.5配置masters文件
 
将masters里的localhost改成hadoop100
 
6.6配置slaves文件
 
将slaves里的localhost改成
hadoop101
hadoop102
 
七、向其他机器复制jdk以及hadoop和一些配置
 
7.1分发hosts到其他机器(root用户)
 
scp -r /etc/hosts root@hadoop101:/etc/
scp -r /etc/hosts root@hadoop102:/etc/
 
7.2 分发java(root用户)
 
scp -r /usr/local/jdk1.6.0_30 root@hadoop101:/usr/local/
scp -r /usr/local/jdk1.6.0_30 root@hadoop102:/usr/local/
 
7.3分发环境变量/etc/profile(root用户)
 
scp -r /etc/profile root@hadoop101:/etc/
scp -r /etc/profile root@hadoop102:/etc/
 
分别通过ssh远程登录其他电脑
执行source /etc/profile 
分别验证: java -version
ping hadoop101
ping hadoop100
 
7.4分发hadoop(root用户)
 
scp -r /usr/local/hadoop/ root@hadoop101:/usr/local/hadoop/
scp -r /usr/local/hadoop/ root@hadoop102:/usr/local/hadoop/
再通过ssh远程登录其他电脑修改hadoop权限,如5.2所示。
再分别验证:hadoop
 
八、格式化hdfs
在hadoop100,hadoop101, hadoop102的hadoop用户下
执行命令 hadoop namenode -format 
 
九、启动hadoop
在hadoop100 上执行 start-all.sh
用jps检验
hadoop100上有

32387 Jps
32283 JobTracker
32198 SecondaryNameNode
32021 NameNode

hadoop101和hadoop102上有

30770 TaskTracker
30866 Jps
30666 DataNode

说明运行成功,。,这时你可以运行个wordcount这个小例子体验一下、。

本文转载自:

共有 人打赏支持
脸大的都是胖纸
粉丝 46
博文 53
码字总数 32844
作品 0
深圳
其他
Hadoop手把手逐级搭建,从单机伪分布到高可用+联邦(2)Hadoop完全分布式(full)

第二阶段: Hadoop完全分布式(full) 0. 步骤概述 1. 克隆4台虚拟机 1.1 使用hadoop0克隆4台虚拟机hadoop1,hadoop2,hadoop3,hadoop4 1.2生成新的mac地址 1.3 修改主机名 1.4 修改hadoop1的IP地...

bigablecat
2017/12/27
0
0
hadoop本地(独立)模式-安装

本人博客开始迁移,博客整个架构自己搭建及编码http://www.cookqq.com/listBlog.action 本地(独立)模式 Hadoop的默认配置即为本地模式,此时Hadoop使用本地文件系统而非分布式文件系统,而且...

cookqq
2013/04/11
0
0
Hadoop单机模式部署

一、Hadoop部署模式 单机模式:默认情况下运行为一个单独机器上的独立Java进程,主要用于调试环境 伪分布模式:在单个机器上模拟成分布式多节点环境,每一个Hadoop守护进程都作为一个独立的J...

结束的伤感
2016/04/20
0
0
完全分布式(四)Sqoop 安装部署及操作示例

本次采用完全分布式系列的hadoop集群,安装配置过程详细参见 完全分布式集群(二)hadoop2.6.5安装部署 Hive在分布式集群上的部署配置参见 完全分布式集群(三)hive-2.1.1安装部署 检查本地...

PeakFang-BOK
10/12
0
0
Hadoop新手学习指导

对于我们新手入门学习hadoop大数据存储的朋友来说,首先了解一下云计算和云计算技术是有必要的。下面先是介绍云计算和云计算技术的: 云计算,是一种基于互联网的计算方式,通过这种方式,共...

一枚Sir
2014/08/07
87
0

没有更多内容

加载失败,请刷新页面

加载更多

String ,  StringBuffer ,  StringBuilder的区别

String , StringBuffer , StringBuilder的区别 String 首先,String 是用来表示一个字符串常量的,它是一个不可变对象,意味着,一旦我们创建了某个字符串之后,就不能再改变它的值了,我们可...

tsmyk0715
51分钟前
2
0
区块链100讲:UTXO 和 Account 模型对比

在当前区块链世界中,主要有两种记录保存方式,UTXO 模式(Unspent Transaction Output) 和 Account 模式。Bitcoin 采用的是 UTXO 模型,Ethereum 采用的 Account 模型,同样 CITA 也采用了 ...

HiBlock
53分钟前
1
0
Vue中路由管理器Vue Router使用介绍(三)

一、路由定义添加动态参数定义 1.路由定义项,使用:xx 方式 定义动态参数 { path:'/user/:id/:name', name:'user', component:()=>import('./views/User.vue') ...

tianma3798
54分钟前
1
0
从ibdata文件恢复mysql数据

DROP TABLE 恢复【一】 Recover InnoDB dictionary Percona Data Recovery Tool 单表恢复

IT--小哥
57分钟前
1
0
常见设计模式UML图

常见设计模式UML图 本文主要总结常见的设计模式的UML图,方便查阅和思考。 创建型模式 简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和单例模式,这五种设计模式主要处理对象的创建...

陶小陶
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部