Hadoop2.5.2完全分布式集群安装

《Hadoop2.5.2集群安装》

1、环境介绍

操作系统:CentOSX646.5

物理机器:192.168.170.130(node1)、192.168.170.131(node2)、192.168.170.132(node3)

JDK版本:JDK7.X

Hadoop版本:Hadoop2.5.2

2、修改主机名称和host名称

通过命令“hostname”查看当前机器的机器名称,然后分别在node1、node2、node3机器的/etc/sysconfig/network文件上修改下主机名称(非必须)并保存,如下所示:

NETWORKING=yes

HOSTNAME=node1

NETWORKING=yes

HOSTNAME=node2

NETWORKING=yes

HOSTNAME=node3

3、修改hosts文件

分别在node1、node2、node3机器上修改下hosts文件并保存,如下所示:

etc/hosts

192.168.170.130node1

192.168.170.131node2

192.168.170.132node3

#然后可以ping一下,确保各节点可以正常ping通

4、确保JDK成功安装并可用

当成功在node1、node2、node3机器上安装JDK后(笔者使用JDK7.x),还需要在“/etc/profile”文件中配置Java的环境变量,并通过命令“source“/etc/profile”命令使修改后的配置生效

,如下所示:

Shell代码收藏代码

#JAVA

exportJAVA_HOME=/usr/java/jdk1.7.0_79

exportPATH=$JAVA_HOME/bin:$PATH

#exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

5、Haddop的安装

使用命令“tar-zxvf”命令将gz压缩文件解压。笔者Hadoop的安装目录为:“/opt”,解压后的Hadoop目录为“/opt/hadoop-2.5.2”更换为“/opt/hadoop”,最好确保node1、node2、

node3机器上的Hadoop安装路径一致。

6、配置Hadoop环境变量

成功安装Hadoop后,接下来要做的事情就是配置Hadoop的环境变量,并通过命令cd~进入用户目录,设置用户环境变量vim.bashrc;然后source~/.bashrc使修改生效(也可设置系统环

境变量,所有用户都可以用“source“/etc/profile”)命令使修改后的配置生效,如下所示:

#HADOOPset150816

exportHADOOP_HOME=/opt/hadoop

exportHADOOP_MAPRED_HOME=$HADOOP_HOME

exportHADOOP_COMMON_HOME=$HADOOP_HOME

exportHADOOP_HDFS_HOME=$HADOOP_HOME

exportYARN_HOME=$HADOOP_HOME

exportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

exportPATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

exportHADOOP_INSTALL=$HADOOP_HOME

#这个配置好像有点问题

#exportHADOOP_HOME=/opt/hadoop

#exportHADOOP_COMMON_HOME=$HADOOP_HOME

#exportHADOOP_HDFS_HOME=$HADOOP_HOME

#exportHADOOP_MAPRED_HOME=$HADOOP_HOME

#exportHADOOP_YARN_HOME=$HADOOP_HOME

#exportHADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

#exportCLASSPATH=.:$JAVA_HOME/lib:$HADOOP_HOME/lib:$CLASSPATH

#exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

7、修改Hadoop的一系列配置文件

core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://node1:9000</value>

</property>

</configuration>

hdfs-site.xml

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:///home/hadoop/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:///home/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

#保存文件的副本数目

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

mapred-site.xml

<property>

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

<value>yarn</value>

</property>

<property>

<name>mapreduce.jobhistory.address</name>

<value>node1:10020</value>

</property>

<property>

<name>mapreduce.jobhistory.webapp.address</name>

<value>node1:19888</value>

</property>

yarn-site.xml

<property>

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

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>node1:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>node1:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>node1:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>node1:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>node1:8088</value>

</property>

/opt/hadoop/etc/hadoop/slaves修改,如下所示:

node2

node3

分别在/opt/hadoop/etc/hadoop/hadoop-env.sh和yarn-env.sh中配置Java环境变量,如下所示:

exportJAVA_HOME=/usr/local/jdk17

***三台节点并配置免密码登录***:

[cd~ssh-keygen-trsa--执行完这句,按三次回车即可生成公钥与私钥]

[scp~/.ssh/id_rsa.pubhadoop@node2:/~/.ssh/authorized_keys]

验证hadoop用户的ssh免登录认证

8、将配置好的Hadoop拷贝到从机上

scp-r./hadoophadoop@node2:/opt和scp-r./hadoophadoop@node3:/opt

9、启动Hadoop

在正式启动Hadoop之前,分别在node1、node2、node3机器上格式化HDFS,如下所示:

Shell代码收藏代码

hdfsnamenode-format

当成功格式化后,接下来便可以在node1上通过命令“start-all.sh”启动Hadoop,同时也可以通过“stop-all.sh”停止Hadoop运行(会由node1负责带动node2,3节点的启动和停止)。

当成功启动Hadoop后,我们便可以在每一个节点下执行命令jps,查看Hadoop的进程,如下所示:

Shell代码收藏代码

#node1上的Hadoop进程

30791SecondaryNameNode

30943ResourceManager

30607NameNode

#node2上的Hadoop进程

9902DataNode

10001NodeManager

#node3上的Hadoop进程

9194DataNode

9293NodeManager

除此之外,开发人员还可以通过http://ip:50070、http://ip:8088、http://ip:19888,通过浏览器查阅Hadoop集群中每一个节点的运行状态。

pro:

1.Namenodeisinsafemode

bin/hadoopfs-put../input./in

将本地文件拷贝到hdfs上去,结果上错误:Namenodeisinsafemode

可以通过以下命令来手动离开安全模式:

bin/hadoopdfsadmin-safemodeleave

用户可以通过dfsadmin-safemodevalue来操作安全模式,参数value的说明如下:

enter-进入安全模式

leave-强制NameNode离开安全模式

get-返回安全模式是否开启的信息

wait-等待,一直到安全模式结束。

bin/hadoopfs-put../input./in拷贝input目录内文件到hdfs的in目录下

2.bin/hadoopfs-ls./in/*查看某个hdfs目录下面文件信息

--------------hadoop集群安装发生错误start

bin/hadoopfs-ls

当没有列出fdfs下面的文件时,可以切换到hadoop的logs下用tail-fhadoop-hadoop-datanode-node2.log-n300查看报的错误信息。

查看hdfs-site.xml中配置的namenode和data.dir是否都在相应目录中已创建。

到hadoop目录logs下tail-fhadoop-hadoop-datanode-node2.log-n300

2015-08-1721:16:40,001ERRORorg.apache.hadoop.hdfs.server.common.Util:SyntaxerrorinURI>file:///home/hadoop/dfs/data.Pleasecheckhdfsconfiguration.

java.net.URISyntaxException:Illegalcharacterinschemenameatindex0:>file:///home/hadoop/dfs/data

cathdfs-site.xml-A查看此配置文件每行是否有空格。

---------------hadoop集群安装发生错误end

-------------------------------华丽丽的扩展部分-----------------------------

在hdfs上创建文件夹

$bin/hdfsdfs-mkdir/user

$bin/hdfsdfs-mkdir/user/<username>

查看hdfs上创建的文件夹bin/hadoopfs-ls/

yarn

$sbin/start-yarn.sh

进入监控页查看-http://localhost:8088/

关闭:

$sbin/stop-dfs.sh

$sbin/stop-yarn.sh

相关推荐