ubuntu 18.04.1安装hadoop3.1.2

前提,虚拟机安装 见https://www.cnblogs.com/cxl-blog/p/11363183.html

一.按照https://blog.csdn.net/MastetHuang/article/details/51867115该步骤进行

其中有以下几个小问题

1.注意上述链接中的hadoop-2.6.4需要修改为自己的hadoop版本,同时,hdfs-site.xml和core-site.xml等配置文件的修改中的hadoop-2.6.4也应一并修改

2.配置文件还需作如下修改

vim /hadoop-3.1.2/etc/hadoop/core-site.xml
添加如下:
<configuration>
    <property> 
        <name>fs.defaultFS</name>
     <value>hdfs://localhost:9000 </value>
  </property>
  <property>   
    <name>hadoop.tmp.dir</name>
     <value>/data/hadoop/tmp </value>
  </property>
  <property> 
<name>hadoop.native.lib</name>
     <value>true</value>  
  </property>
<configuration>
vim /data/hadoop/etc/hadoop/hdfs-site.xml 
添加如下:
<configuration>
    <property> 
        <name>dfs.replication</name> 
        <value>1</value> 
    </property> 
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/data/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/data/hadoop/hdfs/data</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>
vim /data/hadoop/etc/hadoop/mapred-site.xml 
添加如下:
<configuration>
    <property>
    <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
vim /data/hadoop/etc/hadoop/yarn-site.xml 
添加如下:
<configuration>
<property> 
    <name>yarn.nodemanager.aux-services</name> 
        <value>mapreduce_shuffle</value>  ##注意这里有坑  mapreduce.shuffle 链接符为.的时候有问题
    </property>
</configuration>
3.修改JAVA_HOME 时记得把#去掉
export JAVA_HOME=/usr/local/jdk1.7.0_79

4.拷贝主机文件(hadoop)到虚拟机  在虚拟机中执行

scp 192.168.0.119:/home/cxl/Downloads/hadoop-3.1.2.tar.gz /home/cxl/ hadoop-3.1.2

其中 192.168.0.119为本机IP ,/home/hostname/为自己的路径

5.编辑profile文件一旦没有写正确,导致在命令行下 ls等命令不能够识别

在命令行下打入下面这段

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

6.主机无法ssh连接虚拟机,也ping不通

https://blog.csdn.net/chengqiuming/article/details/83239413 设置好后在主机中执行

ssh 127.0.0.1 -p 2022

设置端口转发后主机监听本地2022端口,如果ssh -p 2022,就将ssh到虚拟机,所以是ssh 127.0.0.1

二.安装完后

1.创建文件夹(配置文件core-site.xml中hadoop.tmp.dir 设置的就是tmp

cd /data/hadoop
mkdir tmp
cd tmp
mkdir name data
chmod -R 777 tmp

2.格式化

cd /hadoop-3.1.2/bin
hdfs namenode -format

3.启动hadoop

cd hadoop-3.1.2/sbin/
./start-all.sh

 4.操作hdfs

确保在hadoop的bin目录下

cd /hadoop3.1.2/bin
hdfs dfs -mkdir /test

hadoop fs -mkdir /test

其他简单操作见https://blog.csdn.net/MESSI_JAMES/article/details/81174908

详情见官方文档http://hadoop.apache.org/docs/r1.0.4/cn/quickstart.html

后续:

 1.datanode启动后自动关闭

解决方法:https://blog.csdn.net/a469142780/article/details/71312143

问题:Namenode上namespaceID与datanode上namespaceID不一致。
  问题产生原因:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,所以造成namenode节点上的namespaceID与datanode节点上的namespaceID不一致。启动失败。
解决方法:
  (1)停掉集群服务
  (2)在出问题的datanode节点上删除data目录,data目录即是在hdfs-site.xml文件中配置的dfs.data.dir目录,本机器上那个是/hadoop/hadoop-2.7.1/hdfs/dfs/data/ (注:在所有的datanode和namenode节点上均执行了该步骤。以防删掉后不成功,可以先把data目录复制一份)。
  (3)格式化namenode.
  (4)重新启动集群。
  问题解决。
谨记:这种方法带来的一个副作用就是会造成hdfs上的所有数据丢失。

原文地址:https://www.cnblogs.com/cxl-blog/p/11374163.html