Hadoop2.2.0伪分布式搭建简述

简述了自己搭建Hadoop伪分布式的过程,方便以后查看参考。

环境:Vmware10+RedHat6.3+hadoop2.2.0+JDK1.7

Hadoop模式:

本地模式:只能其一个reduce和一个map,用于调试

伪分布式模式:通过一台机器模拟分布式,在学习时使用。验证逻辑是否正确

集群模式:工作的模式,有几百上千台机器。

linux环境配

关闭防火墙

若是对外网提供的服务是绝对不能关闭防火墙的。而Hadoop一般是公司内部使用,有多台节点,且之间需要通信,此时若防火前将通信的端口屏蔽则无法访问,故为了省事选择关闭防火墙。

修改IP:我指定Ip为:192.168.8.88

为了避免每次启动机器IP会随机变化的请框

设置hostname,这里我命名为hadoop01

为每台机器设置一个名字,若出现问题可以方便定位到机器在哪,且主机名与ip在ETC/hosts下进行映射

安装jdk

安装Hadoop,并测试

设置ssh自动登录,ssh即 安全的shell

详细步骤:

步骤一:
修改虚拟机配置;

1、配置虚拟机IP

如上图,点击虚拟网络编辑器,配置host模式(这里使用主机模式)或桥接式

其中可以看到,host模式对应的网卡为VMnet1,配置其网段为192.168.8.0,之后进入到windows系统中更改Vmnet1的ip为固定的192.168.8.100

注这里配置的192.168.8.100位Windows下的虚拟机的Ip

,接下来配置虚拟机中linux的Ip:192.168.8.88,网关:192.168.8.1,如果要上网则必须配置DNS:8.8.8.8或8.8.4.4

此外如果为方便操作,最好在虚拟机上安装VMtools,详细安装步骤CSDN上很多。这里不再赘述。

2、修改主机名: vim /etc/sysconfig/network

3、防火墙设置:service iptables,提示对防火墙操作的指令,因为防火墙也是服务且服务名为iptables

service iptables status:查看防火墙状态

service iptables stop :关闭防火墙,再次重启机器后仍会启动。

因此要永久关闭防火墙:防火墙默认开启与关闭状态为chkconfig iptables --list ,如下图:

配置:vim /etc/inittab查看linux默认启动方式;默认为第5中图形界面。

使用:chkconfig iptables off ,将所有模式启动的linux中防火墙全部关闭

重启机器:reboot

重启开机之后查看主机名:hostname

查看IP:ifconfig

步骤二:安装JDK

必须使用1.6以上的,最好不用8

另:共享文件夹:cd /mnt/hgfs/目录下的

1、创建目录/usr/java 将下载的jdk解压到该目录下,

2、/etc/profile 文件中添加:注linux中环境变量间分割符为冒号“:”

export JAVA_HOME=jdk安装目录(即:/usr/java/jdk1.7.0_79)

     export PATH=$PATH:$JAVA_HOME/bin 

保存退出之后运行:source /etc/profile 使配置文件生效

步骤三:安装Hadoop

1、在根目录下创建一个/Hadoop目录,将下载的hadoop包解压到该目录下命令:

tar -zxvf hadoop-2.2.0.tar.gz  -C /Hadoop

解压之后的目录结构如下:

bin:存放一些可以执行的脚本,常用的有hadoop,yarn,hdfs等

include:存放头文件,类似于c的标准库

sbin:存放一些启动和关闭相关的脚本start-yarn.sh和stop-yarn.sh等

etc:存放Hadoop的配置文件,

share:Hadoop相关的jar包。

2、配置Hadoop,修改四个配置文件:

1) vim hadoop-env.sh 在文件中设置JAVA_HOME

     export JAVA_HOME=/usr/java/jdk1.7.0_79

2)修改core-site.xml文件

<configuration>

<property> 用来指定nameNode的地址

<name>fs.defaultFS</name>

<value>hdfs://192.168.8.88:9000</value>

</property>

<property>用来指定Hadoop运行时产生的文件的存放路径

<name>hadoop.tmp.dir</name>

<value>/Hadoop/hadoop-2.2.0/tmp</value>

</property>

</configuration>

3)hdfs-site.xml文件

<configuration>

<property>用来指定hdfs保存数据副本的数量,包含其本身,因为这里是伪分布式,故设置为1.在真正的多机的分布式中默认保存三份

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

4)mapred-site.xml原本没有此文件只有mapred-site.xml.temple文件 ,故可将原有的文件mapred-site.xml.temple更名为mapred-site.xml

mv mapred-site.xml.template  mapred-site.xml

添加内容如下:

<configuration>

<property> 告诉Hadoop以后mapreduce(MR)运行在yarn上

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

5)yarn-site.xml

<configuration>

<property> 告诉Hadoop以后NodeManager获取数据的方式为shuffle方式

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>指定yarn中ResourceManager的地址

<name>yarn.resourcemanager.hostname</name>

<value>hadoop01</value>

</property>

</configuration>

6)将Hadoop添加到环境变量:/etc/profile。方便以后的对hadoop指令的使用

 添加命令:

export HADOOP_HOME=/Hadoop/hadoop-2.2.0

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

刷新配置:

source /etc/profile

步骤四:初始化HDFS(格式化文件系统)

1】以前一直在用:hadoop namenode -format    现在已经不用了

现在常使用:hdfs namenode -format

看到下面这句说明格式化成功

在Hadoop目录下会出现一个tmp目录:

2】启动HDFS和yarn

运行sbin/start-all.sh  因为当前只是一台机器上安装的伪分布式,所以一次性启动所有服务,包括HDFS和yarn,输入几次“yes”和root密码启动成功之后,

关闭时使用sbin/stop-all.sh

注意:在hadoop2.x中推荐先调用start-dfs.sh后调用start-yarn.sh ,来启动任务

3】输入:jps查看显示当前Hadoop进程信息:如果显示如下则表示之前的额配置成功了:

注jps是java的命令(使用which jps查看jps脚本所在目录 )

上面指令执行后若Hadoop正常开启,会显示一下进程

NameNode:HDFS中负责管理DataNodes的,HDFS部门中的老大

DataNode:HDFS中负责数据存储的节点,HDFS部门中的小弟。

SecondaryNameNode:相当于nameNode的助理,帮助NameNode完成数据同步工作

ResourceManager:资源管理器,YARN部门中的老大。

NodeManager:YARN部门中的小弟,确切的说是小组长,他手下还有干活的小弟

4】当然,也可以使用使用浏览器登陆验证:注:我安装Hadoop的linux的为;192.168.8.88,主机名为hadoop01。故根据自身情况修改

http://192.168.8.88:50070(hdfs管理界面)

http://192.168.8.88:8088(Mr管理界面)

注:登陆http://192.168.8.88:50070后可以看到

点击live Node进入当前活动节点的界面:

但是点击Browse the filesystem后无法正常显示,且地址栏内容显示为:



http://hadoop01:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/&nnaddr=192.168.8.88:9000

即主机是以主机名的方式hadoop01显示而非IP地址,因此需要修改windows系统中的C:/windows/system32/drivers/etc/hosts文件将主机名hadoop01配置到文件中  此时刷新网页显示如下:

空的目录,说明当前里面什么都没有。

第五步:验证HDFS;

上传文件:Hadoop fs  -put  linux文件系统上文件    Hadoop的HDFS文件系统上,将 /root/test.txt传到hdfs://hadoop01:9000/HDFSTest文件夹下:

hadoop fs -put /root/test.txt hdfs://hadoop01:9000/HDFSTest 

运行成功后刷新浏览器页面显示:

当然上传到HDFS上的文件也是可以通过浏览器下载的

通过命名行下载:hadoop  fs -get hdfs://hadoop01:9000/HDFSTest  /home/HDFSTest 

第六步:测试MapReduce和YARN

在Hadoop安装目录中的share目录下,存放有jar包,找到mapreduce的jar包,其中有许多测试案例,使用jar包中提供的wordcount方法,需要传入一个文件,将结果输出到某个文件中。

hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcount /in.txt  /out,txt

/in.txt:HDFS上的输入的将被测试的文件

/out.txt:HDFS上的存放输出结果的文件

in.txt文件中内容参考如下:

hello tom

hello jok

hello jony

hello tom

经过计算,会统计每个单词出现的次数,并将结果保存在out.txt中

第七步:SSH免登录

如上,之前开启hadoop时多次输入yes和root密码很麻烦,而且这仅仅只是一台机器,若为成百上千台机器时,那将会是一个巨大的工作量。下面我们来设置,SSh免密码登陆,

1】

当前虚拟机(192.168.8.88 )向192,168.8.99发送一个命令,在根目录下创建一个文件

ssh 192.168.8.99 mkdir /test  ,此时会让输入8.99的密码。

至此可以看出来为了安全当使用ssh协议连接其他机器时,必须输入对方系统的密码,即使是使用ssh连接自己本身也需要密码。

2】

免登陆配置

1)进入到~目录下有一个.ssh的目录:cd ~/.ssh 其中只有一个known_hosts文件

2)生成秘钥:运行ssh-keygen -t rsa 四个回车,之后会在~/.ssh目录下会生成两个文件一个公钥(id_rsa.pub),一个私钥(id_rsa),其中为一堆字符串。要实现登陆本系统不需要输入密码需要将公钥传给自己系统已认证的钥匙中(即放到authorized_keys 中),实现免登陆自己。

cp id_rsa.pub
~/.ssh/authorized_keys 
此时~/.ssh目录下会生成authorized_keys文件,

现在再次使用ssh登陆本身系统将不用输密码:ssh hadoop01;

且此时在使用sbin/start-all.sh启动hadoop将不再要求输入密码,可以直接启动。

3)将公钥的内容拷贝到想要免登陆的机器上

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  或 ssh-copy-id hadoop01(将我当前的公钥发送给hadoop01,因为我想免登陆到hadoop01)

例如

192.168.8.88免密码登陆到192.168.8.99,将192.168.8.88的公钥拷给192.168.8.99,注意这里是谁将自身公钥拷给谁。

ssh-copy-id 192.168.8.99 ,将自己的公钥给对方,第一次发送时需要输入对方的密码,之后就可以免登陆到对方系统。

总结:

1)现在自己机器上生成一个公钥和一个私钥,ssh-keygen -t rsa

2)将自己的公钥发送给想要登陆的机器,

原理如下图:

时间: 2024-10-13 10:27:33

Hadoop2.2.0伪分布式搭建简述的相关文章

hadoop2.2.0伪分布式搭建

一.准备linux环境 1.更改VMware适配器设置 由于是在单机环境下进行学习的,因此选择适配器模式是host-only模式,如果想要联网,可以选择桥接模式,配置的方式差不多. 点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.85.0 子网掩码:255.255.255.0 -> apply -> ok 回到windows --> 打开网络

hadoop2.2.0伪分布式搭建3--安装Hadoop

3.1上传hadoop安装包 3.2解压hadoop安装包 mkdir /cloud #解压到/cloud/目录下 tar -zxvf hadoop-2.2.0.tar.gz -C /cloud/ 3.3修改配置文件(5个) 第一个:hadoop-env.sh #在27行修改 export JAVA_HOME=/usr/java/jdk1.7.0_55 第二个:core-site.xml <configuration> <!-- 指定HDFS老大(namenode)的通信地址 -->

hadoop:hadoop2.2.0伪分布式搭建

1.准备Linux环境     1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.68.0 子网掩码:255.255.255.0 -> apply -> ok          回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 ->

hadoop2.6.0 伪分布式搭建

haoop2.0的架构图 HDFS2的架构 负责数据的分布式存储 主从结构 主节点,可以有2个: namenode 从节点,有很多个: datanode namenode负责: 接收用户操作请求,是用户操作的入口 维护文件系统的目录结构,称作命名空间 datanode负责: 存储文件 Yarn的架构 资源的调度和管理平台 主从结构 主节点,可以有2个: ResourceManager 从节点,有很多个: NodeManager ResourceManager负责: 集群资源的分配与调度 MapR

hadoop2.2.0伪分布式搭建1--准备Linux环境

1.0点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 -> apply -> ok 回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.1.110

hadoop2.2.0伪分布式搭建2--安装JDK

2.1上传 2.2解压jdk #创建文件夹 mkdir /usr/java #解压 tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/ 2.3将java添加到环境变量中 vim /etc/profile #在文件最后添加 export JAVA_HOME=/usr/java/jdk1.7.0_55 export PATH=$PATH:$JAVA_HOME/bin #刷新配置 source /etc/profile

在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境

近几年大数据越来越火热.由于工作需要以及个人兴趣,最近开始学习大数据相关技术.学习过程中的一些经验教训希望能通过博文沉淀下来,与网友分享讨论,作为个人备忘. 第一篇,在win7虚拟机下搭建hadoop2.6.0伪分布式环境. 1. 所需要的软件 使用Vmware 11.0搭建虚拟机,安装Ubuntu 14.04.2系统. Jdk 1.7.0_80 Hadoop 2.6.0 2. 安装vmware和ubuntu 略 3. 在ubuntu中安装JDK 将jdk解压缩到目录:/home/vm/tool

琐碎-hadoop2.2.0伪分布式和完全分布式安装(centos6.4)

环境是centos6.4-32,hadoop2.2.0 伪分布式文档:http://pan.baidu.com/s/1kTrAcWB 完全分布式文档:http://pan.baidu.com/s/1hqIeBGw 和1.x.0.x有些不同,特别是yarn.

Dockerfile完成Hadoop2.6的伪分布式搭建

在 <Docker中搭建Hadoop-2.6单机伪分布式集群>中在容器中操作来搭建伪分布式的Hadoop集群,这一节中将主要通过Dokcerfile 来完成这项工作. 1 获取一个简单的Docker系统镜像,并建立一个容器. 1.1 这里我选择下载CentOS镜像 docker pull centos 1.2 通过docker tag命令将下载的CentOS镜像名称换成centos,并删除老标签 docker tag docker.io/centos centosdocker rmr dock