Hadoop伪分布式一、准备工作1、关闭防火墙service iptables start 立即开启防火墙,但是重启后失效。 service iptables stop 立即关闭防火墙,但是重启后失效。 如下命令是永久性操作,重启后生效。 chkconfig iptables on 开启防火墙,重启后生效。 chkconfig iptables off 关闭防火墙,重启后生效。 2、配置主机名注意安装hadoop的集群主机名不能有下划线。不然会出现找不到主机的问题,导致集群无法启动。 配置主机名: vim /etc/sysconfig/network source /etc/sysconfig/network 例如: NETWORKING=yes HOSTNAME=hadoop01 配置完成,命令操作界面不会马上修改,需要重启机器才能更改。 也可以使用如下命令,临时修改主机名。 hostname hadoop01 3、配置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文件是一样的操作。 4、配置免密码互通生成自己的公钥和私钥,生成的公私钥将自动存放在/root/.ssh目录下。 命令如下: ssh-keygen 把生成的公钥copy到需要互相通信的远程机器上。 命令如下: ssh-copy-id root@hadoop01 此时在远程主机的/root/.ssh/authorized_keys文件中保存了公钥,在known_hosts中保存了已知主机信息,当再次访问的时候就不需要输入密码了。 这里需要给本机发一个免密登录,hadoop在启动的时候,就不需要输入密码了,否则在启动的时候不管是HDFS还是yarn启动的时候都的输入密码。 ssh hadoop01 通过上述命令远程连接,检验是否可以不需密码连接。 5、安装JDK1.下载解压通过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 二、伪分布式配置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配置、文件存储位置配置。配置信息如下: <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 输入完成,退出保存即可。 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服务来解决此问题。为什么需要重启配置文件才起作用?原因暂时不明。 重启命令如下,使用其中那个都可以: reboot init 6 三、启动Hadoop1、格式化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/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命令的帮助文档)
五、通过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 #重启防火墙
(责任编辑:IT) |