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

Hadoop安装详解及安装错误的解决方案

2015-06-09 16:17 330 查看
特此声明:本内容所有详细内容一下面提供的附件形式出现,了解详细内容可查看附件从4月28号搭建hadoop平台,到今天已经足足5天了,不断地改配置,敲命令,可以说真是人生一大快事吗?好了废话不多说,正式进入我的安装过程: 目录: 第一篇:Ubuntu13.1安装 第二篇:Sublime Text2安装 第三篇:hadoop+jdk1.8.0安装+ssh无密码登录 第四篇:出现的问题及解决办法(见另一篇博客) 正文: 第一篇: 我用的是Ubuntu13.1,大家可以到我的云盘下载,下面是链接: http://yunpan.cn/cjdvW5Abzap3I 访问密码 d13e 系统的安装我觉的是没什么说的必要的,给大家一个链接好了: /article/3486140.html 这里我主要强调一点就是VMware Tools的安装,VMware Tolls可以全屏我们的虚拟机里的系统,而且可以实现本地电脑和虚拟机系统里的文件的自由拖拽,所以为了使用方便,这个工具还是安上的好,安装时,点击下图所示的选项: 我由于已经安装过了,所以显示重新安装,没安装过得童鞋,就是InstallVMware Tolls 不过,如果点击重新安装后,发现1分钟过去了,还没反应,不要再等了,检查你的镜像设置,如下图: 其中linux.iso是虚拟机自带的工具镜像,就存放在VMware的安装目录下,相应的windows系统还有windows.iso,好了,Ubuntu的安装就说到这里 第二篇: 在这之前,我需要提醒大家先做这样一件事,就是创建一个我们专用的用户,这个用户我们在后面会给他赋予一些特定的权限,包括在建立Hadoop集群时我们使用的用户名最好是一致的,这样会省去很多麻烦。 创建用户的方法有很多,我的过程如下:

然后,给新创建的用户赋予sudo权限,修改配置文件/etc/sudoers #vi /etc/sudoers 做如下修改 保存退出 若修改时提示readonly,则进行权限修改,执行以下命令 #chmod 750 /etc/sudoers 然后我们在新创建的用户名下,执行以下步骤 Sublime Text2的安装参考以下博客: http://www.linuxidc.com/Linux/2013-05/84228.htm 第三篇: 从Apache官网上下载Hadoop-1.2.1版本,Hadoop的安装模式分为三种,分别是:单机模式、伪分布模式及全分布模式。默认安装模式是单机模式。这里我们JDK和Hadoop一起进行 jdk下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 进去之后,选择Accept License Agreement,下载我们需要的版本 hadoop下载链接:http://apache.fayea.com/hadoop/common/hadoop-1.2.1/ 下载Hadoop-1.2.1.tar.gz这一版本比较稳定 1) 解压TAR文件 $tar –zxvf hadoop-1.2.1.tar.gz $tar -zxvf jdk-8u45-linux-i586-demos.tar.gz 2)将解压后的文件按如下目录存放(也可以自己定义) $cp hadoop-1.2.1/opt/hadoop $cp jdk1.8.0_40/usr/bin/java 3) 修改配置文件/etc/profile,还有/opt/hadoop/conf/hadoop-env.sh 在/etc/profile 在/opt/hadoop/conf/hadoop-env.sh 把# export JAVA_HOME=/usr/lib/j2sdk1.5-sun的#去掉 并改为 export JAVA_HOME=/usr/bin/java (根据自己的实际java路径来写) 4) 保存退出后,查看是否安装成功,执行下面的命令 5)hadoop安装 上面其实已经实现了单机安装,接下来我们要做的是Hadoop的伪分布式安装 伪分布式安装涉及如下几个文件,core-site.xml,hdfs-site.xml,mapred-site.xml,slaves,masters,它们都在/opt/hadoop/conf目录下 下面来看看他们都是怎么配置的? core-site.xml
12345678910111213141516171819<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration><!-- fs.default.name - 这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。--> <property> <name>fs.default.name</name> <value>hdfs://Ubuntu1:9000</value> </property> <!--hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中--><property> <name>hadoop.tmp.dir</name> <value>/hadoop/tmp/hadoop_tmp</value></property> </configuration>
hdfs-site.xml
123456789101112131415161718192021222324252627282930<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.data.dir</name> <value>/hadoop/appdata/data</value> <description> Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories,then data will be stored in all name directories, typically on different devices.Directories that do not exit are ignored. </description></property><property> <name>dfs.name.dir</name> <value>/hadoop/appdata/name</value> <description> Determines where on the local filesystem the DFS name node should store the name table.If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy. </description></property> <property> <name>dfs.replication</name> <value>1</value> <description> Default block replication. The actual number of replications can be specified when the file is created. The default is used if replication is not specified in create time. </description></property></configuration>
mapred-site.xml
1234567891011121314<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration><property> <name>mapred.job.tracker</name> <value>Ubuntu1:9001</value> <description> The host and port that the MapReduce job tracker runs at.If "local",then jobs are run in-process as a single map and reduce task. </description></property></configuration>
masters Ubuntu1 slaves Ubuntu1 Ubuntu2 Ubuntu3 这就完成了伪分布式安装,这里我们也不需要看到什么结果,所以直接进行分布式安装 安装前,我们先列一个表格,把我们总体的思路表达一下
主机名Hadoop角色IPHadoop jps命令集Hadoop用户Hadoop安装目录
Ubuntu1MastersSlaves192.168.1.131NameNodeDataNodeJobTrackerTaskTrackerSecondaryDameNode创建相同的用户组名:yzy3安装hadoop-2.1.1时使用yzy3用户,并且yzy3的文件夹归属也是“yzy3:yzy3”/opt/hadoop
Ubuntu2Slaves192.168.1.132DataNodeTaskTracker
Ubuntu3slaves192.168.1.133DataNodeTaskTracker
Windows开发测试环境安装JDK与Eclipse本身不需要安装Hadoop,但需要Hadoop安装包下面的JAR包
Ubuntu1,Ubuntu2,Ubuntu3分别为安装在虚拟机上的三台设备,这三台设备包括windows主机实现了互通,并建立了一个集群,接下来按照我们上面对Ubuntu1的配置,对Ubuntu2和Ubuntu3做相同的配置。 配置完成后,修改/etc/hosts文件,修改如下: 其他两台机器做同样的修改,改完之后,可以ping一下,看看能否互通,如果实现互通,则进行下面的步骤,那就是配置SSH免密码登录 配置前先确保我们开启了ssh服务, 查看是否开启: $ps -e|grep ssh 如下所示,则已开启
否则,开启,开启ssh服务,敲如下命令: $/etc/init.d/ssh start 当然三台机器要都开启ssh服务才可以,所以按上面的步骤将三台机器的ssh服务全部开启, SSH免密码登录部分,进行如下配置,切记一定要在之前创建的用户模式下进行 $cd ~ $ssh-keygen -t rsa 然后一直按回车 以上步骤都是在Ubuntu1,Ubuntu2,Ubuntu3下共同做的 结束后,查看一下,提示:在上面生成密钥后,新建的文件夹.ssh为隐藏文件,需要用ll -a来查看,我们会发现在当前目录下已经包含了.ssh的目录 接下来主要在Ubuntu1下完成就可以了,Ubuntu1是我们的master节点 $cd .ssh $ls 我们会看到在这个目录下有两个文件,分别是id_rsa , id_rsa.pub,接下来执行如下命令 $cp id_rsa.pub authorized_keys $scp authorized_keysUbuntu2:/home/yzy1/.ssh $scp authorized-keysUbuntu3:/home/yzy1/.ssh 这里由于是第一次登录,输入yes继续后,需要输入对方的密码,但以后就不需要了 我们可以来测试一下:

如上图所示,无密码登录成功 这里我唯一没有成功就是无法实现本机无密码登陆,后来查了很多资料,也实施了很多方案就是不管用,也不管了,反正就一个节点需要输密码,谁看到这篇博客,如果知道解决办法,就在评论里告诉我一声,先说声谢谢了。 接下来进行hadoop分布式安装的最后一步,就是启动hadoop,建立集群 在这之前,我们需要做一件事,回顾刚刚写的配置文件,core-site.xml中我们给了文件系统依赖的基础配置,其路径为/hadoop/tmp/hadoop_tmp所以我们要创建这个目录 #mkdir /hadoop/tmp/tmp 这里还需要在hadoop下创建一个文件夹,用于存放datanode和namenode两个节点,这两个节点是自动生成的,不需要创建 #cd /hadoop #mkdir appdata 接下来格式化namenode $hadoop namenode-format 当出现hadoop command not found 时,从新执行配置文件,我是每次重新开机后就要重新编译,后来,也没找到原因,不过每次不行的话,再执行下 $source /etc/profile就可以了。 接下来启动hadoop $start-all.sh 启动后,$jps查看 如上图所示,集群建立成功
停止hadoop $stop-all.sh

本文出自 “么么哒~~” 博客,请务必保留此出处http://lining.blog.51cto.com/7879843/1660104
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: