美文网首页
Hadoop环境配置(Ubuntu16)

Hadoop环境配置(Ubuntu16)

作者: 涛子_024d | 来源:发表于2020-09-06 10:13 被阅读0次

一、软件下载

为了成功配置Hadoop,我们需要下载以下的软件:

1.Linux操作系统(Hadoop要运行在Linux上,必不可少,Centos或者Ubuntu都可以)

2.Hadoop (主角,不用说了)

Hadopp下载一是在官网直接下载:http://hadoop.apache.org

另一种方式是找国内的景象,这里贴出一个北理的景象站:http://mirror.bit.edu.cn/apache/hadoop/common/

3.JDK(Hadoop是用Java来写的,所以必须的JDK不能少)

4.WinSCP(可选,仅用来将本地电脑上的文件传到虚拟机中,如果直接在虚拟机内下载所需的包和文件可忽略不装)

二、准备

在安装之前需要进行一些前置操作,关闭防火墙和SELinux,否则Hadoop安装可能会出现问题

1、关闭防火墙

//关闭防火墙,默认是关闭状态
sudo ufw disable
//查看fw状态
sudo ufw status

最后状态是这样就对了

image-20200827211720418.png

2、关闭SELinux

//查看SELinux状态,Ubuntu默认状态是关闭的
getenforce
//如果有没关闭的情况可以尝试以下的命令修改文件关闭SELinux
//将SELINUX=enforcing改成SELINUX=disabled,重启生效
sudo vi /etc/selinux/config

三、安装JDK

首先将JDK下载到虚拟机中,并解压,记住JDK的位置

1、设置JDK路径

使用 sudo vi /etc/profile 命令打开配置文件,在结尾加上以下的代码

#set java env
export JAVA_HOME=/Documents/kit/JDK/jdk1.8.0_261
export JRE_HOME=$JAVA_HOME/jre    
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin  
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH

设置完之后再使用一下命令使配置进行重启

source /etc/profile

之后再使用 java -version 命令如果能看到版本号证明JDK已经正确安装了

1.1 配置正确但是java -version没有显示版本号的解决方法

1.1.1 版本问题

在Oracle的官网上有很多种JDK,一般虚拟机上的Centos和Ubuntu记得使用Compressed版的jdk

image-20200829151933504.png

可以用以下方法验证是否下载了正确的JDK

//查看系统位数
getconf LONG_BIT
//在你jdk解压出来的文件的bin目录下输入一下命令,如果能显示jdk的版本号说明jdk合适
./java -version

1.1.2 权限

//有时候可能会因为用户权限的问题导致,可以尝试一下命令修改jdk文件夹权限
chmod -R a=rwx {你的jdk文件夹/}

1.1.3 路径

明明我的路径也对JDK也对权限也给了但是就是输入java -version显示不出来,还可以尝试以下的方法

//在jdk解压出来的目录下输入一下命令,将得到的路径替换掉配置中JAVA_HOME的位置
pwd

四、Hadoop安装

1、解压

2、创建子目录

在Hadoop解压出来的目录下创建以下四个目录,并将data文件夹的权限设为755,否则DataNode会启动失败

mkdir -p tmp hdfs/data hdfs/name

chmod -R 755 hdfs/data

3、配置(伪分布式)

3.1 hadoop-evn.sh配置

在解压出来的hadoop目录下找到hadoop-evn.sh文件(可能因为版本不一样位置不一样建议搜索),打开并在其中添加以下代码

export JAVA_HOME=/home/tao/Documents/kit/JDK/jdk1.8.0_261
export PATH=$PATH:/home/tao/Documents/software/BD/hadoop/hadoop-3.1.3/bin
//更新配置
resource hadoop-evn.sh
//如果能显示则说明hd安装正确
hadoop-evn.sh
3.2 core-site.xml配置(核心组件)

同样找到core-site.xml文件(搜索),并在其中添加如下代码(注意修改对应路径)

hadoop.tmp.dir :临时数据存放的位置

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/Documents/software/BD/hadoop/hadoop-3.1.3/tmp</value>
  </property>
</configuration>
3.3 hdfs-site.xml配置(HDFS框架)

dfs.replication : 副本数量,伪分布式下副本数量为1

dfs.name.dir : NameNode数据保存的位置

dfs.data.dir : DataNode数据保存的位置

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.name.dir</name>
    <value>/Documents/software/BD/hadoop/hadoop-3.1.3/hdfs/name</value>
  </property>
  <property>
    <name>dfs.data.dir</name>
    <value>/Documents/software/BD/hadoop/hadoop-3.1.3/hdfs/data</value>
  </property>
</configuration>
3.4 mapred-site.xml配置(MapReduce框架)
<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>hadoop:9001</value>
  </property>
</configuration>
3.5 yarn-site.xml配置
<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>master:18040</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master:18030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master:18025</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master:18141</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:18088</value>
  </property>
</configuration>

4、格式化节点

在hadoop解压的bin目录下执行以下命令

./hadoop namenode -format

如果在结果中看到如下则格式化节点成功

image-20200829172724499.png

5、启动hd并检验

这里有几种常用的hd的启动方式,分别是:

start-dfs.sh:启动HDFS

start-mapreted.sh:启动MapReduce

start-all.sh:启动所有,启动顺序:NameNode,DateNode,SecondaryNameNode,JobTracker,TaskTracker

5.1 but there is no *** 报错

​ 修改start-dfs.sh文件和stop-dfs.sh文件

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

​ 修改start-yarn.sh文件和stop-yarn.sh文件

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
5.2 Could not resolve***报错

​ 在 ~/.bashrc中加入以下代码

export HADOOP_HOME=/home/tao/Documents/software/BD/hadoop/hadoop-3.1.3
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
5.3 Permission denied (publickey,password)报错

​ 首先检查是否是ssh秘钥的问题,输入如下命令,如果需要输入密码则说明是因为ssh秘钥引起的问题

ssh localhost   

​ 解决方法

//手动配置秘钥
cd ~/.ssh
//之后要你输入路径,直接回车会默认生成
ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

6、查看运行情况

​ 使用 jps 可以看到当前运行情况

相关文章

网友评论

      本文标题:Hadoop环境配置(Ubuntu16)

      本文链接:https://www.haomeiwen.com/subject/ldtcektx.html