Hadoop伪分布式模式搭建

Hadoop伪分布式模式搭建

1、准备工做

一、关闭防火墙

service iptables start

    当即开启防火墙,可是重启后失效。java

service iptables stop

    当即关闭防火墙,可是重启后失效。node

    以下命令是永久性操做,重启后生效。linux

chkconfig iptables on

    开启防火墙,重启后生效。shell

chkconfig iptables off

    关闭防火墙,重启后生效。vim

二、配置主机名

    注意安装hadoop的集群主机名不能有下划线。否则会出现找不到主机的问题,致使集群没法启动。浏览器

    配置主机名:bash

vim /etc/sysconfig/network
source /etc/sysconfig/network

    例如:服务器

NETWORKING=yes
HOSTNAME=hadoop01

    配置完成,命令操做界面不会立刻修改,须要重启机器才能更改。app

    也可使用以下命令,临时修改主机名。ssh

hostname hadoop01

三、配置Hosts

    配置此功能,是为了解耦,若是每一个服务中都写具体的ip地址,若是某台服务器的ip地址发生了改变,再次修改ip会是一个很大的工做量;若是在服务配置中使用ip的地方都改为主机名称的方法,那么当某台服务器的ip发生改变,只须要在/etc/hosts文件中更改对应的映射关系便可。

vim /etc/hosts

    填入内容格式以下:

127.0.0.1 localhost
::1 localhost
192.168.75.150 hadoop01
其余主机和ip 主机名
……

    此配置和Windows下配置hosts文件是同样的操做。

四、配置免密码互通

    生成本身的公钥和私钥,生成的公私钥将自动存放在/root/.ssh目录下。

    命令以下:

ssh-keygen

    把生成的公钥copy到须要互相通讯的远程机器上。

    命令以下:

ssh-copy-id root@hadoop01

    此时在远程主机的/root/.ssh/authorized_keys文件中保存了公钥,在known_hosts中保存了已知主机信息,当再次访问的时候就不须要输入密码了。

    这里须要给本机发一个免密登陆,hadoop在启动的时候,就不须要输入密码了,不然在启动的时候不论是HDFS仍是yarn启动的时候都的输入密码。

ssh hadoop01

    经过上述命令远程链接,检验是否能够不需密码链接。

五、安装JDK

1.下载解压

    经过fz将jdk安装包上传到本身的管理目录。

    解压安装包

tar -zxvf [jdk安装包位置]

2.配置环境变量

    修改/etc/profile

    这个文件是每一个用户登陆时都会运行的环境变量设置,当用户第一次登陆时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。

vim /etc/profile

    在文件行尾加入以下配置后保存退出。

export JAVA_HOME=/home/app/jdk1.7.0_45/
export PATH=$PATH:$JAVA_HOME/bin

    注意:JAVA_HOME配置的jdk的目录,切记不要盲目照抄。

3.从新加载配置文件

    从新加载profile使配置生效,命令以下:

source /etc/profile

    环境变量配置完成,测试环境变量是否生效,使用以下命令,正常显示变量路径和java信息则配置正确。

echo $JAVA_HOME
java -version

2、伪分布式配置

一、下载安装hadoop

    经过fz将hadoop安装包上传到linux本身的管理目录,解压安装包。

tar -zxvf [hadoop安装包位置]

二、配置hadoop

    如下配置文件,均在hadoop-2.7.1/etc/hodoop/目录下。

1.修改hadoop-env.sh

    经过vim打开hadoop-env.sh。

vim [hadoop]/etc/hadoop/hadoop-env.sh

    主要是修改java_home的路径。

    在hadoop-env.sh的第27行,把export JAVA_HOME=${JAVA_HOME}修改为和环境变量中JAVA_HOME的路径相同便可。

    从新加载使修改生效。命令以下:

source hadoop-env.sh

2.修改core-site.xml

    此文件为核心配置文件,主要管理namenode的配置和文件存储位置的配置。

    经过vim打开core-site.xml文件。

vim [hadoop]/etc/hadoop/core-site.xml

    初次配置此文件中配置信息为空,须要在<configuration>标签中增长namenode配置、文件存储位置配置。配置信息以下:

<configuration>
<property>
<!--用来指定hdfs的master,namenode的地址-->
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<!--用来指定hadoop运行时产生文件的存放目录-->
<name>hadoop.tmp.dir</name>
<value>/home/park/work/hadoop-2.7.1/tmp</value>
</property>
</configuration>

    第一个<value>标签中,须要注意主机名称,填写本身规划好的主机名称。

    第二个<value>标签中,须要规划本身的tmp目录的存放位置,按照本身的规划填写便可,千万不要使用Linux系统/tmp目录,由于这个目录Linux有本身的清除机制,会形成数据丢失。

3.修改hdfs-site.xml

    此文件为HDFS的配置文件,主要配置HDFS的存储副本数量。

    经过vim打开hdfs-site.xml:

vim [hadoop]/etc/hadoop/hdfs-site.xml

    此文件初次次配置配置信息也是空的,须要在<configuration>标签中增长要配置的内容,配置模版内容以下:

<configuration>
<property>
<!--指定hdfs保存数据副本的数量,包括本身,默认为3-->
<!--伪分布式模式,此值必须为1-->
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

    此文件主要修改的也是<value>标签的内容,安装伪集群的话,将值配置为1便可。由于伪分布式只有一台服务器,没法实现分布式存储。

4.修改mapred-site.xml

    此目录主要配置的是maperd的运行平台。

    在/etc/hadoop的目录下,只有一个mapred-site.xml.template文件,此文件为配置模版文件,将其复制一个改名,将后缀.template去掉便可。操做命令以下:

cp mapred-site.xml.template mapred-site.xml

经过vim打开mapred-site.xml文件。命令以下:

vim [hadoop]/etc/hadoop/mapred-site.xml

此文件初次配置,配置内容也为空,将以下的模版信息填入便可,此配置是让mapreduce运行在yarn上。

<configuration>
<property>
<!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

5.修改yarn-site.xml

    此文件是yarn的核心配置文件,主要管理yarn的配置以及NodeMannager获取数据的方式。

    经过vim打开yarn-site.xml 文件。命令以下:

vim [hadoop]/etc/hadoop/yarn-site.xml

    此文件第一次初次配置,配置内容也为空,配置模版以下:

<configuration>
<property>
<!--指定yarn的master,resourcemanager的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<!--NodeManager获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

    第一个<value>标签的值须要改成本身规划的主机名称,其余的不用作修改。

6.修改slaves

    此文件是配置本身的下属成员的。

    vim打开此文件,命令以下:

vim slaves

    打开文件发现,这是一个空文件,只须要在这个文件中添加本身下属的服务器主机名称便可,由于是伪集群,只有一台主机,因此这里只需输入本身的规划的主机名称便可,例如:

hadoop01

    输入完成,退出保存便可。

三、配置环境变量

    使用Hadoop和java同样,也许要配置环境变量,在/etc/profile文件中添加Hadoop的环境变量信息便可。

1.编辑/etc/profile

    使用以下命令打开/etc/profile文件:

vim /etc/profile
export HADOOP_HOME=/home/park/work/hadoop-2.5.2/
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

    注意:HADOOP_HOME的值为Hadoop的安装目录,不要盲目照抄。

    PATH的值须要配置两个,一个bin的路径,一个sbin的路径,由于Hadoop中有两个命令目录,这两个命令目录都须要添加到环境变量中。

2.从新加载配置文件

    使用以下命令,从新加载配置文件:

source /etc/profile

    环境变量配置完成,测试环境变量是否生效。

echo $HADOOP_HOME

    出现Hadoop的安装路径信息,即为配置正确。

四、重启linux

    正常状况,配置完成的Hadoop不须要重启。若是Hadoop中一些配置文件不生效,能够重启Linux服务来解决此问题。为何须要重启配置文件才起做用?缘由暂时不明。

    重启命令以下,使用其中那个均可以:

reboot
init 6

3、启动Hadoop

一、格式化namenode

    在启动Hadoop以前须要进行一个格式化的操做,这个操做保证namenode可以正常的存储数据。

    进入hadoop/bin输入命令格式化namenode,命令以下:

hadoop namenode -format

    之前格式化的命令是下面这样的:

hdfs namenode -format

在格式化的时候,看到以下输出信息,则证实格式化成功。

Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted

 

二、启动hadoop

    在hadoop-2.7.1/sbin目录下有不少命令文件,进入此目录能够看到,在此目录下执行以下命令,能够启动整个Hadoop集群组件:

./start-all.sh

    在启动以后,输入以下命令:

jps

    能够看到5个Hadoop相关的进程,则证实启动成功。

三、关闭Hadoop

    在/home/app/hadoop-2.6.0/sbin目录下也一样存在关闭服务的命令,在此目录下输入以下命令,则关闭整个集群组件,中止服务。

./stop-all.sh

 

4、hdfs命令

hadoop fs -mkdir /user/trunk

hadoop fs -ls /user

hadoop fs -lsr /user   (递归的)

hadoop fs -put test.txt /user/trunk

hadoop fs -put test.txt .  (复制到hdfs当前目录下,首先要建立当前目录)

hadoop fs -get /user/trunk/test.txt . (复制到本地当前目录下)

hadoop fs -cat /user/trunk/test.txt

hadoop fs -tail /user/trunk/test.txt  (查看最后1000字节)

hadoop fs -rm /user/trunk/test.txt

hadoop fs -rmdir /user/trunk

hadoop fs -help ls (查看ls命令的帮助文档)

 

5、经过HadoopWeb管理页面

    当Hadoop服务配置完成,正常重启,能够在别的pc上经过浏览器输入以下格式的地址,即可以访问Hadoop的Web管理页面。

    http://[server_ip]:50070

    若是访问不了有多是服务器50070端口被关闭了。经过以下方式打开50070端口:

service iptables status #查询防火墙状态

service iptables start #开启防火墙

iptables -I INPUT -p tcp --dport 80 -j ACCEPT #开通特定端口

iptables -I INPUT -p tcp --dport 80 -j DROP #关闭特定端口

service iptables save #保存配置

service iptables restart #重启防火墙

 

上一篇:Hadoop简介

下一篇:Hadoop彻底分布式集群搭建

相关文章
相关标签/搜索