CentOS 6.3下Hadoop伪分布式平台搭建(4)

注意这里的0.0.0.0,跟上面的ssh配置呼应。因为伪分布式不用配置SecondNameNode,所以使用默认的host是0.0.0.0:322。如果此时ssh免密登陆失效则会要求输入密码,那就重新配置ssh免密登陆或者输入密码。有时候会提示输入yes,输入即可。

启动完成后根据 jps 命令来判断是否启动成功。如果jps命令未找到则运行

[hadoop@root@linuxidc.com hadoop]$ alias jps='/usr/local/java1.8.0_40/bin/jps' [hadoop@root@linuxidc.com hadoop]$ jps 54004 Jps 54871 NameNode 55800 NodeManager55023 DataNode

上面四个进程缺一不可,缺少的话可以重新检查配置或者谷歌搜索,当然也可以查看日志,start-dfs.sh的输出有说明日志的路径,/usr/local/hadoop/logs下的.log文件

[hadoop@root@linuxidc.com hadoop]$ tail logs/hadoop-hadoop-secondarynamenode-root@linuxidc.com.log at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:191) at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102) at com.sun.proxy.$Proxy11.rollEditLog(Unknown Source) at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doCheckpoint(SecondaryNameNode.java:512) at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.doWork(SecondaryNameNode.java:395) at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode$1.run(SecondaryNameNode.java:361) at org.apache.hadoop.security.SecurityUtil.doAsLoginUserOrFatal(SecurityUtil.java:415) at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.run(SecondaryNameNode.java:357)

如果发现DataNode未启动则一般情况下是id不一样,停掉dfs删掉tmp目录然后重新format即可。如果是网络问题,则关闭防火墙:

1) 重启后生效 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后失效 开启: service iptables start 关闭: service iptables stop 在开启了防火墙时,做如下设置,开启相关端口, 修改/etc/sysconfig/iptables 文件,添加以下内容: -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 322 -j ACCEPT

如果遇到hadoop datanode Does not contain a valid host:port authority导致的DataNode未启动则一般是hostname的问题,hostname有时候不能包含‘.’ '/' '_'等非法字符的主机名。修改/etc/hosts的hostname,然后hostname newhostname,接着删掉tmp,重新format,重新start-dfs.sh

  三、命令测试

  由于DataNode出问题之后,我把hostname修改为了master,之后的命令会是下面这样

[root@master ~]# [hadoop@master ~]$

  上面运行的单机例子读取和写入的都是本地的文件系统,而伪分布式读取写入的是HDFS上的数据。

[hadoop@master ~]$ hdfs dfs -mkdir /user/hadoop # 新建��录作为个人账号目录 [hadoop@master ~]$ hdfs dfs -mkdir input # 新建
[hadoop@master
~]$ hdfs dfs -ls 16/11/03 00:10:18 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Found 1 items drwxr-xr-x - hadoop supergroup 0 2016-11-03 00:06 input
[hadoop@master
~]$ hdfs dfs -ls /user/hadoop 16/11/03 00:10:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Found 1 items drwxr-xr-x - hadoop supergroup 0 2016-11-03 00:06 /user/hadoop/input
[hadoop@master
~]$ hdfs dfs -ls -R / 16/11/03 00:14:39 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable drwxr-xr-x - hadoop supergroup 0 2016-11-03 00:14 /user drwxr-xr-x - hadoop supergroup 0 2016-11-03 00:14 /user/hadoop drwxr-xr-x - hadoop supergroup 0 2016-11-03 00:06 /user/hadoop/input

在运行hadoop伪分布式实例之前我们先删掉之前单机模式产生的output文件夹,然后开始运行

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/78ed2a50b47285f602a1d49ed3286c5a.html