虚拟Ubuntu环境搭建hadoop集群计划.docx
《虚拟Ubuntu环境搭建hadoop集群计划.docx》由会员分享,可在线阅读,更多相关《虚拟Ubuntu环境搭建hadoop集群计划.docx(25页珍藏版)》请在冰豆网上搜索。
虚拟Ubuntu环境搭建hadoop集群计划
虚拟Ubuntu环境搭建hadoop集群计划
一、搭建环境
本计划是在服务器(192.168.200.100)上构建的三台Ubuntulinux虚拟机上,搭建出一个完全分布式的hadoop集群。
为简单起见,先选择其中一台安装hadoop,再通过克隆出另外两台虚拟机,最后进行参数配置,以完成hadoop集群搭建。
二、安装规划
在服务器(192.168.200.100)上构建三台配置完全相同的虚拟机,每台虚拟机均安装UbuntuLinux(版本14.0.02),内存1G,硬盘30G。
安装规划如下:
机器名
IP地址
用途
安装方式
hadoop1
192.168.201.104
主节点,即NameNode
克隆后修改
hadoop2
192.168.201.54
从节点1,即DataNode1
克隆后修改
hadoop3
192.168.201.100
从节点2,即DataNode2
按步骤安装
三、创建用户组、用户
登录hadoop3虚拟机,
1)创建hadoop用户组:
$sudoaddgrouphadoop
2)创建hadoop用户:
$sudoadduser-ingrouphadoophadoop
3)给hadoop用户添加权限(这里选择使用gedit,可用任何其它编辑工具代替,后同):
$sudogedit/etc/sudoers
给hadoop用户赋予root用户同样的权限(此步可选,如略过以后步骤需注意目录权限问题)。
在rootALL=(ALL:
ALL)ALL下添加:
hadoopALL=(ALL:
ALL)ALL
4)确保主目录权限
确保hadoop主目录(/home/hadoop)权限是755,否则后述的ssh互信不能成功。
$chmod755/home/hadoop
5)顺便停止iptable、禁用SELINUX
$sudoserviceiptablesstop&&chkconfigiptablesoff
编辑/etc/selinux/config文件,设置"SELINUX=disabled"。
四、下载安装JDK
1)下载JDK安装包
用本机从oracle官网(或其镜像)下载最新的稳定版JDK安装包,根据平台选择合适的版本,本计划选择的版本是jdk-8u20-linux-x64.tar.gz;再以sftp上传到hadoop3虚拟机的hadoop用户目录下。
2)解压JDK安装包
选择一个JDK的安装目录,本计划在/usr/lib下新建jvm目录:
$sudomkdir/usr/lib/jvm
然后解压上传的JDK安装包:
$tar-zxvf/home/hadoop/jdk-8u20-linux-x64.tar.gz-C/usr/lib/jvm/
3)配置JDK
编辑/etc/profile文件,在最后添加以下内容:
exportJAVA_HOME=/usr/lib/jvm/jdk1.8.0_20
exportJRE_HOME=${JAVA_HOME}/jre
exportCLASSPATH=.:
${JAVA_HOME}/lib:
${JRE_HOME}/lib
exportPATH={JAVA_HOME}/bin:
$PATH
4)更新默认的JDK(可选)
如果虚拟机上安装了多个版本的JDK,需执行:
#update-alternatives--install/usr/bin/javajava/usr/lib/jvm/jdk1.8.x_xx/bin/java300
#update-alternatives--install/usr/bin/javacjavac/usr/lib/jvm/jdk1.8.0_xx/bin/javac300
#update-alternatives--configjava
此时会列出所有已安装的JDK,选择刚安装的JDK版本的序号即可。
5)测试JDK版本
查看JDK版本是否正确:
$java-version
6)删除JDK安装包(可选)
为节省存储空间,可将JDK安装包文件删除。
五、安装ssh
1)在联网状态下,执行:
$sudoapt-getinstallsshopenssh-server
系统会提示需要升级和下载的软件包,并询问是否继续,输入“Y”,等待安装完成。
2)检查ssh版本
$ssh-V
3)配置ssh开机自启
$sudo/etc/init.d/sshstart
虚拟机重启后ssh服务已经运行。
六、克隆虚拟机
停止hadoop3运行,用远程桌面登录200.100服务器,在VMwareStation中删掉原来的hadoop1和hadoop2,再利用hadoop3克隆出hadoop1和hadoop2。
注意用VMware更改hadoop1和hadoop2的MAC地址,否则将来同一时刻只能登录一台虚拟机。
具体操作:
右键点击虚拟机——“设置”——“硬件”选卡中的“网络适配器”——“高级”按钮——下方MAC地址的“生成”按钮——再一直“确定”。
七、设置三台虚拟机的主机名、IP地址
1)在VMwareStation中启动hadoop1,用ssh登录hadoop1;
2)修改/etc/hosts,增加主机IP列表:
$sudogedit/etc/host
192.168.201.104hadoop1
192.168.201.54hadoop2
192.168.201.100hadoop3
3)修改/etc/hostname,设置好hostname:
$sudogedit/etc/hostname
hadoop1
4)修改/etc/network/interfaces,设置静态IP
$sudogedit/etc/network/interfaces
查找相应内容,确保修改后内容包括:
autolo
ifaceloinetloopback
autoeth0
ifaceeth0inetstatic#固定IP地址
address192.168.201.100#该虚拟机IP
gateway192.168.201.1
netmask255.255.255.0
dns-nameservers114.114.114.114
执行$sudo/etc/init.d/networkingrestart或直接reboot,使修改生效。
5)依次登录hadoop2和hadoop3,执行步骤2、3、4。
6)验证
在各个虚拟机上ping另两台(使用hostname),能ping通表示成功。
八、配置ssh互信
1)以hadoop用户分别登录hadoop1、hadoop2和hadoop3,执行:
$ssh-keygen-trsa
一直按回车直至完成,生成的密钥文件保存为id_rsa(私钥)id_rsa.pub(公钥),默认在/home/hadoop/.ssh目录下。
2)追加三个公钥到hadoop1授权的key里
$sshhadoop1cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
$sshhadoop2cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
$sshhadoop3cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
注意是追加符">>"而不是重定向符">",过程中需要分别输入三台虚拟机上hadoop用户的密码。
$chmod600~/.ssh/authorized_keys
3)将hadoop1的公钥传输到其余两台机器
$scp~/.ssh/id_rsa1.pubhadoop@hadoop2:
/home/hadoop/.ssh
$scp~/.ssh/id_rsa1.pubhadoop@hadoop3:
/home/hadoop/.ssh
首次scp时会要求输入对方机器上的用户密码,输入完成后提示传输完毕。
4)验证
在任意一台虚拟机上执行下述命令,无需输入密码表示成功:
$sshhadoop1date
$sshhadoop2date
$sshhadoop3date
九、下载安装hadoop
1)下载hadoop安装包
用本机从appach官网(或其镜像)下载合适的hadoop安装包,本计划一开始安装的是所谓最新的稳定版2.7.1,但后来发现有些bug严重影响到程序运行,于是回头选择了另一个版本的hadoop-2.6.1.tar.gz,下载后上传到hadoop1虚拟机的hadoop用户目录下。
2)解压hadoop安装包
解压上传的hadoop安装包:
$sudotar-zxvf/home/hadoop/hadoop-2.6.1.tar.gz-C/usr/
修改目录名(可选,如忽略则以后步骤注意修改目录名):
$sudomv/usr/hadoop-x.x.xx/usr/hadoop
3)修改hadoop目录权限
$sudochown-Rhadoop:
hadoop/usr/hadoop
4)修改hadoop-env.sh配置文件
$gedithadoop/etc/hadoop/hadoop-env.sh
找到#exportJAVA_HOME=...,去掉注释符#,加上本机JDK的路径:
exportJAVA_HOME=/usr/lib/jvm/jdk1.8.x
5)修改yarn-env.sh配置文件
$gedithadoop/etc/hadoop/yarn-env.sh
找到#exportJAVA_HOME=...,去掉注释符#,加上本机JDK的路径:
exportJAVA_HOME=/usr/lib/jvm/jdk1.8.x
6)修改core-site.xml配置文件
该文件主要配置HDFS主节点的地址和端口号。
事先创建目录/usr/hadoop/tmp作为临时目录(可选,如忽略则只修改fs.defaultFS)。
$gedithadoop/etc/hadoop/core-site.xml
找到其中相应内容,确保修改后内容包括:
hadoop.tmp.dir
/usr/hadoop/tmp
fs.defaultFS
hdfs:
//hadoop1:
9000
7)修改hdfs-site.xml配置文件
该文件配置HDFS参数,默认数据副本数量为3,本计划修改为2。
先创建两个目录:
usr/hadoop/name和usr/hadoop/data,命令略。
$gedithadoop/etc/hadoop/hdfs-site.xml
找到其中相应内容,确保修改后内容包括:
dfs.replication
2
dfs.namenode.rpc-address
hadoop1:
9000
dfs.namenode.http-address
hadoop1:
23001
dfs.name.dir
/usr/hadoop/name
dfs.data.dir
/usr/hadoop/data
8)修改mapred-site.xml配置文件
该文件配置Map-Reduce参数。
首先从同名template文件复制一份。
$cphadoop/etc/hadoop/mapre-site.xml.templatehadoop/etc/hadoop/mapre-site.xml
$gedithadoop/etc/hadoop/mapred-site.xml
找到其中相应内容,确保修改后内容包括:
mapred.job.tracker
hadoop1:
9001
mapred.map.tasks
20
mapred.reduce.tasks
4
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
hadoop1:
10020
mapreduce.jobhistory.webapp.address
hadoop1:
19888
9)修改yarn-site.xml配置文件
$gedithadoop/etc/hadoop/yarn-site.xml
找到其中相应内容,确保修改后内容包括:
yarn.resourcemanager.address
hadoop1:
8032
yarn.resourcemanager.scheduler.address
hadoop1:
8030
yarn.resourcemanager.webapp.address
hadoop1:
8088
yarn.resourcemanager.resource-tracker.address
hadoop1:
8031
yarn.resourcemanager.admin.address
hadoop1:
8033
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
10)修改slaves配置文件
编辑/usr/hadoop/etc/hadoop/slaves文件,只包含以下内容:
hadoop1
hadoop2
hadoop3
十、复制hadoop目录
先分别在hadoop2、hadoop3上创建/usr/hadoop目录,将其属主改为hadoop用户:
$sudomkdir/usr/hadoop
$sudochown-Rhadoop:
hadoop/usr/hadoop
用scp将整个hadoop目录复制到其它机器:
$scp-r/usr/hadoop/hadoop@hadoop2:
/usr
$scp-r/usr/hadoop/hadoop@hadoop3:
/usr
有文献说直接scp可能略有所不同,建议先打包再scp再解压:
在hadoop1执行:
$sudotar-zcf/usr/hadoop.tar.gz/usr/hadoop
$scp/usr/hadoop.tar.gzhadoop2:
/home/hadoop
$scp/usr/hadoop.tar.gzhadoop3:
/home/hadoop
分别在hadoop2和hadoop3上执行:
$sudotar-zxf~/hadoop.tar.gz-C/usr/
$sudochown-Rhadoop:
hadoop/usr/hadoop
十一、启动及验证hadoop
1)格式化HDFS
只需进行一次,以hadoop用户登录hadoop1,执行:
$cd/usr/hadoop/bin
$hdfsnamenode-format
2)启动hadoop守护进程,依然在hadoop1上:
$sbin/start-all.sh
3)验证
有两种验证方法:
方法一是在各个节点分别用jps命令查看,结果应是主节点(hadoop1)启动NameNode、SecondrryNameNode、ResourceManager进程,从节点(hadoop2和hadoop3)启动DataNode和NodeManage进程。
如果提示“jps已经包含在下列软件包中…请尝试sudoapt-get…”,先执行:
Ssudoupdate-alternatives--install/usr/bin/jpsjps/usr/lib/jvm/jdk1.8.0_20/bin/jps1
方法二是在主节点用“hdfsdfsadmin-report”查看整个集群的状态。
4)停止hadoop
$sbin/stop-all.sh
Hadoop集群继续安装hbase
一、安装规划
在已经成功搭建Hadoop集群的基础上,进一步安装hbase(含自带的zookeeper)。
安装规划如下:
机器名
IP地址
用途
安装方式
hadoop1
192.168.201.104
Hmaster,HQuorumPeer
按步骤安装
hadoop2
192.168.201.54
HregionServer,HQuorumPeer
scp后修改
hadoop3
192.168.201.100
HregionServer,HQuorumPeer
scp后修改
hbase的用户、用户组、JDK及相关配置与hadoop一致。
二、下载安装hbase
1)下载hbase安装包
用本机从appach官网(或其镜像)下载最新的稳定版hbase安装包,本计划选择的版本是hbase-1.1.2-bin.tar.gz,然后上传到hadoop1虚拟机的hadoop用户目录下。
2)解压hbase安装包
解压上传的hbase安装包:
$tar-zxvf/home/hadoop/hbase-1.1.2-bin.tar.gz-C/usr/
修改目录名(可选,如忽略则以后步骤注意修改目录名):
$sudomv-r/usr/hbase-1.1.2-bin/usr/hbase
3)修改hbase目录权限
$sudochown-Rhadoop:
hadoop/usr/hbase
4)修改hbase-env.sh配置文件
$sudogedithbase/conf/hadoop-env.sh
找到#exportJAVA_HOME=...,去掉注释符#,加上本机JDK的路径:
exportJAVA_HOME=/usr/lib/jvm/jdk1.8.x
增加运行自带的zookeeper的配置:
exportHBASE_MANAGES_ZK=true
exportHADOOP_HOME=/usr/hadoop
exportHBASE_HOME=/usr/hbase
5)修改hbase-site.xml配置文件
该文件主要配置hbase个节点的信息。
$sudogedithbase/conf/hbase-site.xml
找到其中相应内容,确保修改后内容包括:
hbase.rootdir
hdfs:
//hadoop1:
9000/hbase
hbase.cluster.distributed
true
hbase.master
hadoop1:
6000
hbase.zookeeper.quorum
hadoop1,hadoop2,hadoop3
6)配置RegionSevers
$sudogedithbase/conf/regionservers
hadoop2
hadoop3
三、复制hbase目录
如果hadoop用户没有/usr目录下的写权限,需要先在hadoop2、hadoop3分别创建/usr/hbase目录,再更改其属主:
$sudomkdir/usr/hbase
$sudochown-Rhadoop:
hadoop/usr/hbase