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

[经验分享] hadoop1.2.1集群安装过程详解

[复制链接]

尚未签到

发表于 2018-10-31 12:59:40 | 显示全部楼层 |阅读模式
  hadoop集群安装过程详解
  一,环境:
  1,主机规划:
  集群中包括4个节点:1个Master,2个Salve,节点之间局域网连接,可以相互ping通。
  机器名称
  IP地址
  hadoop01
  192.168.0.31
  hadoop02
  192.168.0.32
  hadoop03
  192.168.0.33
  三个节点上均是CentOS6.3 x86_64系统,并且有一个相同的用户hadoop。hadoop01做为master配置NameNode和JobTracker的角色,负责总管分布式数据和分解任务的执行;另外两台配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行。安装目录统一为/usr/local下
  2,软件版本:
  hadoop-1.2.1.tar.gz,jdk-7u25-linux-x64.rpm
  二,准备工作,三台机器都需要做 ,将三台机器selinux,iptables停用。
  1,安装jdk
  [root@hadoop01 ~]# rpm -ivh jdk-7u25-linux-x64.rpm
  [root@hadoop01 ~]# cd /usr/java/
  [root@hadoop01 java]# ls
  default jdk1.7.0_25 latest
  [root@hadoop01 java]# ln -s jdk1.7.0_25 jdk
  [root@hadoop01 java]# vim /etc/profile
DSC0000.png

  [root@hadoop01 java]# source /etc/profile 让其java命令立即生效
  [root@hadoop01 java]# java 执行java命令,如果能正常执行就表示java安装完成
  2,添加一个hadoop用户,用来运行hadoop集群
DSC0001.png

  3,做三台机器之间做双机互信,原因master通过远程启动datanode进程和tasktracker进程,如果不做双机互信,会导致每次启动集群服务都会需要密码
  [root@hadoop01 ~]# vim /etc/hosts
DSC0002.png

  将hosts文件分别复制到另外两台。
  4,切换到hadoop用户,对其用做双机互信,先在三台机器先执行ssh-keygen生成公钥与私钥。
DSC0003.png

  将公钥复制到别的机器,需要对hadoop01,hadoop03,都做相同的动作。
DSC0004.png

  [hadoop@hadoop01 ~]$ ssh-copy-id -i hadoop03
  [hadoop@hadoop01 ~]$ ssh-copy-id -i hadoop01
  5,同步时间,三台机器启用ntpd服务,另外两台执行相同的操作
  [root@hadoop01 ~]# crontab -e
  */5 * * * * /usr/sbin/ntpdate ntp.api.bz &> /dev/null
  三,配置master,也就hadoop01
  [root@hadoop01 ~]# tar xf hadoop-1.2.1.tar.gz -C /usr/local/
  [root@hadoop01 ~]# chown -R hadoop:hadoop /usr/local/hadoop-1.2.1
  [root@hadoop01 ~]# su - hadoop
  [hadoop@hadoop01 ~]$ cd /usr/local/hadoop-1.2.1/
  (1)Hadoop的配置文件都存储在conf下,配置文件解释
  hadoop-env.sh:用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;
  core-site.xml: 用于定义系统级别的参数,它作用于全部进程及客户端,如HDFS URL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;
  hdfs-site.xml: HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;
  mapred-site.xml:mapreduce的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;
  masters: hadoop的master,secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;
  slaves:Hadoop集群的slave(datanode)和tasktracker的主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;
  Hadoop-metrics2.properties:控制metrics在hadoop上如何发布属性
  Log4j.properties:系统日志文件、namenode审计日志、tarsktracker子进程的任务日志属性
  (2)修改hadoop-env.sh
  [hadoop@hadoop01 hadoop-1.2.1]$ vim conf/hadoop-env.sh
DSC0005.png

  (3)修改core-site.xml
  [hadoop@hadoop01 hadoop-1.2.1]$ vim conf/core-site.xml
DSC0006.png

  hadoop.tmp.dir属性用于定义Hadoop的临时目录,其默认为/tmp/hadoop-${username}。HDFS进程的许多目录默认都在此目录中,/hadoop/tmp目录,需要注意的是,要保证运行Hadoop进程的用户对其具有全部访问权限。
  fs.default.name属性用于定义HDFS的名称节点和其默认的文件系统,其值是一个URI,即NameNode的RPC服务器监听的地址(可以是主机名)和端口(默认为8020)。其默认值为file:///,即本地文件系统。
  (4)修改hdfs-site.xml文件
  [hadoop@hadoop01 hadoop-1.2.1]$ vim conf/hdfs-site.xml
DSC0007.png

  dfs.name.dir属性定义的HDFS元数据持久存储路径,默认为${hadoop.tmp.dir}/dfs/name
  dfs.replication属性定义保存副本的数量,默认是保存3份,由于这里只有两台slave。所以设置2。
  (5)修改mapred-site.xml文件
  [hadoop@hadoop01 hadoop-1.2.1]$ vim conf/mapred-site.xml
DSC0008.png

  (6)编辑masters文件
  masters用于指定,辅助名称节点(SecondaryNameNode)的主机名或主机地址
  [hadoop@hadoop01 hadoop-1.2.1]$ vim conf/masters
DSC0009.png

  (7)编辑slaves文件,这个文件只需在master主机上编辑就行
  用于指定各从服务器(TaskTracker或DataNode)的主机名或主机地址
DSC00010.png

  在三台机器上分别创建两个目录:
  [root@hadoop01 local]# mkdir -p /hadoop/data
  [root@hadoop01 local]# mkdir -p /hadoop/tmp
  [root@hadoop01 local]# chown -R hadoop:hadoop /hadoop/
  [root@hadoop02 local]# mkdir -p /hadoop/data
  [root@hadoop02 local]# mkdir -p /hadoop/tmp
  [root@hadoop02 local]# chown -R hadoop:hadoop /hadoop/
  [root@hadoop03 local]# mkdir -p /hadoop/data
  [root@hadoop03 local]# mkdir -p /hadoop/tmp
  [root@hadoop03 local]# chown -R hadoop:hadoop /hadoop/
  (8)配置slave:将配置的hadoop整个目录复制到hadoop02,haoop03
  [root@hadoop01 ~]# scp -rp /usr/local/hadoop-1.2.1 hadoop02:/usr/local/
  [root@hadoop01 ~]# scp -rp /usr/local/hadoop-1.2.1 hadoop03:/usr/local/
  修改权限:
  [root@hadoop02 ~]# chown -R hadoop:hadoop /usr/local/hadoop-1.2.1/
  [root@hadoop03 ~]# chown -R hadoop:hadoop /usr/local/hadoop-1.2.1/
  四,启动集群:
  1、格式化名称节点
  与普通文件系统一样,HDFS文件系统必须要先格式化,创建元数据数据结构以后才能使用。
  [hadoop@hadoop01 hadoop-1.2.1]$ bin/hadoop namenode -format
DSC00011.png

  如果格式化出错,一般会提示错误,就像下面,已经在提示哪个文件,第几行,根据提示检查即可。
DSC00012.png

  [hadoop@hadoop01 ~]$ bin/start-all.sh
DSC00013.png

  [hadoop@hadoop01 ~]$ jps 查看进程是否起来。secondarynamenode,nomenode,jobtracker三个进程必须都有,才正常
  8549 SecondaryNameNode
  8409 NameNode
  8611 JobTracker
  8986 Jps
  或者这种方式查看集群是否正常
  [hadoop@hadoop01 hadoop-1.2.1]$ bin/hadoop dfsadmin -report
  Safe mode is ON
  Configured Capacity: 37073182720 (34.53 GB)
  Present Capacity: 32421658624 (30.2 GB)
  DFS Remaining: 32421576704 (30.19 GB)
  DFS Used: 81920 (80 KB)
  DFS Used%: 0%
  Under replicated blocks: 0
  Blocks with corrupt replicas: 0
  Missing blocks: 0
  ------------------------------------------------
  Datanodes available: 2 (2 total, 0 dead)
  Name: 192.168.0.33:50010
  Decommission Status : Normal
  Configured Capacity: 18536591360 (17.26 GB)
  DFS Used: 40960 (40 KB)
  Non DFS Used: 2325061632 (2.17 GB)
  DFS Remaining: 16211488768(15.1 GB)
  DFS Used%: 0%
  DFS Remaining%: 87.46%
  Last contact: Sat Aug 31 22:25:13 CST 2013
  Name: 192.168.0.32:50010
  Decommission Status : Normal
  Configured Capacity: 18536591360 (17.26 GB)
  DFS Used: 40960 (40 KB)
  Non DFS Used: 2326462464 (2.17 GB)
  DFS Remaining: 16210087936(15.1 GB)
  DFS Used%: 0%
  DFS Remaining%: 87.45%
  Last contact: Sat Aug 31 22:25:12 CST 2013
  四,排错思路
  1,是否是hadoop.tmp.dir,dfs.data.dir属性,如果定义在别的目录需要在集群中所有节点都创建,并让hadoop用户能够访问
  2,查看进程对应的端口是否有在监听。在上面配置中将namenode的端口定义9000,jobtracker定义成9001
  [hadoop@hadoop01 hadoop-1.2.1]$ netstat -tunlp |grep 9000
  tcp 0 0 ::ffff:192.168.0.31:9000 :::*   LISTEN 22709/java
  [hadoop@hadoop01 hadoop-1.2.1]$ netstat -tunlp |grep 9001
  tcp 0 0 ::ffff:192.168.0.31:9001 :::*   LISTEN 22924/java
  3,查看日志,哪个服务没起来就查看对应的日志。
  4,查看集群中所有节点的时间是不是一致。
  5,iptable与selinux是否阻止。
  6,/etc/hosts是否正确。


运维网声明 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-628999-1-1.html 上篇帖子: Hadoop执行jar文件流程分析 下篇帖子: 编译hadoop-eclipse插件并测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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