一、软件下载
为了成功配置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
最后状态是这样就对了

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

可以用以下方法验证是否下载了正确的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
如果在结果中看到如下则格式化节点成功

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 可以看到当前运行情况
网友评论