linux安装+hadoop配置.docx
《linux安装+hadoop配置.docx》由会员分享,可在线阅读,更多相关《linux安装+hadoop配置.docx(24页珍藏版)》请在冰豆网上搜索。
linux安装+hadoop配置
多机环境下的hadoop平台搭建过程说明
目录
一、引言1
二、部署过程说明2
2.1、部署阶段2
2.1.1、安装ubuntu-14.04.2-desktop-amd643
2.1.2、安装jdk第一步:
在usr下面新建一个文件夹Java,然后将jdk复制过来13
2.1.3、安装hadoop14
2.1.4、配置JAVA环境变量15
2.1.5、创建ssh-key16
2.2、多机环境下的配置阶段18
2.2.1、/etc/hosts文件的配置修改18
2.2.2、多机的ssh-key配置19
2.2.3、JAVA_HOME环境变量的配置19
2.2.4、master和slaves文件的配置修改20
2.2.5、core-site、mapred-site和hdfs-site文件的配置修改20
2.2.6、复制master的配置文件到各个slaves21
2.3、启动运行阶段22
2.3.1、格式化namenode(首次运行必需)22
2.3.2、启动hadoop22
三、参考资源24
一、引言
多机环境下的hadoop平台搭建是通过在每台机器上部署hadoop来构成一个hadoop的集群运行环境。
本文的环境搭建是在每台机器上安装双系统(windows和linux)或者单linux系统。
本文hadoop部署之前下载了如下的程序:
ubuntu-14.04.2-desktop-amd64、hadoop2.7.0、jdk1.7.0forlinux。
这些程序均可以从网上下载,其中jdk1.7.0forlinux(此处下载的是64位的)是直接从官网上下载。
本文的环境搭建选择了三台机器,其中一台机器要作为master,而另外两台机器要作为slaves。
二、部署过程说明
参考网上相关资源,本文所采取的部署过程分为三个阶段:
单机部署阶段、多机环境下的配置阶段、和启动运行阶段。
单机部署阶段主要是在每台机器上安装和配置unbuntu、JDK和hadoop程序;第二阶段主要是进一步配置每台机器,以构成hadoop集群环境;第三个阶段主要是启动hadoop。
各个阶段的详细操作步骤如下。
2.1、部署阶段
单机部署阶段主要是对集群环境中的每台机器,进行ubuntu、JDK和hadoop的安装与配置。
该阶段要做的工作与单机版的hadoop平台搭建类似。
2.1.1、安装ubuntu-14.04.2-desktop-amd64
2.1.1.1安装工具:
easyBCD,DAEMONtools,(安装最好选择默认路径)ubuntu-14.04.2-desktop-amd64.iso建议将iso文件移动到c盘根目录。
2.1.1.2安装过程(在win7下安装ubuntu,即双系统,如果你想安装单linux系统,可以直接跳到,2.1.1.2.7步):
2.1.1.2.1磁盘预留可用空间
计算机->右键->管理
2.1.1.2.2右键单击选择要压缩的磁盘(本例选择D盘,最好选择最后的磁盘),右键选择“压缩卷”
2.1.1.2.3在输入压缩空间量(MB)里填写要压缩出的空间量,如果要压缩出50G,填写50G*1024MB
2.1.1.2.4压缩后会发现多出一块未分区磁盘(绿色分区,这个只是样例),出现这样就可以了,我们的linux将安装到这个绿色的空闲分区内,这样我们可以在windows下删除linux系统。
2.1.1.2.5安装完成的效果图如下:
2.1.1.2.6如果从windows磁盘管理内无法分出,可以使用磁盘分区工具DiskGenius,建议从windows最后一个磁盘进行分区,分完后格式化所分出来的磁盘,然后删除卷,就会出现上图绿色的可用空间状态(一定要删除卷,让它成空闲分区)。
2.1.1.2.7打开easyBCD软件可以看到目前只有一个win7启项。
2.1.1.2.8选择“添加新条目”,然后选择“NeoGrub”,点击“安装”
2.1.1.2.9点击右边的配置
2.1.1.2.10将打开的menu.lst文件的内容替换成一下文本:
titleInstallUbuntu
root(hd0,0)
kernel(hd0,0)/vmlinuz.efiboot=casperiso-scan/filename=/ubuntu-14.04-desktop-amd64.isolocale=zh_CN.UTF-8
initrd(hd0,0)/initrd.lz
titlereboot
reboot
titlehalt
halt
说明:
a)hd0表示c盘所处的硬盘号,一般电脑只有一个,所以都是hd0;如果有多个硬盘,则根据情况改为hd0、hd1等。
(因为我们直接把ubuntu-14.04-desktop-amd64.iso镜像文件拷到了C盘,直接写hd0就OK了)
b)其中filename要改成你自己下载的ubuntu版本的镜像文件的名字(上面黄色内容)
2.1.1.2.11然后把系统镜像文件用DAEMONtools打开,或者以压缩包形式将其中两个文件解压出来,分别是initrd.lz和vmlinuz.efi,这两个文件在casper文件夹里。
此处我们用DAEMONtools打开(一定要点击打开文件夹)
2.1.1.2.12将解压出来的两个文件复制到c盘根目录,可以看看c盘中添加了多少相关的文件。
这样,安装系统的前期准备就完成了,可以重启电脑准备安装ubuntu了。
2.1.1.2.13点击编辑引导菜单你会看到多了一个引导项
2.1.1.2.14重启电脑,可以看到多了一个启动项“NeoGrub引导加载器”,选择该项enter,然后选择“installubuntu”,另外两项分别是“重启”和“关机”,是为了防止安装出错而设的,这个在之前的menu.lst配置文件中已经设定好了。
2.1.1.2.15接下来如果正常的话,会刷刷的满屏幕文字,很高端的样子,等着它结束就行。
如果在这一步报错,一般来说就是之前的menu.lst配置文件不对,无法访问C盘,这时只要“reboot”然后进入win7重新配置就行
2.1.1.2.16刷完后就进入一个小系统,别以为这就装好了,此时最重要的一步,通过快捷键ctrl+alt+T打开终端,输入:
sudoumount-l/isodevice注意空格和小写的L,执行后就可以双击安装图标进行安装了
说明:
umount-f卸载设备。
选项–l并不是马上umount,而是在该目录空闲后再umount。
点击下面的图标进行安装
接下来选择简体中文;不用选中安装第三方软件和更新,否则安装会很慢,为保险起见可以断开网络连接;安装类型选择“其他选项”。
接下来需要设置分区,首先设置交换空间大小,与电脑内存差不多或为电脑内存的两倍。
然后设置其他挂载点的大小,分区方案很多,这里简单的设置/、/boot、/home共3个分区,均为ext4文件系统。
/10G;
/boot100M;
/home剩余所有空间
安装启动引导器的挂载点选择/boot所对应的磁盘号
按照安装步骤往下走就可以了。
安装完成后点击“现在重启”,可以看到多了好多启动项,界面也变了。
选择第一项启动ubuntu系统,这样就可以愉快的玩转ubuntu啦。
进入win7后打开EasyBSD
然后再点击添加新条目,点击Linux/BCD,类型选择grub,路径选择之前安装启动引导器的挂载点,这里我们选择/boot对应的磁盘。
然后再选择编辑引导向,把windows改成默认的启动项。
2.1.2、安装jdk
第一步:
将jdk复制到opt目录下
sudocpjdk的路径(源路径)/opt(目标路径)
第二步:
进入到Java目录下,改变文件权限为可执行
cd/opt
sudochmodu+x“JDK包名”.bin
第三步:
安装
a)后缀为.bin
./“JDK包名”.bin
b)后缀为tar.gz
sudotar–zxvf“JDK包名”
2.1.3、安装hadoop
第一步:
将hadoop.tar.gz复制到opt目录下
sudocphadoop的路径/opt
注:
从网上下载的hadoop往往是压缩成rar的,这里需要现在本地解压,然后提取出来的文件里面就会出现hadoop.tar.gz)
第二步:
进入到local目录下,解压hadoop.tar.gz
cd/opt
第三步:
为了方便管理,将解压后的文件夹名改为hadoop
sudomvhadoop2.7.0hadoop//mv具有重命名功能
第四步:
创建一个名为hadoop的用户
1、创建一个名为yshu的用户
sudoadduseryshu//创建hadoop用户
sudopasswdyshu//修改密码
注:
创建用户名需要输入用户的密码,本人测试用户的密码可以设置。
在设置完密码之后,还需要输入用户的一些信息,可以不填,都敲回车,用系统默认的即可。
3、用gedit打开etc下的sudoers文件
sudogedit/etc/sudoers
4、在rootALL=(ALL)ALL下面添加如下一行
yshALL=(ALL)ALL
注:
添加yshALL=(ALL)ALL的意义在于能让ysh用户使用“sudo”命令
5、我们可以在linux图像界面下点击右上角的系统设置->用户管理->点击左侧的hadoop用户图像,把右方的hadoop权限标准改成管理员。
这时最好重新启动下机器。
2.1.4、配置JAVA环境变量
第一步:
用gedit打开etc下的profile文件
sudogedit/etc/profile
第二步:
在文件最后加入如下几行
#forjava
exportJAVA_HOME=/opt/jdk1.7.0//改成你的jdk路径
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:
${JAVA_HOME}/lib:
${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:
${JRE_HOME}/bin:
$PATH
使设置生效:
到此步JDK的配置就都完成了
$source/etc/profile
为保证正确性,进行简单的测试
$java-version
输出:
javaversion"1.7.0"
Java(TM)SERuntimeEnvironment(build1.7.0)
JavaHotSpot(TM)ServerVM
修改默认JDK:
sudoupdate-alternatives--install/usr/bin/javajava/usr/lib/jvm/jdk1.7.0/bin/java300
sudoupdate-alternatives--install/usr/bin/javacjavac/usr/lib/jvm/jdk1.7.0/bin/javac300
sudoupdate-alternatives--install/usr/bin/jarjar/usr/lib/jvm/jdk1.7.0/bin/jar300
红色地方都改成你的jdk安装路径
以下两句可选(最好执行):
sudoupdate-alternatives--configjava
sudoupdate-alternatives--configjavac
2.1.5、创建ssh-key
第一步:
首先要转换成ysh用户,执行以下命令:
$su ysh
ubuntu一般只是默认安装了ssh-agent,可以用如下命令查看:
$ sudo ps -ef | grep ssh
如果只有ssh-agent 就需要安装openssh-server了。
$ sudoapt-getinstallopenssh-server//安装ssh
注:
如果此语句执行失败且结果为“....没有可利用的包”的话,可以先执行sudoapt-getupdate,以更新各个链接。
执行此句要花较长时间,并且一直显示下载数据。
第二步:
创建ssh-key(ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式)
ssh-keygen-tdsa-P''-f~/.ssh/id_dsa//此处我们指定了存放路径~/.ssh/id_dsa
请注意,ssh-kengen是用连字符连着的,千万不要分开
第三步:
将此ssh-key添加到信任列表中,并启用此ssh-key
cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys//追加验证信息到
chmod700~/.ssh//修改文件夹权限
chmod600~/.ssh/authorized_keys//修改文件权限
第四步:
启动ssh服务
sudoservicesshstart
注:
1,在终端输入“sshlocalhost”可以测试ssh是否安装好,如果有错误提示,类似"ssh:
connecttohostlocalhostport22:
Connectionrefused",说明你没有安装ssh-client,此时只需要在终端输入:
sudoapt-getinstallopenssh-client
2,此处也可以通过命令“ps-e|grepssh”来查看ssh服务是否真的启动了,正常情况下命令执行之后应该显示两条内容,分别是两个服务,一个是ssh-agent,一个是sshd。
如果只有ssh-agent,那么应用命令sudo/etc/sbin/ssh启动sshd服务,如果出现如下类似的问题,则进入(sudogedit/etc/ssh/sshd_config)将出现问题的一句(这里是line25)注释掉就行了
/etc/ssh/sshd_config:
line25:
Badconfigurationoption:
syntax
/etc/ssh/sshd_config:
terminating,1badconfigurationoptions
2.2、多机环境下的配置阶段
2.2.1、/etc/hosts文件的配置修改
对hosts文件的修改主要是为了建立集群中各个主机的主机名与相应ip地址之间的映射关系。
因此,该步需要对每台机器的hosts的文件进行修改。
本安装环境下的各个主机名与IP地址的关系如下(IP地址此处隐去):
192.168.16.1master
192.168.16.2slave1
192.168.16.3slave2
基于该映射关系,各个机器的hosts文件的配置如下(各个机器的配置一样):
127.0.0.1localhost
192.168.16.1master
192.168.16.2slave1
192.168.16.3slave2
注:
1)此处各配置文件中的master和slaves均为各个机器的主机名,主机名可通过hostname命令查看
2)配置文件中127.0.0.1与localhost之间的映射是自带的
2.2.2、多机的ssh-key配置
第一步:
进入master主机,在终端输入如下命令:
scp/home/ysh/.ssh/id_rsa.put主机名@192.168.16.2:
/home/ysh/
scp/home/ysh/.ssh/id_rsa.put主机名@192.168.16.3:
/home/ysh/
注:
这里主要是将master机器的ssh-key值拷贝到各个slaves主机。
这里可能在拷贝的过程需要输入slave主机的密码,输入即可。
第二步:
进入各个slave主机,在终端输入如下命令以将ssh-key添加到信任列表中,以在master主机和各个slaves主机之间建立无需密码的链接:
cat~/id_rsa.pub>>~/.ssh/authorized_keys
注:
为了验证ssh服务是否配置成功,回到master主机上,终端键入
ssh主机名@192.168.16.2
如果没有出错,并且进入slave主机,则说明无密码的ssh服务配置成功。
这里初次也可能有输入密码的提示,直接输入ip为192.168.16.2的主机密码就可以了。
实际上,如果你键入”ssh192.168.16.2”,程序也可能会提示你输入ysh@192.168.0.2密码,输入即可。
2.2.3、JAVA_HOME环境变量的配置
进入master主机,配置conf目录下的hadoop-env.sh中的JAVA_HOME。
在master主机终端输入如下命令:
cd/opt/hadoop2.7.0/etc/hadoop/conf//你的hadoop存放路径
sudogeditconf/hadoop-env.sh
注:
打开后在文档的上部某行有“#exportJAVA_HOME=...”字样的地方,去掉“#”,然后在等号后面填写你的jdk路径,完全按此文档来的话应改为"exportJAVA_HOME=/usr/Java/jdk1.6.0_37"
2.2.4、master和slaves文件的配置修改
该步操作是在master主机的终端上执行。
目标主要是对/opt/hadoop2.7.0/etc/hadoop/conf下的master和slaves文件进行修改。
/opt/hadoop2.7.0/etc/hadoop/confmasters的配置如下:
master(此处为master主机的主机名)
/opt/hadoop2.7.0/etc/hadoop/confslaves的配置如下:
guo
ysh
master
2.2.5、core-site、mapred-site和hdfs-site文件的配置修改
进入master主机,做如下三步。
第一步:
配置conf目录下的core-site.xml
sudogeditconf/core-site.xml
注:
打开后标签中是空的,所以在空的地方加入如下配置
fs.defaultFS
hdfs:
//master:
9000
第三步:
配置conf目录下的mapred-site.xml
sudogeditconf/mapred-site.xml
注:
打开后标签中也是空的,添加如下配置
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
master:
10020
mapreduce.jobhistory.webapp.address
master:
19888
第三步:
配置hdfs-site.xml文件
sudogeditconf/hdfs-site.xml
注:
打开后标签中也是空的,添加如下配置
dfs.replication
1
dfs.namenode.secondary.http-address
master:
9001
第四步:
配置hdfs-site.xml文件
注:
上述前两步的标红的master主机名要在实际中替换成实际的master主机名
2.2.6、复制master的配置文件到各个slaves
这里主要是将2.2.1,以及2.2.3-2.2.5节中修改的各个配置文件复制到各个slaves的同样目录下。
所用命令如下:
//拷贝JAVA_HOME环境变量的配置文件
//scp源路径目标路径下面的操作是在主机中进行的,向两台slave进行copy
scp/opt/hadoop2.7.0/etc/hadoop/conf/hadoop-env.shhadoop@192.168.16.2:
/opt/hadoop2.7.0/etc/hadoop/conf/
scp/opt/hadoop2.7.0/etc/hadoop/conf/hadoop-env.shhadoop@192.168.16.3:
/opt/hadoop2.7.0/etc/hadoop/conf/
//拷贝master和slaves文件
scp/opt/hadoop2.7.0/etc/hadoop/conf/masterhadoop@192.168.16.2:
/opt/hadoop2.7.0/etc/hadoop/conf/
scp/opt/hadoop2.7.0/etc/hadoop/conf/masterhadoop@192.168.16.3:
/opt/hadoop2.7.0/etc/hadoop/conf/
scp/opt/hadoop2.7.0/etc/hadoop/conf/slavehadoop@192.168.16.2:
/opt/hadoop2.7.0/etc/hadoop/conf/
scp/opt/hadoop2.7.0/etc/hadoop/conf/slavehadoop@192.168.16.3:
/opt/hadoop2.7.0/etc/hadoop/conf/
2.3、启动运行阶段
2.3.1、格式化namenode(首次运行必需)
第一步:
进入/opt/hadoop2.7.0目录
cd/opt/hadoop2.7.0
第二步:
格式化namenode
$bin/hadoopnamenode–format
注:
此步操作以及以后的操作都是在master主机上进行。
并且注意这里的格式化命令里边的namenode不能替换成master主机的名