在 CentOS 8 下配置 Hadoop 开发环境

本文最后更新于:2020年11月22日 晚上

下载,解压,设置环境变量,结束

前言

生产实训来搞大数据,全是之前没用过的,就记录一下咯

正文

环境

  • CentOS 8
  • Java8(jdk1.8)
  • findbugs-1.3.9
  • protobuf-2.5.0
  • hadoop-2.9.2

在 Vmware 中安装 CentOS 8

简单的就是在 官网 中下载镜像,然后在 Vmware 中依次选择 创建虚拟机 -> 典型 -> 安装程序光盘映像文件 然后输入账户密码,选择虚拟机文件的保存位置,选择磁盘大小,最后确认就行。

但是有可能会遇到虚拟机在启动的时候卡住的情况,这个时候就查看那个光盘映像文件,看是不是被替换成了一个叫类似于 autoXXX.iso 的 iso 文件,如果是的话,就修改为你的 CentOS 8 的 iso 文件就可以了。

当然,如果从官网下载速度慢的话可以从清华的镜像站 下载

一般来说是下载 /x86_x64 下面的 CentOS-8.2.2004-x86_64-dvd1.iso 文件

然后在 CentOS 8 安装的时候一路下一步就行。如果需要 GUI 的话可以在安装需要的软件包的时候选择 GUI,软件包的选择上我是选了开发工具包Development Tools

其实安装过程基本就是一路下一步就行了。

安装完成后记得更新一下系统的程序

yum update
yum upgrade

关闭防火墙

因为是在自己的内网中用,所以就关掉防火墙啦。免得到时候还需要开放端口。

systemctl stop firewalld.service && systemctl disable firewalld.service

关闭 SELinux

编辑 /etc/selinux/config 这个文件, 找到 SELINUX 这一项,改成 SELINUX=disabled

nano /etc/selinux/config

简单地说就是大概配置成这个样子

#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

修改主机名

这个是因为之后可能会用到使用 hadoop 的 web 界面,这个时候配置下主机名就方便了

nano /etc/sysconfig/network

之后修改成类似于这样就行

# Created by anaconda
HOSTNAME= 你的主机的名字

修改主机名与 IP 的对应关系

修改 Host 文件,将主机名与本机 IP 联系起来

nano /etc/hosts

在最后面添加你的主机的 IP 和你的主机名就行了,修改后大概是这样的

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
1.2.3.4 你的主机名

这里修改了主机名就得重启一下,顺便也刷新了一下你的 hosts 文件。

配置 ssh 免密钥登录

hadoop 到时候使用的时候需要用到 SSH 来登录,为了方便,不用每次都输入密码,这里就配置一下 ssh 的免密钥登陆吧。

生成公钥私钥

ssh-key-gen -t rsa

这里一路下一步就行了

拷贝公钥到本机

ssh-copy-id 你的主机名

然后输入你的密码,一路回车就行了。
这个时候如果弹出类似于

Now try logging into the machine, with "ssh '1.2.3.4'", and check in:.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

这样的字样就是成功了。
你可以输入 who 来看是不是现在有两个登录用户

配置 Java 环境

为啥配置 Java 环境呢?因为 Hadoop 是用 Java 实现的啊。

下载安装包,并且解压

下载 Java8 的安装包jdk1.8.0_162.tar.gz,然后把上传到服务器,再解压到你指定的位置就行。

tar -zxf jdk1.8.0_162.tar.gz -C /home/dev/java8

这里就是解压到了 /home目录下的 /dev 文件夹中

修改环境变量

编辑 /etc/profile 文件

nano /etc/profile

添加如下几行

export JAVA_HOME=/home/dev/java8
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

然后退出来刷新一下

source /etc/profile

这样就好了。
你可以输入 java -version来查看是否更新了环境变量。

配置 Hadoop 依赖

接下来就是配置 Hadoop 的依赖了。

配置 findbugs

简单是说就是下载 findbugs 的安装包,然后解压到指定的目录,配置环境变量

# 解压
tar -zxf findbugs-1.3.9.tar.gz -C /home/dev/
# 编辑环境变量
nano /etc/profile
# 加入下面两句
export FINDBUGS_HOME=/home/dev/findbugs-1.3.9
export PATH=$PATH:$FINDBUGS_HOME/bin
# 刷新环境变量
source /etc/profile
# 查看是否配置成功
findbugs -version
# 输出版本号就是正确的了

配置 protobuf

这个流程稍微有点不一样,就是要自己手动编译。

# 解压
tar -zxf protobuf-2.5.0.tar.gz -C /home/dev/
# 到程序的目录
cd /home/dev/protobuf-2.5.0
# 确认能否安装
./configure
# 这里如果提示了 success 就是成功了就可以进行安装了
make install
# 等安装完后看是否安装成功
protoc --version

配置 maven

下载,解压,配置环境变量

# 解压
tar -zxf apache-maven-3.0.5-bin.tar.gz -C /home/dev/
# 编辑环境变量
nano /etc/profile
# 加入下面两句
export MAVEN_HOME=/home/dev/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin
# 刷新环境变量
source /etc/profile
# 查看是否配置成功
mvn --version
# 输出版本号就是正确的了

配置 Hadoop 开发环境

这里就是要准备配置 Hadoop 了

配置 Hadoop

下载,解压,配置环境变量

# 解压
tar -zxf hadoop-2.9.2-linux-64.tar.gz -C /home/dev/
# 编辑环境变量
nano /etc/profile
# 加入下面几句
export HADOOP_HOME=/home/dev/hadoop-2.9.2
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_USER_NAME=root
# 刷新环境变量
source /etc/profile

配置 env.sh

# 到 hadoop 的目录
cd /home/dev/hadoop-2.9.2
# 修改 hadoop-env.sh
nano /etc/hadoop/hadoop-env.sh
# 对 JAVA_HOME 这一行进行修改
export JAVA_HOME=/home/dev/java8

配置 core-site.xml

# 到 hadoop 的目录
cd /home/dev/hadoop-2.9.2
# 新建临时目录
mkdir data
cd data
mkdir tmp
# 回到 hadoop 的目录
cd /home/dev/hadoop-2.9.2

# 修改 core-site.xml
nano etc/hadoop/core-site.xml

在文件中添加如下的配置

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop:8020</value>
</property> 
<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/softwares/hadoop-2.9.1/data/tmp</value>
</property>

配置 hdfs-site.xml

# 到 hadoop 的目录
cd /home/dev/hadoop-2.9.2
# 修改 hdfs-site.xml 
nano etc/hadoop/hdfs-site.xml

在文件中添加如下的配置

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
# 格式化 namenode
./bin/hdfs namenode -format
# 当提示 success 的时候就是正确格式化了

配置 mapred-site.xml

# 到 hadoop 的目录
cd /home/dev/hadoop-2.9.2
# 复制 mapred-site.xml
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
# 修改 mapred-site.xml
nano etc/hadoop/mapred-site.xml

在文件中添加如下的配置

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置 yarn-site.xml

# 到 hadoop 的目录
cd /home/dev/hadoop-2.9.2
# 修改 yarn-site.xml
nano etc/hadoop/yarn-site.xml

在文件中添加如下的配置

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

这样就配置好了

启动 hadoop

# 一个是通过环境变量启动,一个是通过绝对路径启动
bash ${HADOOP_HOME}/sbin/start-dfs.sh
bash /home/softwares/hadoop-2.9.2/sbin/start-yarn.sh
# 等执行完之后查看是否正确,就输入
jps
# 这样来查看就知道是否配置正确了,正确的话应该会一共有五个进程。

参考

CENTOS 8 安装 HADOOP