大数据技术基础实验报告-Linux环境下hadoop集群的搭建与基本配置

大数据技术基础实验报告-Linux环境下hadoop集群的搭建与基本配置

2023年7月4日发(作者:)

大数据技术基础实验报告-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/iptables stop

chkconfig iptables off

vi /etc/sysconfig/selinux 设置SELINUX=disabled

4. 进入/etc/hosts添加自己的IP地址和主机名。如

192.168.18.120 hadoop

5. 安装jdk并配置环境变量。(用RPM包或压缩包)。

rmp安装命令:rpm -ivh

mv命令jdk相关目录改名

进入/etc/profile文件,添加Java环境变量

vi /etc/profile

export JAVA_HOME=/usr/local/jdk

export PATH=$PATH:$JAVA_HOME/bin

执行source /etc/profile 刷新配置文件

验证jdk是否成功。Java -version

6. 配置用户免密码登录。

7.安装hadoop(安装版本hadoop 2.7版本以上)

使用ssh上传文件到linux主机

执行了mv命令解压后更改文件夹名为hadoop

在/etc/profile文件下添加环境变量,如下

export HADOOP_HOME=/home/hadoop/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

保存配置文件

执行source /etc/profile 使其立即生效

切换到hadoop_home 下etc/Hadoop下修改相关配置文件。

8. 进行配置文件的修改,版本不同配置文件位置会不同。

第 1 页 共 10 页 修改

Vi

Export JAVA-HOME=/usr/local/jdk 依赖于前期配置的路径,如果按照视频上面的需要这样设置。如果按照本文档,使用下面设置。

修改 道理一样

9.安装配置结果

NameNode端的进程如下:

DataNode端的进程如下:

实验基本过程:

1:环境:Ubuntu 14.04 64位

2:准备工作:

选定一台机器作为 Master

在 Master 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境

在 Master 节点上安装 Hadoop,并完成配置

在其他 Slave 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境

将 Master 节点上的 /usr/local/hadoop 目录复制到其他 Slave 节点上

在 Master 节点上开启 Hadoop

3:网络配置:

第 2 页 共 10 页 需要更改网络连接方式为桥接(Bridge)模式,才能实现多个节点互连,例如在

VirturalBox 中的设置如下图。此外,如果节点的系统是在虚拟机中直接复制的,要确保各个节点的 Mac 地址不同(可以点右边的按钮随机生成 MAC 地址,否则 IP 会冲突)

4:SSH无密码登陆节点:

这个操作是要让 Master 节点可以无密码 SSH 登陆到各个 Slave 节点上。

5:配制path变量:

在单机伪分布式配置教程的最后,说到可以将 Hadoop 安装目录加入 PATH 变量中,这样就可以在任意目录中直接使用 hadoo、hdfs 等命令了,如果还没有配置的,需要在 Master 节点上进行配置。首先执行 vim ~/.bashrc,加入一行。

6:配置集群/分布式环境:

实验结果:

第 3 页 共 10 页 疑难小结(总结实验中遇到的问题):

1: HDFS进入安全模式: Name node is in safemode mode

退出安全模式, 执行命令: hadoop dfsadmin -safemode leave

2:INFO CodeLoader - Unable to load native-hadoop library for your

< using builtin-Java classes where applicable -- hadoop的本地库加载失败。

检查native库的版本信息,32bit的版本和64bit的版本在不匹配的机器上会加载失败,检查的命令是file

native库依赖的glibc的版本问题。如果在高版本gcc(glibc)的机器上编译的native库,放到低版本的机器上使用,会由于glibc版本不一致导致该错误。

3:

maps to localhost, but this does not map back

解决:

原因: 因为DNS服务器把 的地址都反向解析成 localhost ,而DNS服务器不是自己的,不能改。

办法: 编辑ssh 客户端的 /etc/hosts 文件,把出问题的IP 地址和主机名加进去,就不会报这样的错了。

4:

jps命令正常,但是8088端口的WEB页面无法访问

解决方案:

检查一下防火墙和selinux状态, 将防火墙和selinux关闭

防火墙:

service iptables status

永久修改:

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

5:

8088端口访问正常,但是看不到datanode节点

解决方案:

可能出现的问题和解决方案:1.8080端口没有打开, 手动启动yarn

主要操作过程:

1: HDFS进入安全模式: Name node is in safemode mode

退出安全模式, 执行命令: hadoop dfsadmin -safemode leave

第 4 页 共 10 页 2:INFO CodeLoader - Unable to load native-hadoop library for your

< using builtin-Java classes where applicable -- hadoop的本地库加载失败。

检查native库的版本信息,32bit的版本和64bit的版本在不匹配的机器上会加载失败,检查的命令是file

native库依赖的glibc的版本问题。如果在高版本gcc(glibc)的机器上编译的native库,放到低版本的机器上使用,会由于glibc版本不一致导致该错误。

3:

maps to localhost, but this does not map back

解决:

原因: 因为DNS服务器把 的地址都反向解析成 localhost ,而DNS服务器不是自己的,不能改。

办法: 编辑ssh 客户端的 /etc/hosts 文件,把出问题的IP 地址和主机名加进去,就不会报这样的错了。

4:

jps命令正常,但是8088端口的WEB页面无法访问

解决方案:

检查一下防火墙和selinux状态, 将防火墙和selinux关闭

防火墙:

service iptables status

永久修改:

修改/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

第 5 页 共 10 页 部署:Vmvare

在vmvare安装好一台Ubuntu虚拟机后,可以导出或者克隆出另外两台虚拟机。

说明:

保证虚拟机的ip和主机的ip在同一个ip段,这样几个虚拟机和主机之间可以相互通信。

为了保证虚拟机的ip和主机的ip在同一个ip段,虚拟机连接设置为桥连。

准备机器:一台master,若干台slave,配置每台机器的/etc/hosts保证各台机器之间通过机器名可以互访。

为保证环境一致先安装好JDK和ssh:

2.2 安装JDK

#安装JDK

$ sudo apt-get install sun-java6-jdk1.2.3

这个安装,java执行文件自动添加到/usr/bin/目录。

验证 shell命令 :java -version 看是否与你的版本号一致。

2.3下载、创建用户

$ useradd hadoop

$ cd /home/hadoop

在所有的机器上都建立相同的目录,也可以就建立相同的用户,最好是以该用户的home路径来做hadoop的安装路径。

例如在所有的机器上的安装路径都是:/home/hadoop/hadoop-0.20.203,这个不需要mkdir,在/home/hadoop/下解压hadoop包的时候,会自动生成)

(当然可以安装/usr/local/目录下,例如/usr/local/hadoop-0.20.203/

chown -R hadoop /usr/local/hadoop-0.20.203/

chgrp -R hadoop /usr/local/hadoop-0.20.203/

(最好不要使用root安装,因为不推荐各个机器之间使用root访问 )

2.4 安装ssh和配置

1) 安装:sudo apt-get install ssh

这个安装完后,可以直接使用ssh命令 了。

执行$ netstat -nat 查看22端口是否开启了。

测试:ssh localhost。

第 6 页 共 10 页 输入当前用户的密码,回车就ok了。说明安装成功,同时ssh登录需要密码。

(这种默认安装方式完后,默认配置文件是在/etc/ssh/目录下。sshd配置文件是:/etc/ssh/sshd_config):

注意:在所有机子都需要安装ssh。

2) 配置:

3) 首先设置namenode的ssh为无需密码的、自动登录

切换到hadoop用户( 保证用户hadoop可以无需密码登录,因为我们后面安装的hadoop属主是hadoop用户。)

$ su hadoop

cd /home/hadoop

$ ssh-keygen -t rsa

然后一直按回车

完成后,在home跟目录下会产生隐藏文件夹.ssh

测试:

$ssh localhost

发现链接成功,并且无需密码。

4 ) 复制authorized_keys到node2 和node3 上

为了保证node1可以无需密码自动登录到node2和node3,先在node2和node3上执行

$ su hadoop

cd /home/hadoop

$ ssh-keygen -t rsa

一路按回车.

然后回到node1,复制authorized_keys到node2 和node3

[hadoop@hadoop .ssh]$ scp authorized_keys node2:/home/hadoop/.ssh/

[hadoop@hadoop .ssh]$ scp authorized_keys node3:/home/hadoop/.ssh/

这里会提示输入密码,输入hadoop账号密码就可以了。

改动你的 authorized_keys 文件的许可权限

[hadoop@hadoop .ssh]$chmod 644 authorized_keys

测试:ssh node2或者ssh node3(第一次需要输入yes)。

如果不须要输入密码则配置成功,如果还须要请检查上面的配置能不能正确。

2.5 安装Hadoop

#切换为hadoop用户

su hadoop

wget//hadoop/common/hadoop-0.20.203.0/

第 7 页 共 10 页

下载安装包后,直接解压安装即可:

$ tar -

6)配置conf/文件

配置conf/文件

#添加export JAVA_HOME=/usr/lib/jvm/java-6-sun/

这里修改为你的jdk的安装位置。

测试hadoop安装:bin/hadoop jar dcount

/tmp/out

3. 集群配置(所有节点相同)

3.1配置文件:conf/

hdfs://node1:49000

/home/hadoop/hadoop_home/var

1)是NameNode的URI。hdfs://主机名:端口/

第 8 页 共 10 页

conf/ 2) :Hadoop的默认临时路径,这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。

3.2配置masters和slaves主从结点

配置conf/masters和conf/slaves来设置主从结点,注意最好使用主机名,并且保证机器之间通过主机名可以互相访问,每个主机名一行。

4 .hadoop启动

4.1 格式化一个新的分布式文件系统

先格式化一个新的分布式文件系统

$ cd hadoop-0.20.203

$ bin/hadoop namenode -format

查看输出保证分布式文件系统格式化成功

执行完后可以到master机器上看到/home/hadoop//name1和/home/hadoop//name2两个目录。在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop。

4.2 启动所有节点

启动方式1:

$ bin/ (同时启动HDFS和Map/Reduce)

执行完后可以到slave(node1,node2)机器上看到/home/hadoop/hadoopfs/data1和/home/hadoop/data2两个目录。

5 .测试

1)浏览NameNode和JobTracker的网络接口,它们的地址默认为:

NameNode - node1:50070/

JobTracker - node2:50030/

3) 使用netstat –nat查看端口49000和49001是否正在使用。

4) 使用jps查看进程

要想检查守护进程是否正在运行,可以使用 jps 命令(这是用于 JVM 进程的ps 实用程序)。这个命令列出 5 个守护进程及其进程标识符。

5)将输入文件拷贝到分布式文件系统:

$ bin/hadoop fs -mkdir input

$ bin/hadoop fs -put conf/ input

第 9 页 共 10 页

运行发行版提供的示例程序:

$ bin/hadoop jar grep input output 'dfs[a-z.]+'

6.

查看输出文件:

将输出文件从分布式文件系统拷贝到本地文件系统查看:

$ bin/hadoop fs -get output output

$ cat output/*

7.添加节点

可扩展性是HDFS的一个重要特性,首先在新加的节点上安装hadoop,然后修改$HADOOP_HOME/conf/master文件,加入 NameNode主机名,然后在NameNode节点上修改$HADOOP_HOME/conf/slaves文件,加入新加节点主机名,再建立到新加节点无密码的SSH连接

运行启动命令:

然后可以通过(Masternode的主机名):50070查看新添加的DataNode

第 10 页 共 10 页

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688462189a141039.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信