您的位置:首页 > 运维架构

hadoop伪分布式集群(单节点与多节点)配置

2017-06-07 16:59 447 查看
1.三个节点的结构

节点类型

IP地址

主机名

后台

主节点

192.168.80.11

master

NameNode,ResourceManager,SecondaryNameNode

从节点

192.168.80.12

Slave1

DataNode,NodeManager

从节点

192.168.80.13

Slave2

DataNode,NodeManager

2.单节点的结构

节点类型

IP地址

主机名

后台

主节点

192.168.80.11

Single

NameNode,ResourceManager,

DataNode,NodeManager    ,

SecondaryNameNode

注意:多节点配置的前提是不同主机名字,相同用户名。

开机模式的设置

1.      centos6

要想修改Linux开机的启动模式(控制台或图形界面等),只需修改/etc/inittab文件。

/etc/inittab文件(部分):

# Default runlevel. The runlevels used byRHS are:

#   0- halt (Do NOT set initdefault to this)

#   1- Single user mode

#   2- Multiuser, without NFS (The same as 3, if you do not have networking)

#   3- Full multiuser mode

#   4- unused

#   5- X11

#   6- reboot (Do NOT set initdefault to this)

#

id:5:initdefault:

要想修改启动级别,将“id:5:initdefault:”这一行的"id:"后的数字(默认为5)改为你要的级别即可。

注意:不要改为0,0表示关机;也不要改为6,否则开机就不停的重启了~三台虚拟机的JDK

2.      centos7

centos仍然只有两种启动模式

multi-user.target: analogous to runlevel3  #命令行模式

graphical.target: analogous to runlevel5   #图形模式

systemctl set-default graphical.target 命令,修改启动模式为模式

同理命令行模式也是如此设置,只不过参数不一致。

一.三台虚拟机的JDK

1.在用户的跟目录创建app和appdata文件夹。

2.在hadoop用户的根目录,Jdk解压,(hadoop用户操作)

tar -zxvf jdk-8u65-linux-x64.tar.gz –C app/

解压完成后,在hadoop用户的根目录有一个jdk1.8.0_65目录

3.配置环境变量,需要修改/etc/profile文件(root用户操作)

切到root用户,输入su命令

vi /etc/profile  进去编辑器后,输入i,进入vi编辑器的插入模式在profile文件最后添加

export JAVA_HOME=/home/hadoop/app/jdk1.8.0_65

export PATH=$JAVA_HOME/bin:$PATH

exportCLASSPATH=.:JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

                   编辑完成后,按下esc退出插入模式

                   输入:,这时在左下角有一个冒号的标识

                   q   退出不保存

                   wq  保存退出

                   q!   强制退出

4.把修改的环境变量生效(hadoop用户操作)

执行source /etc/profile

注意:



.bash_profile在/home/用户名/

http://jingyan.baidu.com/article/0964eca26917b18285f53616.html

二.配置三台机器的主机名和IP地址

vi /etc/sysconfig/network

设置开机启动联网,onboot=yes,否则不能用ssh

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

将网络设置成桥接模式,否则不能用ssh

三.配置三台机器的hosts文件

vi /etc/hosts

内容:

192.168.44.11 master

192.168.44.12 slave1

192.168.44.13 slave2

可以修改master的hosts文件,然后复制到另外了两个机器上:

scp /etc/hosts slave1:/etc/hosts

scp /etc/hosts slave2:/etc/hosts

四.在主节点配置Hadoop

1.在hadoop用户的根目录,解压(hadoop用户操作)

tar -zxvf hadoop-2.6.0.tar.gz –C ./app

解压完成在hadoop用户的根目录下有一个hadoop-2.6.0目录

2.修改配置文件hadoop-2.6.0/etc/hadoop/hadoop-env.sh(hadoop用户操作)

exportJAVA_HOME=/home/hadoop/app/jdk1.8.0_65

3.修改配置文件hadoop-2.6.0/etc/hadoop/core-site.xml,添加(hadoop用户操作)

<property>

  <name>fs.defaultFS</name>

  <value>hdfs://node1:9000</value>

 </property>

 <property>

   <name>io.file.buffer.size</name>

   <value>131072</value>

 </property>

 <property>

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

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

   <description>Abasefor other temporary directories.</description>

 </property>

 

4.      修改配置文件hadoop-2.6.0/etc/hadoop/hdfs-site.xml,添加(hadoop用户操作)

<property>

   <name>dfs.namenode.secondary.http-address</name>

   <value>node1:9001</value>

 </property>

 <property>

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

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

 </property>

 <property>

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

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

 </property>

 <property>

   <name>dfs.replication</name>

   <value>2</value>

 </property>

 

5.修改修改配置文件hadoop-2.6.0/etc/hadoop/mapred-site.xml(hadoop用户操作)

这个文件没有,需要复制一份

cp etc/hadoop/mapred-site.xml.templateetc/hadoop/mapred-site.xml

添加

<property>

   <name>mapreduce.framework.name</name>

   <value>yarn</value>

 </property>

 <property>

   <name>mapreduce.jobhistory.address</name>

   <value>node1:10020</value>

 </property>

 <property>

   <name>mapreduce.jobhistory.webapp.address</name>

   <value>node1:19888</value>

 </property>

 

6.修改配置文件hadoop-2.6.0/etc/hadoop/yarn-site.xml,添加(hadoop用户操作)

<property>

   <name>yarn.nodemanager.aux-services</name>

   <value>mapreduce_shuffle</value>

 </property>
 <property>

   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

   <value>org.apache.hadoop.mapred.ShuffleHandler</value>

 </property>

 <property>

   <name>yarn.resourcemanager.address</name>

   <value>node1:8032</value>

 </property>

 <property>

   <name>yarn.resourcemanager.scheduler.address</name>

   <value>node1:8030</value>

 </property>

 <property>

   <name>yarn.resourcemanager.resource-tracker.address</name>

   <value>node1:8035</value>

 </property>

 <property>

   <name>yarn.resourcemanager.admin.address</name>

   <value>node1:8033</value>

 </property>

 <property>

   <name>yarn.resourcemanager.webapp.address</name>

   <value>node1:8088</value>

 </property>

 

7.修改配置文件hadoop-2.6.0/etc/hadoop/slaves,添加(hadoop用户操作)

slave1

slave2

五.把Hadoop复制到其他两个节点

scp –r app/hadoop-2.6.0 slave1:~/app/

scp –r app/hadoop-2.6.0 slave2:~/app/

六.配置SSH互信

多节点的互信配置

1.      生成公钥和私钥

在命令行执行ssh-keygen,然后回车,然后会提示输入内容,什么都不用写,一路回车

在hadoop用户根目录下,有一个.ssh目录

id_rsa       私钥

id_rsa.pub                 公钥

known_hosts   通过SSH链接到本主机,都会在这里有记录

2.      把公钥给信任的主机(本机)

在命令行输入ssh-copy-id 主机名称

ssh-copy-id hadoop

复制的过程中需要输入信任主机的密码

3.      验证,在命令行输入:ssh信任主机名称

ssh hadoop

如果没有提示输入密码,则配置成功

         node1和slave1互相配置互信     

         node1和slave2互相配置互信

本地(单节点)互信的配置

1.      ssh-keygen-t dsa -P '' -f ~/.ssh/id_dsa

2.      2.cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys (root用户操作)

这两步可以实现,本地 ssh localhost配置

七.集群格式化及启动

bin/hdfs namenode –format

格式化只能操作一次并且在主节点格式化,如果需要再次格式化,需要把appdata/hadoop目录清空

sbin/start-all.sh

启动之后,输入jps查看启动的节点服务是否全部开启。

NameNode、ResourceManager、DataNode、NodeManager和SecondaryNameNode。

中间会出现几个节点启动不了,此时可以尝试一下sbin/stop-all.sh关闭服务,重新启动一下,如果上面的服务全部启动则进行测试,否则查看日志进行改错。

注意:hadoop namenode -recover 解决java.io.IOException:There appears to be a gap in the edit log. We expected txid 1, but got txid 73.

八.测试

把一个文件放入HDFS,如果没有报错,则成功

hadoop端口号50070

注意:防火墙必须关闭,否则访问不了50070这个端口。为了防止下次开机不会出现这种情况,这里将防火墙设置为开机不会启动。

1.centos 6



把三台虚拟机的防火墙关闭:sudo service iptables stop

2.centos 7

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop 分布式 集群