大数据技术基础实验报告Linux环境下hadoop集群的搭建与基本配置.docx
- 文档编号:8831010
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:13
- 大小:86.18KB
大数据技术基础实验报告Linux环境下hadoop集群的搭建与基本配置.docx
《大数据技术基础实验报告Linux环境下hadoop集群的搭建与基本配置.docx》由会员分享,可在线阅读,更多相关《大数据技术基础实验报告Linux环境下hadoop集群的搭建与基本配置.docx(13页珍藏版)》请在冰点文库上搜索。
大数据技术基础实验报告Linux环境下hadoop集群的搭建与基本配置
大数据技术基础实验报告-Linux环境下hadoop集群的搭建与基本配置
实验内容:
(一)安装和配置CentOS
(二)安装和配置Java环境
(三)启动和配置SSH绵密登录
(四)安装和配置Hadoop
设置仅主机连接模式启动Linux虚拟机,手动设置IP地址,注意和windows下虚拟网卡地址一个网段;
2.安装winscp(windows和linux虚拟机传数据的小工具),pieTTY(linux小客户端),并使用工具连接到虚拟机linux,通过winscp上传jdk、hadoop到linux虚拟机;
3.永久关闭防火墙,和Selinux,不然ssh无密码连接时可能会无法连接。
执行如下命令
/etc/init.d/iptablesstop
chkconfigiptablesoff
vi/etc/sysconfig/selinux设置SELINUX=disabled
4.进入/etc/hosts添加自己的IP地址和主机名。
如
192.168.18.120hadoop
5.安装jdk并配置环境变量。
(用RPM包或压缩包)。
rmp安装命令:
rpm-ivhjdk-7u67-linux-x86.rpm
mv命令jdk相关目录改名
进入/etc/profile文件,添加Java环境变量
vi/etc/profile
exportJAVA_HOME=/usr/local/jdk
exportPATH=$PATH:
$JAVA_HOME/bin
执行source/etc/profile刷新配置文件
验证jdk是否成功。
Java-version
6.配置用户免密码登录。
7.安装hadoop(安装版本hadoop2.7版本以上)
使用ssh上传文件到linux主机
执行了mv命令解压后更改文件夹名为hadoop
在/etc/profile文件下添加环境变量,如下
exportHADOOP_HOME=/home/hadoop/hadoop
exportPATH=$PATH:
$HADOOP_HOME/bin
保存配置文件
执行source/etc/profile使其立即生效
切换到hadoop_home下etc/Hadoop下修改相关配置文件。
8.进行配置文件的修改,版本不同配置文件位置会不同。
修改hadoop-env.sh
ViHadoop-env.sh
ExportJAVA-HOME=/usr/local/jdk依赖于前期配置的路径,如果按照视频上面的需要这样设置。
如果按照本文档,使用下面设置。
修改yarn-env.sh道理一样
9.安装配置结果
NameNode端的进程如下:
DataNode端的进程如下:
实验基本过程:
1:
环境:
Ubuntu14.0464位
2:
准备工作:
选定一台机器作为Master
在Master节点上配置hadoop用户、安装SSHserver、安装Java环境
在Master节点上安装Hadoop,并完成配置
在其他Slave节点上配置hadoop用户、安装SSHserver、安装Java环境
将Master节点上的/usr/local/hadoop目录复制到其他Slave节点上
在Master节点上开启Hadoop
3:
网络配置:
需要更改网络连接方式为桥接(Bridge)模式,才能实现多个节点互连,例如在VirturalBox中的设置如下图。
此外,如果节点的系统是在虚拟机中直接复制的,要确保各个节点的Mac地址不同(可以点右边的按钮随机生成MAC地址,否则IP会冲突)
4:
SSH无密码登陆节点:
这个操作是要让Master节点可以无密码SSH登陆到各个Slave节点上。
5:
配制path变量:
在单机伪分布式配置教程的最后,说到可以将Hadoop安装目录加入PATH变量中,这样就可以在任意目录中直接使用hadoo、hdfs等命令了,如果还没有配置的,需要在Master节点上进行配置。
首先执行vim~/.bashrc,加入一行。
6:
配置集群/分布式环境:
实验结果:
疑难小结(总结实验中遇到的问题):
1:
HDFS进入安全模式:
Namenodeisinsafemodemode
退出安全模式,执行命令:
hadoopdfsadmin-safemodeleave
2:
INFOutil.NativeCodeLoader-Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-Javaclasseswhereapplicable--hadoop的本地库加载失败。
检查native库的版本信息,32bit的版本和64bit的版本在不匹配的机器上会加载失败,检查的命令是file
native库依赖的glibc的版本问题。
如果在高版本gcc(glibc)的机器上编译的native库,放到低版本的机器上使用,会由于glibc版本不一致导致该错误。
3:
mapstolocalhost,butthisdoesnotmapback
解决:
原因:
因为DNS服务器把192.168.x.x的地址都反向解析成localhost,而DNS服务器不是自己的,不能改。
办法:
编辑ssh客户端的/etc/hosts文件,把出问题的IP地址和主机名加进去,就不会报这样的错了。
4:
jps命令正常,但是8088端口的WEB页面无法访问
解决方案:
检查一下防火墙和selinux状态,将防火墙和selinux关闭
防火墙:
serviceiptablesstatus
永久修改:
修改/etc/selinux/config文件中设置SELINUX=disabled,然后重启服务器。
5:
8088端口访问正常,但是看不到datanode节点
解决方案:
可能出现的问题和解决方案:
1.8080端口没有打开,手动启动yarn
主要操作过程:
1:
HDFS进入安全模式:
Namenodeisinsafemodemode
退出安全模式,执行命令:
hadoopdfsadmin-safemodeleave
2:
INFOutil.NativeCodeLoader-Unabletoloadnative-hadooplibraryforyourplatform...usingbuiltin-Javaclasseswhereapplicable--hadoop的本地库加载失败。
检查native库的版本信息,32bit的版本和64bit的版本在不匹配的机器上会加载失败,检查的命令是file
native库依赖的glibc的版本问题。
如果在高版本gcc(glibc)的机器上编译的native库,放到低版本的机器上使用,会由于glibc版本不一致导致该错误。
3:
mapstolocalhost,butthisdoesnotmapback
解决:
原因:
因为DNS服务器把192.168.x.x的地址都反向解析成localhost,而DNS服务器不是自己的,不能改。
办法:
编辑ssh客户端的/etc/hosts文件,把出问题的IP地址和主机名加进去,就不会报这样的错了。
4:
jps命令正常,但是8088端口的WEB页面无法访问
解决方案:
检查一下防火墙和selinux状态,将防火墙和selinux关闭
防火墙:
serviceiptablesstatus
永久修改:
修改/etc/selinux/config文件中设置SELINUX=disabled,然后重启服务器。
5:
8088端口访问正常,但是看不到datanode节点
解决方案:
可能出现的问题和解决方案:
1.8080端口没有打开,手动启动yarn
主要操作过程:
1先决条件
确保在你集群中的每个节点上都安装了所有必需软件:
sun-JDK,ssh,Hadoop
JavaTM1.5.x,必须安装,建议选择Sun公司发行的Java版本。
ssh必须安装并且保证sshd一直运行,以便用Hadoop脚本管理远端Hadoop守护进程。
2实验环境搭建
2.1准备工作
操作系统:
Ubuntu
部署:
Vmvare
在vmvare安装好一台Ubuntu虚拟机后,可以导出或者克隆出另外两台虚拟机。
说明:
保证虚拟机的ip和主机的ip在同一个ip段,这样几个虚拟机和主机之间可以相互通信。
为了保证虚拟机的ip和主机的ip在同一个ip段,虚拟机连接设置为桥连。
准备机器:
一台master,若干台slave,配置每台机器的/etc/hosts保证各台机器之间通过机器名可以互访。
为保证环境一致先安装好JDK和ssh:
2.2安装JDK
#安装JDK
$sudoapt-getinstallsun-java6-jdk1.2.3
这个安装,java执行文件自动添加到/usr/bin/目录。
验证shell命令:
java-version看是否与你的版本号一致。
2.3下载、创建用户
$useraddhadoop
$cd/home/hadoop
在所有的机器上都建立相同的目录,也可以就建立相同的用户,最好是以该用户的home路径来做hadoop的安装路径。
例如在所有的机器上的安装路径都是:
/home/hadoop/hadoop-0.20.203,这个不需要mkdir,在/home/hadoop/下解压hadoop包的时候,会自动生成)
(当然可以安装/usr/local/目录下,例如/usr/local/hadoop-0.20.203/
chown-Rhadoop/usr/local/hadoop-0.20.203/
chgrp-Rhadoop/usr/local/hadoop-0.20.203/
)
(最好不要使用root安装,因为不推荐各个机器之间使用root访问)
2.4安装ssh和配置
1)安装:
sudoapt-getinstallssh
这个安装完后,可以直接使用ssh命令了。
执行$netstat-nat查看22端口是否开启了。
测试:
sshlocalhost。
输入当前用户的密码,回车就ok了。
说明安装成功,同时ssh登录需要密码。
(这种默认安装方式完后,默认配置文件是在/etc/ssh/目录下。
sshd配置文件是:
/etc/ssh/sshd_config):
注意:
在所有机子都需要安装ssh。
2)配置:
3)首先设置namenode的ssh为无需密码的、自动登录
切换到hadoop用户(保证用户hadoop可以无需密码登录,因为我们后面安装的hadoop属主是hadoop用户。
)
$suhadoop
cd/home/hadoop
$ssh-keygen-trsa
然后一直按回车
完成后,在home跟目录下会产生隐藏文件夹.ssh
测试:
$sshlocalhost
发现链接成功,并且无需密码。
4)复制authorized_keys到node2和node3上
为了保证node1可以无需密码自动登录到node2和node3,先在node2和node3上执行
$suhadoop
cd/home/hadoop
$ssh-keygen-trsa
一路按回车.
然后回到node1,复制authorized_keys到node2和node3
[hadoop@hadoop.ssh]$scpauthorized_keysnode2:
/home/hadoop/.ssh/
[hadoop@hadoop.ssh]$scpauthorized_keysnode3:
/home/hadoop/.ssh/
这里会提示输入密码,输入hadoop账号密码就可以了。
改动你的authorized_keys文件的许可权限
[hadoop@hadoop.ssh]$chmod644authorized_keys
测试:
sshnode2或者sshnode3(第一次需要输入yes)。
如果不须要输入密码则配置成功,如果还须要请检查上面的配置能不能正确。
2.5安装Hadoop
#切换为hadoop用户
suhadoop
wget
下载安装包后,直接解压安装即可:
$tar-zxvfhadoop-0.20.203.0rc1.tar.gz
6)配置conf/hadoop-env.sh文件
配置conf/hadoop-env.sh文件
#添加exportJAVA_HOME=/usr/lib/jvm/java-6-sun/
这里修改为你的jdk的安装位置。
测试hadoop安装:
bin/hadoopjarhadoop-0.20.2-examples.jarwordcountconf//tmp/out
3.集群配置(所有节点相同)
3.1配置文件:
conf/core-site.xml
xmlversion="1.0"?
>
xml-stylesheettype="text/xsl"href="configuration.xsl"?
>
//node1:
49000
1)fs.default.name是NameNode的URI。
hdfs:
//主机名:
端口/
2)hadoop.tmp.dir:
Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。
不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。
3.2配置masters和slaves主从结点
配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。
4.hadoop启动
4.1格式化一个新的分布式文件系统
先格式化一个新的分布式文件系统
$cdhadoop-0.20.203
$bin/hadoopnamenode-format
查看输出保证分布式文件系统格式化成功
执行完后可以到master机器上看到/home/hadoop//name1和/home/hadoop//name2两个目录。
在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。
4.2启动所有节点
启动方式1:
$bin/start-all.sh(同时启动HDFS和Map/Reduce)
执行完后可以到slave(node1,node2)机器上看到/home/hadoop/hadoopfs/data1和/home/hadoop/data2两个目录。
5.测试
1)浏览NameNode和JobTracker的网络接口,它们的地址默认为:
NameNode-http:
//node1:
50070/
JobTracker-http:
//node2:
50030/
3)使用netstat–nat查看端口49000和49001是否正在使用。
4)使用jps查看进程
要想检查守护进程是否正在运行,可以使用jps命令(这是用于JVM进程的ps实用程序)。
这个命令列出5个守护进程及其进程标识符。
5)将输入文件拷贝到分布式文件系统:
$bin/hadoopfs-mkdirinput
$bin/hadoopfs-putconf/core-site.xmlinput
运行发行版提供的示例程序:
$bin/hadoopjarhadoop-0.20.2-examples.jargrepinputoutput'dfs[a-z.]+'
6.
查看输出文件:
将输出文件从分布式文件系统拷贝到本地文件系统查看:
$bin/hadoopfs-getoutputoutput
$catoutput/*
7.添加节点
可扩展性是HDFS的一个重要特性,首先在新加的节点上安装hadoop,然后修改$HADOOP_HOME/conf/master文件,加入NameNode主机名,然后在NameNode节点上修改$HADOOP_HOME/conf/slaves文件,加入新加节点主机名,再建立到新加节点无密码的SSH连接
运行启动命令:
start-all.sh
然后可以通过http:
//(Masternode的主机名):
50070查看新添加的DataNode
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 技术 基础 实验 报告 Linux 环境 hadoop 集群 搭建 基本 配置