Hadoop 伪分布式安装的问题

版权声明:本文为博主原创文章,转载时请注明文章出处和作者! https://blog.csdn.net/sb985/article/details/78266580

安装hadoop有单节点安装;伪分布式安装和分布式安装

今天就聊聊我在伪分布式安装的过程和遇到的错误,希望能帮到别人

sbin :启动或停止hadoop相关服务的脚本
bin:对hadoop的相关服务进行操作的的脚本
etc:hadoop的配置文件目录
share:hadoop的依赖jar包和文档,文档可以被删除
lib:hadoop的本地库(对数据进行压缩操作)



方法:伪分布式

环境:VNware(物理机同理),Ubuntu16。0。4,hadoop-2。8.1

第一步:下载hadoop到本地并解压

第二步:配置环境变量,配置文件等

第三步:配置ssh免密码登录

这里主要将讲第二步,一,三步出错的几率小

首先将hadoop解压后cd 到/hadoop-2.8.1/etc/hadoop 目录下

vim hadoop-env.sh  

export JAVA_HOME = java install 目录(此处是你自己java的安装目录)

vim core-site.xml

<cnfiguration>
  <property>
        <!--配置hdfs的namenode的地址-->
        <name>fs.default.name</name>
        <value>hdfs://127.0.0.1:9000</value>

<!--此处的地址本地主机的地址,如果在格式
化namenode或者链接namenode时显示无法无法连接,或者namenode或者其他进程创建后不能
长时间存在,则主要是namenode地址不对,在hostname中更改主机名使其与所配置的namenode的节点地址一致-->
  </property>


  <property>可以不配置,配置hadoop运行产生数据的存储目录,不是临时数据
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/bigdata/tmp</value>
  </property>
</configuration>


vim hdfs-site.xml

<configuration>
  <property>
        <!--指定hdfs数据的副本数量-->
        <name>dfs.replication</name>
        <value>1</value>默认存3份,伪分布式存一份
  </property>
</configuration>

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

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


vim yarn-site.xml

  <property>
        <!--指定yarn的管理者resourcemanager运行在那-->
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>  resourcemanager的地址
  </property>

  <property>
        mapreduce执行shuffle时获取数据的方式
    <name>yarn.nodemanager.aux-service</name>
    <value>mapreduce_shuffle</value>
  </property>

cd ~/hadoop-2.8-1



bin/hdfs namenode -format //此处时格式化hdfs

看到successfully 极为成功

 vim /etc/profile

将hdfs的path 加到环境变量中,保证在任何目录下都可执行‘

保存退出后,在当前,目录下执行sbin/start-dfs.sh

分别出现 Starting namenode,datanode,seccondary namenode 则表示启动成功

输入jps,显示当前的进程,如果在一段时间内不掉线,即进程稳定存在,则成功




到目前为止,hadoop伪分布式已经配置成功,下面说说可能遇到的问题

1。Namenode 格式化不成功

在执行hdfs namenode -format 时,会显示一大段信息,在信息里找不到successfully,或者其他报错信息

主要的原因可能是 配置sbin下的五个文件时有错误,仔细查看报错信息,检查指定文件(一般报错的位置比较准确)

2。在输入hdfs或者hadoop时显示命令不存在,这个原因主要是hadoop home 路径没有配置,在/etc/profile中加入hadoophome即可,配置方法在上文中有提到。

3。执行sbin/start-dfs.sh后没有启动相关进程(此处执行sbin/start-all.sh,也可以只不过提示信息显示脚本已经过期)

这里的没有启动相关进程是指在输入jps后没有出现namenode,datanode,secondary namenode 等进程信息

或者出现后不稳定,在极短时间内就会消失(如果出现过namenode,datanode,但是不稳定,试试连接namenode,看看可不可以连接上,估计是不行。。。。。)

对于这个问题,我所面对的是进程不稳定,还有在进行链接时无法链接java抛出链接异常如:

SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: xxx

这个原因是我所设置的namenode的地址与本地主机名不符合,无法连接上,因为配置伪分布式,所有节点都是在同一台机器上,namenode的地址就是本地的地址,所以必须注意,

因为在好多网上的教程中都有自己的地址,这个需要按照自己的机器配,所以问题较多。

hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名在/etc/hosts文件中进行映射的时候,没有找到,也就是名字不一样,回出错。

这里需要修改一下用户的主机名。

查看自己用户的主机名:hostname

查看/etc/hosts内容:cat /etc/hosts

更改在/etc/hostname中,然后重启即可。


可能还有其他问题,也可以试试此方法。

刚开始学习,如有错误欢迎指正。




猜你喜欢

转载自blog.csdn.net/sb985/article/details/78266580