设为首页 收藏本站
查看: 1511|回复: 0

[经验分享] Hadoop完全分布式配置

[复制链接]

尚未签到

发表于 2018-10-29 07:57:56 | 显示全部楼层 |阅读模式
  
一、首先说一下,Hadoop有三种运行模式。
  
第一个是独立(或本地)运行模式:无需运行任何守护进程,所有程序都在一个同一个JVM上执行。
  
第二个是伪分布模式:Hadoop守护进程运行在本地机器上,模拟一个小规模的集群。
  
第三个是全分布模式,也就是通常所说的完全分布式模式:Hadoop守护进程运行在一个集群上。
  

  

  
下面简单介绍下完全分布式的配置:
  

  
首先准备三台机器,系统公共配置部分:
  

  
系统信息:
  
[root@hadoop1 ~]# cat /etc/redhat-release
  
CentOS release 6.7 (Final)
  
[centos@hadoop1 ~]$ uname -r
  
2.6.32-573.el6.x86_64
  
[root@hadoop1 ~]# uname -m
  
x86_64
  

  
公共操作用户:centos
  
centos用户在/etc/sudoers中的公共配置:
  
[root@hadoop1 ~]# grep centos /etc/sudoers
  
centos ALL=(ALL) NOPASSWD: ALL
  

  
环境变量如下:
  
[root@hadoop1 ~]# tail -16 /etc/profile
  
#java
  
JAVA_HOME=/home/centos/download/jdk
  
PATH=$JAVA_HOME/bin:$PATH
  
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  
export JAVA_HOME
  
export CLASSPATH
  
#hadoop
  
HADOOP_HOME=/home/centos/download/hadoop
  
PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  
export PATH
  

  
主机IP域名映射如下:
  
[root@hadoop1 ~]# cat /etc/hosts
  
10.0.0.101 hadoop1
  
10.0.0.102 hadoop2
  
10.0.0.103 hadoop3
  

  

  
主节点IP为:
  
[root@hadoop1 ~]# ifconfig | awk -F '[ :]+' 'NR==2{print $4}'
  
10.0.0.101
  
从节点IP分别为:
  
[root@hadoop2 ~]# ifconfig | awk -F '[ :]+' 'NR==2{print $4}'
  
10.0.0.102
  
[root@hadoop3 ~]# ifconfig | awk -F '[ :]+' 'NR==2{print $4}'
  
10.0.0.103
  

  
Java版本
  
[root@hadoop1 ~]# java  -version
  
java version "1.8.0_65"
  
Java(TM) SE Runtime Environment (build1.8.0_65-b17)
  
Java HotSpot(TM) 64-Bit Server VM (build25.65-b01, mixed mode)
  

  
Hadoop版本
  
[root@hadoop1 ~]# hadoop version
  
Hadoop 2.7.3
  
Subversionhttps://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
  
Compiled by root on 2016-08-18T01:41Z
  
Compiled with protoc 2.5.0
  
From source with checksum2e4ce5f957ea4db193bce3734ff29ff4
  
This command was run using/home/centos/download/hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar
  

  

  

  
二、配置ssh
  
首先在三台机器上的家目录分别执行下述生成密钥对脚本,这样的话,三台机器的centos之间就可以免密码登录、免密码传输文件等操作。
  
[centos@hadoop1 ~]$ ll createssh.sh
  
-rwxr-xr-x 1 centos centos 51 May 14 11:05createssh.sh
  
[centos@hadoop1 ~]$ cat createssh.sh
  
#!/bin/sh
  
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  

  
然后在三台机器上的家目录分别执行下述分发公钥
  
[centos@hadoop1 ~]$ ll fen.sh
  
-rwxr-xr-x 1 centos centos 142 May 14 12:14fen.sh
  
[centos@hadoop1 ~]$ cat fen.sh
  
#!/bin/sh
  
ssh-copy-id -i ~/.ssh/id_rsa.pub centos@hadoop1
  
ssh-copy-id -i ~/.ssh/id_rsa.pub centos@hadoop2
  
ssh-copy-id -i ~/.ssh/id_rsa.pub centos@hadoop3
  

  
#上述只是在执行的时候会输入yes和系统用户密码,其他在执行的时候就不会再次输入密码了。执行SSH的目的是,比如在配置好完全分布式的时候,主节点会自动吊起从节点的日志并且往里面写入数据,此时SSH的密钥对就起作用了。
  

  
#经常碰到的坑,要配置三台机器家目录中.ssh的权限为700,而且要配置家目录中.ssh目录中的authorized_keys权限为644.
  
[centos@hadoop1 ~]$ chmod 700 .ssh
  
[centos@hadoop1 ~]$ chmod 644  .ssh/authorized_keys
  

  

  
三、重点的配置文件内容
  

  
#三台机器共同配置
  
[centos@hadoop1 ~]$ grep JAVA_HOME download/hadoop/etc/hadoop/hadoop-env.sh
  
# The only required environment variable isJAVA_HOME.  All others are
  
# set JAVA_HOME in this file, so that it iscorrectly defined on
  
export JAVA_HOME=/home/centos/download/jdk   #JAVA环境变量要在这再配置一下
  

  
[centos@hadoop1 ~]$ cat download/hadoop/etc/hadoop/core-site.xml
  

  

  
      
  
               fs.defaultFS
  
               hdfs://hadoop1
  
      
  

  

  
[centos@hadoop1 ~]$ cat download/hadoop/etc/hadoop/hdfs-site.xml
  

  

  
      
  
               dfs.replication
  
                2#副本数,对应从节点数
  
      
  

  

  
[centos@hadoop1 ~]$ cat download/hadoop/etc/hadoop/mapred-site.xml
  

  

  
      
  
               mapreduce.framework.name
  
                yarn
  
      
  

  

  

  
[centos@hadoop1 ~]$ cat download/hadoop/etc/hadoop/yarn-site.xml
  

  

  
      
  
               yarn.resourcemanager.hostname
  
               hadoop1
  
      
  
      
  
               yarn.nodemanager.aux-services
  
               mapreduce_shuffle
  
      
  

  

  
#注意这里只配置从节点的域名
  
[centos@hadoop1 ~]$ cat download/hadoop/etc/hadoop/slaves
  
hadoop2
  
hadoop3
  

  

  
四、启动hadoop
  

  
#下述命令只在主节点hadoop1中执行!
  
#首先执行格式化命令
  
[centos@hadoop1 ~]$ hadoop namenode -format
  

  
#然后启动hadoop
  
[centos@hadoop1 ~]$ start-all.sh
  

  
#查看启动进程
  
#主节点执行,名称节点只会存在于主节点中,包括文件名称等内容。
  
[centos@hadoop1 ~]$ jps
  
2736 SecondaryNameNode
  
2961 Jps
  
2889 ResourceManager
  
2539 NameNode
  

  
#从节点执行,数据节点只会存在于从节点,是真正存放数据的地方。
  
[centos@hadoop2 ~]$ jps
  
2322 NodeManager
  
2234 DataNode
  
2380 Jps
  

  
[centos@hadoop3 ~]$ jps
  
2481 DataNode
  
2646 Jps
  
2569 NodeManager
  

  

  
#临时文件都生成在了根目录下的/tmp目录下
  
[centos@hadoop1 ~]$ ll /tmp/
  
total 32
  
drwxrwxr-x 3 centos centos 4096 May 1414:05 hadoop-centos
  
-rw-rw-r-- 1 centos centos    5 May 14 14:06 hadoop-centos-namenode.pid
  
-rw-rw-r-- 1 centos centos    5 May 14 14:06hadoop-centos-secondarynamenode.pid
  
drwxr-xr-x 2 centos centos 4096 May 1414:06 hsperfdata_centos
  
drwxrwxr-x 3 centos centos 4096 May 1414:06 Jetty_0_0_0_0_50070_hdfs____w2cu08
  
drwxrwxr-x 3 centos centos 4096 May 1414:06 Jetty_0_0_0_0_50090_secondary____y6aanv
  
drwxrwxr-x 4 centos centos 4096 May 1414:06 Jetty_hadoop1_8088_cluster____.jtly5k
  
-rw-rw-r-- 1 centos centos    5 May 14 14:06yarn-centos-resourcemanager.pid



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-627725-1-1.html 上篇帖子: Hadoop 学习之RPC的使用与实现原理 下篇帖子: 部署Hadoop高性能集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表