Hadoop伪分布式模式搭建
一、准备工作
1、关闭防火墙
service iptables start
立即开启防火墙,但是重启后失效。
service iptables stop
立即关闭防火墙,但是重启后失效。
如下命令是永久性操作,重启后生效。
chkconfig iptables on
开启防火墙,重启后生效。
chkconfig iptables off
关闭防火墙,重启后生效。
2、配置主机名
注意安装hadoop的集群主机名不能有下划线。不然会出现找不到主机的问题,导致集群无法启动。
配置主机名:
vim /etc/sysconfig/networksource /etc/sysconfig/network
例如:
NETWORKING=yesHOSTNAME=hadoop01
配置完成,命令操作界面不会马上修改,需要重启机器才能更改。
也可以使用如下命令,临时修改主机名。
hostname hadoop01
3、配置Hosts
配置此功能,是为了解耦,如果每个服务中都写具体的ip地址,如果某台服务器的ip地址发生了改变,再次修改ip会是一个很大的工作量;如果在服务配置中使用ip的地方都改成主机名称的方法,那么当某台服务器的ip发生改变,只需要在/etc/hosts文件中更改对应的映射关系即可。
vim /etc/hosts
填入内容格式如下:
127.0.0.1 localhost::1 localhost192.168.75.150 hadoop01其他主机和ip 主机名……
此配置和Windows下配置hosts文件是一样的操作。
4、配置免密码互通
生成自己的公钥和私钥,生成的公私钥将自动存放在/root/.ssh目录下。
命令如下:
ssh-keygen
把生成的公钥copy到需要互相通信的远程机器上。
命令如下:
ssh-copy-id root@hadoop01
此时在远程主机的/root/.ssh/authorized_keys文件中保存了公钥,在known_hosts中保存了已知主机信息,当再次访问的时候就不需要输入密码了。
这里需要给本机发一个免密登录,hadoop在启动的时候,就不需要输入密码了,否则在启动的时候不管是HDFS还是yarn启动的时候都的输入密码。
ssh hadoop01
通过上述命令远程连接,检验是否可以不需密码连接。
5、安装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_HOMEjava -version
二、伪分布式配置
1、下载安装hadoop
通过fz将hadoop安装包上传到linux自己的管理目录,解压安装包。
tar -zxvf [hadoop安装包位置]
2、配置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配置、文件存储位置配置。配置信息如下:
fs.defaultFS hdfs://hadoop01:9000 hadoop.tmp.dir /home/park/work/hadoop-2.7.1/tmp
第一个<value>标签中,需要注意主机名称,填写自己规划好的主机名称。
第二个<value>标签中,需要规划自己的tmp目录的存放位置,按照自己的规划填写即可,千万不要使用Linux系统/tmp目录,因为这个目录Linux有自己的清除机制,会造成数据丢失。
3.修改hdfs-site.xml
此文件为HDFS的配置文件,主要配置HDFS的存储副本数量。
通过vim打开hdfs-site.xml:
vim [hadoop]/etc/hadoop/hdfs-site.xml
此文件初次次配置配置信息也是空的,需要在<configuration>标签中增加要配置的内容,配置模版内容如下:
dfs.replication 1
此文件主要修改的也是<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上。
mapreduce.framework.name yarn
5.修改yarn-site.xml
此文件是yarn的核心配置文件,主要管理yarn的配置以及NodeMannager获取数据的方式。
通过vim打开yarn-site.xml 文件。命令如下:
vim [hadoop]/etc/hadoop/yarn-site.xml
此文件第一次初次配置,配置内容也为空,配置模版如下:
yarn.resourcemanager.hostname hadoop01 yarn.nodemanager.aux-services mapreduce_shuffle
第一个<value>标签的值需要改为自己规划的主机名称,其他的不用做修改。
6.修改slaves
此文件是配置自己的下属成员的。
vim打开此文件,命令如下:
vim slaves
打开文件发现,这是一个空文件,只需要在这个文件中添加自己下属的服务器主机名称即可,因为是伪集群,只有一台主机,所以这里只需输入自己的规划的主机名称即可,例如:
hadoop01
输入完成,退出保存即可。
3、配置环境变量
使用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的安装路径信息,即为配置正确。
4、重启linux
正常情况,配置完成的Hadoop不需要重启。如果Hadoop中一些配置文件不生效,可以重启Linux服务来解决此问题。为什么需要重启配置文件才起作用?原因暂时不明。
重启命令如下,使用其中那个都可以:
rebootinit 6
三、启动Hadoop
1、格式化namenode
在启动Hadoop之前需要进行一个格式化的操作,这个操作保证namenode能够正常的存储数据。
进入hadoop/bin输入命令格式化namenode,命令如下:
hadoop namenode -format
以前格式化的命令是下面这样的:
hdfs namenode -format
在格式化的时候,看到如下输出信息,则证明格式化成功。
Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted
2、启动hadoop
在hadoop-2.7.1/sbin目录下有很多命令文件,进入此目录可以看到,在此目录下执行如下命令,可以启动整个Hadoop集群组件:
./start-all.sh
在启动之后,输入如下命令:
jps
可以看到5个Hadoop相关的进程,则证明启动成功。
3、关闭Hadoop
在/home/app/hadoop-2.6.0/sbin目录下也同样存在关闭服务的命令,在此目录下输入如下命令,则关闭整个集群组件,停止服务。
./stop-all.sh
四、hdfs命令
hadoop fs -mkdir /user/trunkhadoop fs -ls /userhadoop fs -lsr /user (递归的)hadoop fs -put test.txt /user/trunkhadoop fs -put test.txt . (复制到hdfs当前目录下,首先要创建当前目录)hadoop fs -get /user/trunk/test.txt . (复制到本地当前目录下)hadoop fs -cat /user/trunk/test.txthadoop fs -tail /user/trunk/test.txt (查看最后1000字节)hadoop fs -rm /user/trunk/test.txthadoop fs -rmdir /user/trunkhadoop fs -help ls (查看ls命令的帮助文档)
五、通过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 #重启防火墙
上一篇:
下一篇: