目录

  • Centos7下Hadoop完全分布式安装
  • 第一步:安装文件
  • 第二步:免密登录配置
  • (1)vim 的安装
  • (2)host配置
  • (3)关闭防火墙
  • (4)实现免密登陆
  • (5)安装NTP时间同步服务
  • 第三步:配置环境变量
  • 第四步:设置Hadoop配置文件
  • (1)配置hadoop-env.sh文件
  • (2)配置core-site.xml文件
  • (3)配置hdfs-site.xml文件
  • (4)配置mapred-site.xml文件
  • (5)配置yarn-site.xml文件
  • (6)修改 slaves 文件
  • 第五步:分发配置到 node2、node3 虚拟机
  • 第六步:运行Hadoop及测试


Centos7下Hadoop完全分布式安装

  • 电脑系统:macOS 10.15.4
  • 虚拟机软件:Parallels Desktop14
  • Hadoop各节点节点操作系统:CentOS 7
  • JDK版本:jdk1.8.0_162
  • Hadoop版本:hadoop-2.7.7

第一步:安装文件

准备好工具,虚拟机,3个centos,jdk安装包,Hadoop安装包

先在centos中的/opt/目录下新建一个文件夹Hadoop
然后上传Hadoop 和jdk

上传方式:

scp 本机的文件绝对路径 caizhengjie@10.211.55.49:/opt/Hadoop

解压文件:

tar -zxvf jdk-8u162-linux-x64.tar.gz
tar -zxvf hadoop-2.7.7.tar.gz

创建软连接:

ln -s hadoop-2.7.7 hadoop
ln -s jdk1.8.0_162 jdk

第二步:免密登录配置

(1)vim 的安装

如果centos没有安装好vim,需要安装vim

yum install vim -y

(2)host配置

开启虚拟机,host配置文件在根目录下的 etc 文件夹下,给三台虚拟机均进行配置。
注意,下面的host配置,一定要根据自己的主机名和ip进行配置,三台主机的配置均一样。在根目录下输入

sudo vim /etc/hosts

在每一台文件末尾添加以下内容

10.211.55.59 node1
10.211.55.60 node2
10.211.55.61 node3

(3)关闭防火墙

每一台服务器都要关闭防火强

  • 查看防火墙状态
firewall-cmd --state
  • 停止防火墙
systemctl stop firewalld.service
  • 禁止防火墙开机启动
systemctl disable firewalld.service
  • 关闭selinux
sudo vim /etc/selinux/config

注释掉 SELINUX=enforcing ,添加如下内容:

SELINUX=disabled

也可以直接将enforcing修改为disabled。

(4)实现免密登陆

配置每一台服务器本身公钥和免密:
首先进入

cd ~/.ssh

如果里面有文件的话,将其删除至空文件

rm -f *

在node1上生成公钥和密钥

ssh-keygen -t rsa

然后按三下回车

mac安装centos7卡在install 安装centos卡住不动_hadoop


然后需要将公钥发送给node1、node2、node3上

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

最后检验:

ssh node1
ssh node2
ssh node3

(5)安装NTP时间同步服务

三台虚拟机都要安装,需要进入root权限下:

sudo -i
  • 安装ntp
yum install -y ntp
  • 设置NTP服务开机启动
chkconfig ntpd on
  • 查看ntp进程是否启动
ps  aux | grep ntp

显示:

root     12650  0.0  0.0 112728   968 pts/0    S+   11:56   0:00 grep --color=auto ntp

第三步:配置环境变量

配置jdk、Hadoop环境变量:

sudo vim ~/.bashrc

在文件末尾添加如下代码

export JAVA_HOME=/opt/Hadoop/jdk1.8.0_162
export CLASSPATH=${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export HADOOP_HOME=/opt/Hadoop/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

上面这个地方根据自己的实际要求填写
保存并退出
是设置生效:

source  ~/.bashrc

检验java -version和whereis hdfs
能输出Java版本号的即为配置环境变量成功

第四步:设置Hadoop配置文件

在node1进行文件配置
进入hadoop目录

cd /opt/Hadoop/hadoop-2.7.7/etc/hadoop

(1)配置hadoop-env.sh文件

设置hadoop-env.sh文件

vim hadoop-env.sh

找到export JAVA_HOME,修改如下:

export JAVE_HOME=/opt/Hadoop/jdk1.8.0_162

(2)配置core-site.xml文件

vim core-site.xml

修改core-site.xml文件

<configuration>
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9000</value>
        </property>
        <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/Hadoop/hadoop-2.7.7/tmp</value>
        </property>
        <property>
               <name>hadoop.http.staticuser.user</name>
               <value>caizhengjie</value>
        </property>
</configuration>

(3)配置hdfs-site.xml文件

vim hdfs-site.xml

修改hdfs-site.xml文件

<configuration>
        <property>
        <name>dfs.replication</name>
        <value>2</value>
        </property>
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
        <property>
                <name>dfs.permissions.enabled</name>
                <value>false</value>
        </property>
</configuration>

(4)配置mapred-site.xml文件

将 mapred-site.xml.template 复制为文件名是 mapred-site.xml 的文件

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

修改mapred-site.xml文件

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

如果在测试mapreduce出现问题,请见这篇文章

(5)配置yarn-site.xml文件

vim yarn-site.xml

修改yarn-site.xml文件

<configuration>
        <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
        </property>
        <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
	</configuration>

(6)修改 slaves 文件

这是分配datanode,如果想配置三台datanode则需要在slaves文件里添加三台主机名
将原有的内容删去,加以上内容:

node1
node2
node3

或者

node2
node3

这里会出现一个问题:当重新启动服务的时候,会出现“卡住不动的情况”,这种情况千万不要ctrl+c给停止掉,这是让你输入node1的密码,因为字比较小我经常会忽略掉,以为是个报错,其实不是报错,是想让你输入密码而已!这个坑我卡了三天!

第五步:分发配置到 node2、node3 虚拟机

  • 方案一:如果第一步上传文件只上传在node1中,node2,node3没有上传,则可以将整个Hadoop文件传给node2,node3。但是,上传完之后需要在node2,node3中配置环境变量。
scp -r Hadoop caizhengjie@node2:/opt/
scp -r Hadoop caizhengjie@node3:/opt/
  • 方案二:如果在node2,node3中均已上传文件并配置好环境变量,则只需要将 hadoop/etc目录下的 hadoop 文件夹分发给另外两台虚拟机
scp -r hadoop caizhengjie@node2:/opt/Hadoop/hadoop-2.7.7/etc/hadoop
scp -r hadoop caizhengjie@node3:/opt/Hadoop/hadoop-2.7.7/etc/hadoop

第六步:运行Hadoop及测试

在运行初次运行hadoop之前,需要在 node1 格式化 hdfs

hdfs namenode -format
  • 启动HDFS:start-dfs.sh
  • 启动YARN:start-yarn.sh
  • 启动all:start-all.sh
  • 关闭Hadoop服务:stop-all.sh

检验Hadoop进程:jps
node1中出现:

[caizhengjie@node1 ~]$ jps
28304 Jps
17060 ResourceManager
15654 NameNode
16008 DataNode
16649 SecondaryNameNode
17245 NodeManager

node2中出现:

[caizhengjie@node2 ~]$ jps
2370 Jps
2133 DataNode
2247 NodeManager

node3中出现:

[caizhengjie@node3 ~]$ jps
2144 DataNode
2257 NodeManager
2403 Jps

访问网页:

mac安装centos7卡在install 安装centos卡住不动_hadoop_02


mac安装centos7卡在install 安装centos卡住不动_hadoop_03

mac安装centos7卡在install 安装centos卡住不动_hadoop_04