Hadoop伪分布模式的安装

Hadoop伪分布模式的安装

【环境参数】

(1)Host OS:Win7 64bit

(2)IDE:Eclipse Version: Luna Service Release 2 (4.4.2)

(3)虚拟机:VMware 10

(4)Client OS:CentOS 6.4 32bit

注意:

若是CentOS 64bit,则在启动hadoop时,会报出警告。

原因:Hadoop的本地库($HADOOP_HOME/lib/native/libhadoop.so.1.0.0)是在32 bit平台编译的,只支持32bit,并不支持64bit的,因此,若在64bit的CentOS上启动就会报出警告,如下所示。


INFO namenode.NameNode: createNameNode [-format]

Java HotSpot(TM) Server VM warning: You have loaded library /home/hadoop/app/hadoop-2.4.1/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard.

The VM will try to fix the stack guard now.

It‘s highly recommended that you fix the library with ‘execstack -c <libfile>‘, or link it with ‘-z noexecstack‘.

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

(5)JDK版本:jdk-7u55-linux-i586.tar

(6)Hadoop Version:hadoop-2.4.1

(7)Hadoop集群配置参数

本集群共三个节点,一个是Namenode节点,剩余两个为Datanode节点。

7.1)Namenode节点参数

IP:192.168.234.8

主机名:namenode01

7.2)第一个DataNode节点参数

IP:192.168.234.11

主机名:datanode01

7.3)第二个DataNode节点参数

IP:192.168.234.12

主机名:datanode02

(8)本机在NAT连接(VMnet8)方式下,对应虚拟网络中的IP地址:192.168.234.1

【步骤描述】

0、安装步骤简述

Hadoop的伪分布式安装主要概括为以下步骤:

Linux环境的配置(IP, 主机名,hosts映射),安装配置JDK,安装配置hadoop,配置SSH面登陆等。

1、准备Linux环境(root用户操作)

1.1修改适配器设置

点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.234.255 子网掩码:255.255.255.0 -> apply -> ok

回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet8(NAT连接方式) -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.234.1 子网掩码:255.255.255.0 -> 点击确定

在虚拟软件上 --My Computer -> 选中虚拟机 -> 右键 -> settings -> network adapter -> host only -> ok

1.2关闭防火墙

查看防火墙状态

# service iptables status

关闭防火墙

# service iptables stop

查看防火墙开机启动状态

# chkconfig iptables --list

关闭防火墙开机启动

# chkconfig iptables off

1.3修改IP、主机名和hosts文件

1.3.1修改IP

两种方式:

第一种:通过Linux图形界面进行修改(强烈推荐)

进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.1.101 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply

第二种:修改配置文件方式(屌丝程序猿专用)

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

BOOTPROTO="static"               ###

HWADDR="00:0C:29:3C:BF:E7"

IPV6INIT="yes"

NM_CONTROLLED="yes"

ONBOOT="yes"

TYPE="Ethernet"

UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"

IPADDR="192.168.234.8"           ###

NETMASK="255.255.255.0"          ###

GATEWAY="192.168.234.255"            ###

1.3.2修改主机名

(1)编辑/etc/sysconfig/network文件

# vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=namenode01    ###

(2)使用hostname

# hostname namenode01

(3)重新登录使得新主机名生效

# logout

注意:修改datanode01和datanode02的节点的主机名也是这个步骤。

1.3.3修改主机名和IP的映射关系

编辑/etc/hosts文件。

# vim /etc/hosts

192.168.234.8 namenode01 (Namenode的IP地址与域名的映射)

192.168.234.11 datanode01 (第一个Datanode的IP地址与域名的映射)

192.168.234.12 datanode02 (第二个Datanode的IP地址与域名的映射)

1.4创建hadoop用户、用户组以及赋予权限

(1)创建用户和组

创建hadoop用户组hadoopGroup

# groupadd hadoopGroup

创建hadoop用户,并为其指定用户组,用户家目录

# useradd hadoop -g hadoopGroup -d /home/hadoop

(2)为hadoop用户赋予sudo权限

编辑“/etc/sudoers”文件,添加相关命令。


Allow root to run any commands anywhere

root    ALL=(ALL)   ALL

hadoop  ALL=(ALL)   ALL

1.4重启Linux

# shutdown -h now

2、安装JDK

2.1在【SecureSRT】中,按下“alt+p”后出现sftp窗口,然后put d:\xxx\yy\ll\jdk-7u_65-i585.tar.gz

2.2解压jdk

创建文件夹

# mkdir /home/hadoop/app

解压

# tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app

2.3将java添加到环境变量中

# vim /etc/profile

在文件最后添加

export JAVA_HOME=/home/hadoop/app/jdk1.7.0_55

export PATH=$PATH:$JAVA_HOME/bin

刷新配置

# source /etc/profile

3、安装hadoop2.4.1(hadoop用户操作)

注意01:在安装之前,要确保每台机器上都安装了JDK,配置了环境变量等。

注意02:将用户切换到hadoop用户。

注意03:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop伪分布式安装需要修改5个配置文件。

3.1配置hadoop(仅仅在单一节点配置,hadoop-server01)

第一个:hadoop-env.sh

vim hadoop-env.sh

#第27行

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

注意:原来的配置为“export JAVA_HOME=${ JAVA_HOME }”       ,是灵活的,在此要将其写死,因为原配置中,Hadoop可能会无法识别JAVA_HOME这个环境变量。

第二个:core-site.xml

core-site.xml

该文件中配置了Hadoop运行时的一些“公共的参数”。


<configuration>

<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->

<property>

<name>fs.defaultFS</name>

<!--  配置namenode  -->

<value>hdfs://namenode01:9000</value>

</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->

<property>

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

<value>/home/hadoop/app/hadoop-2.4.1/tmp</value>

</property>

</configuration>

解释1:

hdfs://namenode01:9000”是一个URI,就像mysql的URI一样“jdbc:mysql://host:3306/db?if..”。

其中:

hdfs://”和“jdbc:mysql://”这两个开头都是一个“Schema”,“hdfs://”是Hadoop的协议。

解释2:

“hdfs://namenode01:9000”,Schema后边的部分为“namenode的地址(或者域名、主机名)和端口号”。

namenode01:为Namenode节点主机的主机名。

解释3:

“hadoop.tmp.dir”为hadoop的工作目录。Hadoop运行过程中产生的中间目录都放置在该文件夹下。

具体的参数配置,请参考:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

第三个:hdfs-site.xml


<!-- 指定HDFS副本的数量 -->

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

hdfs-site.xml:具体规定hadoop工作的一些细节。

dfs.replication:指定HDFS副本的数量。

第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)

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

$ vim mapred-site.xml


<!-- 指定mr运行在yarn上 -->

<property>

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

<value>yarn</value>

</property>

第五个:yarn-site.xml


<!-- 指定YARN的老大(ResourceManager)的地址 -->

<property>

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

<value>namenode01</value>

</property>

<!-- reducer获取数据的方式 -->

<property>

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

<value>mapreduce_shuffle</value>

</property>

解释:

(1) “yarn.nodemanager.aux-services”:规定一些“从节点”的行为。

第六个:配置” etc/hadoop/slave”文件

作用:决定Hadoop在启动时,是否自动去启动从节点“datanode”。

$ vim slaves

输入下列内容

namenode01

datanode01

datanode02

(1)将从节点“datanode”的信息写入到该文件中。

因为上边五个xml文件配置的都是namenode,或者yarn或者resourceManager等相关的信息,并没有配置与“从节点datanode”相关的信息,因此,在slaves中需要配置相关从节点的信息。

(2) 该文件不是必须配置的。

若配置该文件,则在Hadoop启动的时候,可以Hadoop会自动启动“从节点datanode”,若没有配置,则可以通过手工的形式启动“从节点”。

3.2将hadoop添加到环境变量

# vim /etc/proflie

export JAVA_HOME=/home/hadoop/app/jdk1.7.0_55

export HADOOP_HOME=/home/hadoop/app/hadoop-2.4.1

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

# source /etc/profile

3.3远程拷贝:将已经配置完的单一节点的Hadoop配置拷贝到另外两台节点中

(1)已配置好的节点:

namenode01

(2)未配置的节点:

datanode01

datanode02

(3)目标:

将“namenode01”节点中已经配置好的Hadoop文件(/home/hadoop/app/hadoop-2.4.1)拷贝到节点“datanode01”和节点“datanode02”所对应的目录下。

(4)命令

[[email protected] namenode01 app]$ pwd

/home/hadoop/app/hadoop-2.4.1

[[email protected] namenode01 app]$ ls

hadoop-2.4.1

[[email protected] namenode01 hadoop]$

scp -r hadoop-2.4.1/ [email protected]:/home/hadoop/app

命令解析:

①scp:“Secure Copy”,一般用于“远程拷贝”。

②“[email protected] datanode01”:表示拷贝到“datanode01”这台主机中的“hadoop用户”下目录“/home/hadoop/app”中去。

若没有“hadoop”这个字符串,则表示将文件拷贝到其他节点上的与“当前执行命令的用户名”相同的那个用户目录下。

拷贝之前注意:

注意01在执行远程拷贝之前,在远程机器上,必须确保已经完成了初步的环境配置:

配置完IP,hostname,IP与域名的映射文件,hadoop用户和用户组,hadoop用户密码等,hadoop用户主目录的权限。

注意02若主拷贝方节点与目标拷贝方节点上的两个用户之间的权限不一样,则无法完成系统拷贝。。

注意03若另一台节点中没有“app”目录,则要先创建该目录,再执行远程拷贝。

3.4格式化namenode(是对namenode进行初始化)

切换到目录:$HADOOP_HOME/bin中,使用其中的命令“hdfs”。

注意:在使用能够分布式文件系统(即启动hadoop)之前,一定能够要先格式化。

# hdfs namenode -format

若出现下述命令,则说明hadoop文件系统的格式化已经成功了。


15/03/20 13:07:38 INFO common.Storage: Storage directory /app/ha             doop-2.4.1/tmp/dfs/name has been successfully formatted.

15/03/20 13:07:39 INFO namenode.NNStorageRetentionManager: Going to              retain 1 images with txid >= 0

15/03/20 13:07:39 INFO util.ExitUtil: Exiting with status 0

15/03/20 13:07:39 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode at namenode01/192.168.234.8

************************************************************/

所谓格式化也就是在用户自己创建的“$HADOOP/tmp”目录下,写入一些初始的元数据文件。格式化完毕后,会在$HADOOP_HOME/tmp/current目录下,生成HDFS的相关数据文件,如下所示。


[[email protected] current]$ pwd

/home/hadoop/app/hadoop-2.4.1/tmp/dfs/name/current

[[email protected] current]$ ls

edits_0000000000000000001-0000000000000000002

edits_0000000000000000003-0000000000000000005

fsimage_0000000000000000018

fsimage_0000000000000000018.md5

fsimage_0000000000000000020

fsimage_0000000000000000020.md5

seen_txid

VERSION

3.5启动hadoop

注意:在使用能够分布式文件系统之前,一定能够要先格式化。

先启动HDFS

sbin/start-dfs.sh

再启动YARN

sbin/start-yarn.sh

或者也可以通过如下Web界面来确认HDFS是否启动成功:

若没有启动“start-dfs.sh”,则该界面是不能够成功启动的。

http://192.168.234.8:50070 (HDFS管理界面,显示NameNode信息)

http:// 192.168.234.8:8088 (MR管理界面)

3.6验证是否启动成功

使用jps命令验证

27408 NameNode

28218 Jps

27643 SecondaryNameNode

28066 NodeManager

27803 ResourceManager (这个进程代表YARN,是一个分布式的资源管理系统)

27512 DataNode

4、配置ssh免登陆

生成ssh免登陆密钥

进入到我的home目录

cd ~/.ssh

ssh-keygen -t rsa (四个回车)

执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要免密登陆的目标机器上。

ssh-copy-id localhos

时间: 2024-10-01 03:54:40

Hadoop伪分布模式的安装的相关文章

Hadoop伪分布模式操作

http://blog.csdn.net/wangloveall/article/details/20195813 摘要:本文介绍Hadoop伪分布模式操作,适合于Hadoop学习.开发和调试. 关键词:Hadoop    伪分布式   文件配置 启动Hadoop支持三种模式操作,分别是单机模式操作.伪分布模式操作和全分布模式操作. 单机模式操作是Hadoop的默认操作模式,当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,会保守地选择最小配置,即单机模式.该模式主要用于开发调

3-2 Hadoop伪分布模式配置部署

Hadoop伪分布模式配置部署 一.实验介绍 1.1 实验内容 hadoop配置文件介绍及修改 hdfs格式化 启动hadoop进程,验证安装 1.2 实验知识点 hadoop核心配置文件 文件系统的格式化 测试WordCount程序 1.3 实验环境 hadoop2.7.6 CentOS6终端 1.4 适合人群 本课程难度为一般,属于初级级别课程,适合具有hadoop基础的用户. 1.5 相关文件 https://pan.baidu.com/s/1a_Pjl8uJ2d_-r1hbN05fWA

hadoop伪分布模式搭建(下)

搭建伪分布式是在一台机器上模拟分布式部署,方便学习和调试. 1.解压hadoop文件 下载好的hadoop ,我们可以通过使用WinSCP 把压缩包软件把它 从宿主机复制移动到linux 的/usr/local 目录下. 解压缩文件,并重命名为hadoop,方便使用.重命名后这时,hadoop 目录的完整路径是"/usr/local/hadoop" 设置环境变量HADOOP_HOME,修改文件"/etc/profile" 修改环境变量后,执行source 命令,使配

Spark教程-构建Spark集群-配置Hadoop伪分布模式并运行Wordcount示例(1)

第四步:配置Hadoop伪分布模式并运行Wordcount示例 伪分布模式主要涉及一下的配置信息: 修改Hadoop的核心配置文件core-site.xml,主要是配置HDFS的地址和端口号: 修改Hadoop中HDFS的配置文件hdfs-site.xml,主要是配置replication; 修改Hadoop的MapReduce的配置文件mapred-site.xml,主要是配置JobTracker的地址和端口: 在具体操作前我们先在Hadoop目录下创建几个文件夹: 下面开始构建具体的伪分布式

Hadoop学习笔记(3)hadoop伪分布模式安装

为了学习这部分的功能,我们这里的linux都是使用root用户登录的.所以每个命令的前面都有一个#符号. 伪分布模式安装步骤: 关闭防火墙 修改ip地址 修改hostname 设置ssh自动登录 安装JDK 安装hadoop 1. 关闭防火墙 具体的操作过程参见博文:我用过的Linux命令--关闭防火墙 2. 修改ip地址 具体的操作过程参见博文: 3. 修改hostname 具体的操作过程参见博文:我用过的Linux命令--修改主机名

Hadoop伪分布模式环境搭建

最近开始研究学习hadoop,想把自己的一些知识点写在这里作为自己的学习记录.同时,如果能够为有需要的朋友带来帮助也是一件快乐的事.这篇文章基本上都是参考网上的资料,我按照自己的理解和实践经验将其组织起来.网上大多教程没有具体介绍操作的背后原因,我按照我的理解以及将一些分布于网上比较散乱的细碎知识点进行了组织.因为时间以及个人能力原因,本安装文档会存在很多不足,后期我也会努力去学习提高自己.我的博客园之旅就以此hadoop安装开始.因为时间原因,我第一次发博客,图片没有加上,不过文章基本描述清楚

Hadoop 伪分布式模式安装

Hadoop简介 Hadoop由Apache基金会开发的分布式系统基础架构,是利用集群对大量数据进行分布式处理和存储的软件框架.用户可以轻松地在Hadoop集群上开发和运行处理海量数据的应用程序.Hadoop有高可靠,高扩展,高效性,高容错等优点.Hadoop 框架最核心的设计就是HDFS和MapReduce.HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算.此外,Hadoop还包括了Hive,Hbase,ZooKeeper,Pig,Avro,Sqoop,Flume,Ma

Hadoop伪分布模式配置部署

二.Hadoop伪分布式模式配置 本实验需要按照上一节单机模式部署后继续进行操作 1. 配置core-site.xml, hdfs-site.xml,mapred-site.xml及yarn-site.xml 1).修改core-site.xml: $ sudo gvim /usr/local/hadoop/etc/core-site.xml <?xml version="1.0"?> <?xml-stylesheet type="text/xsl"

Spark教程-构建Spark集群-配置Hadoop伪分布模式并运行Wordcount(2)

执行文件拷贝操作 拷贝后的“input”文件夹的内容如下所示: 和我们的hadoop安装目录下的“conf”文件的内容是一样的. 现在,在我们刚刚构建的伪分布式模式下运行wordcount程序: 运行完成后我们查看一下输出的结果: 部分统计结果如下: 此时我们到达Hadoop的web控制台会发现我们提交并成功的运行了任务: 最后在Hadoop执行完任务后,可以关闭Hadoop后台服务: 至此,Hadoop伪分布式环境的搭建和测试你完全成功! 至此,我们彻底完成了实验.