




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hadoop详细安装过程一、本文思路1、安装虚拟化PC工具VMware,用于支撑Linux系统。2、在VMware上安装Ubuntu系统。3、安装Hadoop前的准备工作:安装JDK和SSH服务。4、配置Hadoop。5、为了方便开发过程,需安装eclipse。6、运行一个简单的Hadoop程序:WordCount.java注:在win7系统上,利用虚拟工具VMware建立若干个Linux系统,每个系统为一个节点,构建Hadoop集群。先在一个虚拟机上将所有需要配置的东西全部完成,然后再利用VMware的克隆功能,直接生成其他虚拟机,这样做的目的是简单。二、 所需软件1、VMware:VMware Workstation,直接百度下载(在百度软件中心下载即可)。2、Ubuntu系统:ubuntu-15.04-desktop-amd64.iso,百度网盘:/s/1qWxfxso注:使用15.04版本的Ubuntu(其他版本也可以),是64位系统。3、jdk:jdk-8u60-linux-x64.tar.gz,网址:/technetwork/java/javase/downloads/jdk8-downloads-2133151.html注:下载64位的Linux版本的jdk。4、Hadoop:hadoop-1.2.1-bin.tar.gz,网址:/apache/hadoop/common/hadoop-1.2.1/注:选择1.2.1版本的Hadoop。5、eclipse:eclipse-java-mars-1-linux-gtk-x86_64.tar.gz,网址:/downloads/?osType=linux注:要选择Linux版本的,64位,如下:6、hadoop-eclipse-plugin-1.2.1.jar,这是eclipse的一个插件,用于Hadoop的开发,直接百度下载即可。三、安装过程1、安装VMware。这个过程比较简单,下载后直接双击安装即可。2、安装Ubuntu系统。(1)打开VMware Workstation,“文件”“新建虚拟机”,如下:(2)选择“典型”配置即可:(3)选择“安装程序光盘印象文件”,点击“浏览”,选择下载的Ubuntu镜像:(4)设定用户名和密码,可以随意写,但要记住,如下:(5)设定“虚拟机名称”,可以随意写;“位置”最好不要放在C盘:(6)“最大磁盘大小”根据自己电脑磁盘空间决定,尽量设置大些;选择“将虚拟硬盘存储为单个文件”,如下:(7)点击“完成”即可。等待安装,这个过程时间较长,耐心等待!至此,一个虚拟机安装成功!如下:如果想改变虚拟机的配置,可以点击上图中的“编辑虚拟机设置”,如下:3、实现主机(win7系统)和虚拟机之间的文件共享。之所以要进行这一步,是因为我们的主机是win7系统,用的习惯了,使用它下载软件更方便些。如何将win7系统中的文件放入Ubuntu系统中,使Ubuntu系统也能方便地使用这些文件,就需要在win7系统和Ubuntu系统间共享文件夹。(1) 安装VMware Tools。因为在VMware上安装Ubuntu系统后,VMware会自动进行VMware Tools的安装,但这并不起作用,故而还需重新安装一次,选择“重新安装VMware Tools”,如下:会弹出如下文件夹:将此文件夹中的所用文件复制到home下的VMware Tools文件夹(这个文件夹需要自己建立),如下:复制出来的原因是:可以永久保存这些文件。因为原始VMware Tools那个文件夹只有在点击“重新安装VMware Tools”之后才会出现。用Ctrl+alt+t打开一个终端,进入到home下的VMware Tools文件夹下,进行如下:sudo tar -zxvf VMwareTools-xxx.tar.gz注:xxx是版本号,可能会不同。解压后,进入vmware-tools-distrib文件夹,运行vmware-install.real.pl,如下:cd vmware-tools-distribsudo ./ vmware-install.real.pl安装过程中,对于提示的路径,直接enter即可;对于yes/no,默认输入即可。(2)点击菜单栏的“虚拟机”“设置”,如下:进入到“虚拟机设置”中,如下操作:点击“添加”,点击“下一步”后出现如下界面:“主机路径”选择的是windows系统中的用于共享的文件夹,这个文件夹需要提前建立。下面的“名称”默认即可。点击“下一步”选择“启用该共享”“完成”。(3)挂载共享文件夹。在home下新建share文件夹,然后执行如下:sudo mount -t vmhgfs .host:/ share至此,win7和Ubuntu系统之间的共享文件夹已成功!需要注意的是:每次启动虚拟机,都需要使用上面的mount语句进行挂载,否则不能共享。注:mount经常支持不够好,安装vvmtools后,可以直接把文件拖入虚拟机镜像。4、JDK安装Hadoop运行需要JDK的支持,因为Hadoop使用Java语言实现的。(1)解压JDK。有两种方式:第一, 在终端使用tat zxvf jdk-8u60-linux-x64.tar.gz进行解压。第二, 直接在文件中点击右键,选择“Extract here”,如下:解压后的文件夹为:jdk1.8.0_60(2)配置环境变量。在终端输入:sudo gedit /etc/profile,打开profile文件进行环境变量的配置。在文件的最后面加入以下几句:#set jdk environmentexport JAVA_HOME=/home/lxl/Hadoop/JDK/jdk1.8.0_60 #注意修改export CLASSPATH=$JAVA_HOME/lib:$CLASSPAHTexport PATH=.:$JAVA_HOME/bin:$PATH注:JAVA_HOME为jdk的解压路径,要换成你自己路径!保存文件并退出,在终端输入:source /etc/profile,意思是重新加载刚才修改后的文件。这步很重要!(3)检验jdk是否成功安装。在终端输入:java -version,会显示Java的版本信息,如下:这样就表示jdk成功安装了。5、安装ssh。(1)在终端输入:sudo apt-get install ssh,等待下载安装即可。(2)检测ssh是否正确安装:在终端输入ssh localhost,显示如下:表示ssh已正确安装。然后输入exit退出登录。(3)配置ssh无密码访问。在终端输入:ssh-keygen -t rsa P “”,如下:括号里的/home/lxl/.ssh为公钥和私钥的默认存放路径,直接回车即可。然后进入.ssh目录下,执行如下命令:cat id_rsa.pub authorized_keys含义:将公钥id_rsa.pub中的内容复制给authorized_keys。authorized_keys文件之前是没有的,经过cat命令可以自动生成。如下:需要注意的是:此时的无密码访问还只是在这一个虚拟机上面,当克隆出其他虚拟机之后,每个虚拟机都需要生成自己的公钥和私钥,然后将所有虚拟机的公钥综合在一起,生成一个公共authorized_keys文件,将此公共的authorized_keys文件放入每个虚拟机的.ssh目录下,这样才能实现所有虚拟机之间的无密码访问。后面会有展示!6、开始Hadoop的安装。(1)解压hadoop-1.2.1-bin.tar.gz。和解压jdk一样,有两种方式,此处不多说了。(2)配置conf目录下的hadoop-env.sh、core-site.xml、hdfs-site.xml,mapred-site.xml四个文件。hadoop-env.sh文件中加入JAVA_HOME,即jdk的路径,如下:export JAVA_HOME=/home/lxl/Hadoop/JDK/jdk1.8.0_60core-site.xml文件中在configuration间加入: hdfs:/master:9000 hadoop.tmp.dir/home/lxl/Hadoop/hadoop/hadoop-1.2.1/tmp注:此步需要在hadoop-1.2.1目录下手动建立tmp文件夹。master为namenode节点的主机名。hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中。hdfs-site.xml文件中在两个configuration间加入: dfs.replication 2 .dir /home/lxl/Hadoop/hadoop/hadoop-1.2.1/hdfs/name dfs.data.dir /home/lxl/Hadoop/hadoop/hadoop-1.2.1/hdfs/data 注:此步需要在hadoop-1.2.1目录下手动建立hdfs文件夹,即运行程序前,hdfs文件夹必须存在,但不要创建hdfs下面的name和data文件夹,否则在格式化文件系统时会失败!dfs.replication是数据块的冗余个数,默认是3,一般设置为slave的个数;.dir为namenode上名字空间的存放地址;dfs.data.dir为datanode上数据块存放的地址。注:虽然每个节点上的hdfs-site.xml中的内容都一样,但是并不是每个节点上都会存在.dir和dfs.data.dir两个文件夹的。当运行程序时,namenode上的.dir下只有name文件夹,不会有data文件夹,因为数据不放在namenode节点上;同理,datanode上的dfs.data.dir下只有data文件夹,不会有name文件夹,因为name只放在namenode和secondarynamenode上。mapred-site.xml文件中在两个configuration间加入: mapred.job.tracker master:9001注:上面这四个文件的配置,在每个虚拟机上都完全一样的。故而克隆之后,不需要修改这四个文件。到此,一个虚拟机上的Hadoop已经配置完成。下面开始克隆出其他虚拟机。7、克隆出其他虚拟机。上面的配置过程只是在一个虚拟机上完成的,现在需要用VMware的克隆功能克隆出其他虚拟机,在此,我们使用2个slave。(1)关闭master虚拟机,然后选中master,菜单栏中的“虚拟机”“管理”“克隆”(2)直接下一步:(3)默认即可,下一步:(4)选择“创建完整克隆”,下一步:(5)虚拟机名称设置为slave1,即第一个slave,当然也可以设置为其他名称;选择位置后点击完成:耐心等待克隆的完成。按照同样的步骤再克隆一个虚拟机slave2。最终,会有一个master和两个slave,如下:8、最终的配置集群配置(1)每个节点(虚拟机)的IP配置。在每个虚拟机上打开一个终端,输入:sudo gedit /etc/hosts,即可打开hosts文件,进行如下的IP地址配置。当然,IP地址也可以是别的,是要保证是局域网的IP地址即可。注意:每个虚拟机上的hosts文件都是一样的配置。(2)修改hostname文件。此文件中存放的时本虚拟机的名称,默认的名称是ubuntu,而上一步设定的每个IP对应的虚拟机名分别是master、slave1和slave2,所以我们需要修改hostname文件内容,使其为每个虚拟机的名称。在每个虚拟机上打开一个终端,输入:sudo gedit /etc/hostname,即可打开hostname文件,输入各自的主机名称。修改后hostname文件后,关机重启各个虚拟机,就会看到每个虚拟机的名称发生了改变,如下:(3)修改每个虚拟机的IP地址。注意这里跟第(1)部设定IP地址的区别。(1)中设置的IP是我们希望的每个虚拟机的IP,但实际中每个主机的IP并不是这样的,在终端输入:ifconfig,可以查看每个虚拟机的实际ip地址,如下:可以看出每个虚拟机的实际ip分别为:master 29salve1 30slave2 31跟我们设定的ip地址不一样。问题:为什么我们要自己设定每个虚拟机的ip,不能直接用各自实际的ip地址吗?答:因为每个虚拟机的ip地址是动态分配的,使用DHCP协议。故而每次开机后,每个虚拟机的ip可能跟上次都不一样。如果我们不在hosts文件中设定ip,那么每次开机后,我们都得去hosts文件中修改各个虚拟机的ip,这是相当麻烦的。所以我们在hosts文件中设定固定的ip地址,然后在每次开机后使用命令:sudo ifconfig eth0 01 netmask 来设定IP,这样hosts文件中的ip和虚拟机实际的ip就一致了。hosts文件中的ip地址的作用:当在虚拟机master上使用ssh slave1访问虚拟机slave1时,master首先检查自己的hosts文件,看看slave1对应的ip,然后通过ip去访问slave1。这就要求hosts文件中的ip和虚拟机的实际ip必须一致,否则无法通信。如果给个虚拟机设置固定的ip,那么可能导致虚拟机无法连接到Internet.在每个虚拟机中打开一个终端,输入:sudo ifconfig eth0 01 netmask 注意:每个虚拟机的ip地址不一样,需要修改!修改后的ip如下:此时,使用虚拟机名称就访问各个虚拟机了,例:在虚拟机master上通过ssh访问slave1: 不用输入密码,而且虚拟机的名称变化了!使用命令exit退出登录。(4)修改/hadoop-1.2.1/conf目录下的masters文件和slaves文件。masters文件中:master注:masters文件中的虚拟机是namenode所在节点。slaves文件中:slave1slave2注:slaves文件中的虚拟机是datanode所在节点。以上两个文件的修改,明确了谁是master,谁是slave。(5)实现各个虚拟机之间的无密码访问。之前我们设置过无密码访问,但那只是单个虚拟机上面的,对于多个虚拟机,每个虚拟机都需要生成自己的公钥和秘钥,然后将所有虚拟机的公钥整合到一起,作为一个公共的authorized_keys文件,使得每个虚拟机都具有这份authorized_keys 文件,这样各个虚拟机间就可以无密码访问了。在每个虚拟机上打开一个终端,进入.ssh目录下,如下:rm f * 先删除.ssh下所有的文件ssh-keygen t rsa P “” 生成新的公钥和秘钥cat id_rsa.pub authorized_keys 将公钥复制到authorized_keys文件中然后将所有虚拟机的authorized_keys中的内容整合到一起,如下:作为每个虚拟机的authorized_keys.至此,各个虚拟机可以无密码访问了。9、运行Hadoop(1)格式化hdfs文件系统。在终端进入/hadoop-1.2.1/bin目录下,输入:hadoop namenode format,如下:当出现“/hdfs/name has been successfully formatted”时,表示格式化成功。(2)启动hadoop在master虚拟机上, /hadoop-1.2.1/bin目录下运行:start-all.sh,即可启动hadoop。可能出现的问题:slave2: Host key verification failed.即主机密钥验证失败!解决方法:先在各个虚拟机上用ssh 用户名主机名 登录一下其他各个虚拟机,这之后,再启动hadoop即可成功。(3)检验是否成功启动Hadoop在虚拟机master上终端输入jps,会显示如下:即有:JobTracker、NameNode、SecondaryNameNode在slave上终端输入jps,会显示如下:即有:DataNode、TaskTracker如果出现了跟上面一样的显示内容,则说明hadoop已经成功启动了。10、安装eclipseHadoop安装完成后,就可以进行任务的提交、运行、获得结果。但为了今后的开发的方便,需要安装eclipse。因为虚拟机master是负责任务的分配的,所以只需在master上面安装eclipse即可,其他虚拟机不用安装。(1)将eclipse-java-mars-1-linux-gtk-x86_64.tar.gz解压到用户的/Hadoop目录下,操作:sudo tar -zxvf eclipse-java-mars-1-linux-gtk-x86_64.tar.gz -C /Hadoop路径“/Hadoop”中的表示用户的根目录,即/home/lxl(2)因为之前配置过jdk,即JAVA_HOME和CLASSPATH,故而现在可以直接运行eclipse了。有两个种方式可以打开eclipse:第一种:在文件夹中直接双击eclipse图标,即可打开;第二种:在终端中输入:eclipse,也可打开。问题是,这两种方式打开后的eclipse均没有菜单栏,如下:这不是你的问题,而是Ubuntu系统的问题,12.04以后的版本都有这个问题。但我们需要菜单栏,怎么办呢?(3)让eclipse显示菜单栏。在/etc/profile文件中添加环境变量UBUNTU_MENUPROXY=0,如下:export UBUNTU_MENUPROXY=0关机后再次启动,再次打开eclipse,就会看到菜单栏。注意:修改/etc/profile后,用source /etc/profile命令没有作用,必须得重启!(4)建立eclipse和hadoop之间的连接。将hadoop-eclipse-plugin-1.2.1.jar放入/eclipse/plugins下面,如果出现不能放入的情况,说明eclipse不可写,需要修改其权限,如下:cd eclipsesudo chmod 777 plugins此时即可放入。(5)重新打开eclipse,菜单栏“window”“Preferences”,如下:如果插件能用,则在左边会出现“Hadoop Map/Reduced”,点击它,在右边选择hadoop的安装路径即可,点击“ok”。(5)在master上面启动Hadoop,以便eclipse能够加载hadoop。(6)菜单栏“window”“Perspective”“Open Perspective”“Othes”,如下:打开后选择“Map/Reduce”,点击“ok”:此时eclipse窗口中会出现“Map/ReduceLocations”,前面有黄色小象标示的那个,如下:在“Map/Reduce Locations”框的空白处,点击右键,选择“New Hadoop location”,如下:“Location name”可以随便写,这个是eclipse中展示的hadoop名字,不重要,只是一个名称而已;“Map/Reduce Master”部分的跟/hadoop-1.2.1/conf/mapred-site.xml文件中的主机名和端口号相同;“DFS Master”部分跟/hadoop-1.2.1/conf/core-site.xml文件中的主机名和端口号相同;“User name”即为Hadoop的用户名。如下:点击“Finish”后出现如下:这表明已成功加载hadoop。11、运行一个简单的Hadoop程序WordCount.java(1)在eclipse中新建一个工程,“File”“New”“Project”选择“Map/Reduce Project”,点击“Next”。设置“Project name”,点击“Next”点击“Finish”。(2)在刚才新建的项目上点击右键,“New”“Class”,如下: 类名写成WordCount,如下:点击“Finish”,生成如下:将hadoop安装目录/src/example/org/apache/hadoop/example/WordCount.java中的代码复制到此处,并删除第一行的“package”。(3)书写输入文件words.txt,并上传到HDFS文件系统。书写words.txt文件(在虚拟机的任何位置均可书写),其内容可以随便写,这里写成:hello world bye worldhe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 情绪小屋课件
- 吉林省长春市德惠市九校2026届化学高一上期中学业水平测试模拟试题含解析
- 悬浮的鸡蛋科学实验课件
- 车库顶板防水施工方案
- 2026届甘肃省岷县第二中学高一化学第一学期期中学业水平测试试题含解析
- 学校课程具体实施方案
- 2026届湖北省名师联盟化学高二第一学期期中联考模拟试题含解析
- 车务系统站段管理结构三年工程实施方案和推进计划
- 中医康复招聘试题及答案
- 正畸牙医考试题及答案
- 2025年医德医风培训试题(附参考答案)
- 二人合伙开店的合同协议
- 北师大版五年级数学下册常考题:分数除法(单元测试)含答案
- 2026届高考生物一轮复习:人教版必修1《分子与细胞》知识点考点背诵提纲
- 2025护理岗招聘笔试题库及答案
- 浙江温州乐清市医疗保障局招聘编外人员5人笔试模拟试题及答案详解1套
- 2025年高考语文北京卷及答案解析
- 甘肃省兰州市2024-2025学年八年级下学期期末检测模拟英语试题(含答案)
- 2025年江苏保安证试题及答案
- 2024广西公需课高质量共建“一带一路”谱写人类命运共同体新篇章答案
- 2025四川成都新都投资集团有限公司招聘23人笔试历年参考题库附带答案详解
评论
0/150
提交评论