Hadoop集群的安装与部署

以下操作步骤需要在HadoopMaster和HadoopSlave节点上分别完整操作,都使用root用户,从当前用户切换root用户的命令如下:

[lan@master ~]$ su root

输入密码:lan

本节所有的命令操作都在终端环境,打开终端的过程如下图的Terminal菜单:

终端打开后如下图中命令行窗口所示。

 3.2.1配置时钟同步

1、配置自动时钟同步

该项同时需要在HadoopSlave节点配置。

使用Linux命令配置

[root@master ~]$ crontab -e

该命令是vi编辑命令,按i进入插入模式,按Esc,然后键入:wq保存退出

键入下面的一行代码,输入i,进入插入模式(星号之间和前后都有空格)

0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

2、手动同步时间

直接在Terminal运行下面的命令:

[root@master ~]$ /usr/sbin/ntpdate cn.pool.ntp.org

3.2.2配置主机名

1、HadoopMaster节点

使用gedit编辑主机名,如果不可以使用gedit,请直接使用vi编辑器(后面用到gedit的地方也同此处处理一致)。

[root@master ~]# vim /etc/sysconfig/network

配置信息如下,如果已经存在则不修改,将HadoopMaster节点的主机名改为master,即下面代码的第2行所示。

NETWORKING=yes #启动网络

HOSTNAME=master  #主机名

 

确实修改生效命令:

[root@master ~]# hostname master

检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:

[root@master ~]# hostname

执行完命令,会看到下图的打印输输出:

2、HadoopSl使用gedit编辑主机名:

[root@master ~]# vim /etc/sysconfig/network

配置信息如下,如果已经存在则不修改,将Hadoopslave节点的主机名改为slave,即下面代码的第2行所示。

NETWORKING=yes #启动网络

HOSTNAME=slave  #主机名

 

确实修改生效命令:

[root@master ~]# hostname slave

检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:

[root@master ~]# hostname

执行完命令,会看到下图的打印输输出

3.2.3使用setup 命令配置网络环境

该项也需要在HadoopSlave节点配置。

在终端中执行下面的命令:

[root@master ~]# ifconfig

如果看到下面的打印输出

如果看到出现红线标注部分出现,即存在内网IP、广播地址、子网掩码,说明该节点不需要配置网络,否则进行下面的步骤。

在终端中执行下面命令:

[root@master ~]# setup

会出现下图中的内容:

使用光标键移动选择“Network configuration”,回车进入该项

使用光标键移动选择eth0,回车进入该项

按照图中的方式输入各项内容

重启网络服务

[root@master ~]# /sbin/service network restart

检查是否修改成功:

[root@master ~]# ifconfig

看到如下图的内容(IP不一定和下图相同,根据你之前的配置),说明配置成功,特别关注红线部分

3.2.4关闭防火墙

该项也需要在HadoopSlave节点配置。

在终端中执行下面命令:

[root@master ~]# setup

会出现下图中的内容:

光标移动选择“Firewall configuration”选项,回车进入选项

如果该项前面有“*”标,则按一下空格键关闭防火墙,如下图所示,然后光标移动选择“OK”保存修改内容

选择OK

3.2.5配置hosts列表

该项也需要在HadoopSlave节点配置。

需要在root用户下(使用su命令),编辑主机名列表的命令:

[root@master ~]# vim /etc/hosts

将下面两行添加到/etc/hosts文件中:

192.168.124.142 master

192.168.124.141 slave

注意:这里master节点对应IP地址是192.168.124.142,slave对应的IP是192.168.124.141,而自己在做配置时,需要将这两个IP地址改为你的master和slave对应的IP地址。

查看master的IP地址使用下面的命令:

[lan@master ~]$ ifconfig

master节点的IP是下图中红线标注的内容。

slave的IP地址也是这样查看。

验证是否配置成功的命令是:

[lan@master ~]$ ping master

[lan@master ~]$ ping slave

如果出现下图的信息表示配置成功:

如果出现下图的内容,表示配置失败:

3.2.6安装JDK

该项也需要在HadoopSlave节点配置。

将JDK文件解压,放到/usr/java目录下

[root@master ~]# mkdir /usr/java/

[root@master ~]# mv /home/lan/jdk-8u101-linux-x64.tar.gz /usr/java/

[root@master ~]# cd /usr/java/

[root@master java]# tar -xvf jdk-8u101-linux-x64.tar.gz

配置环境变量

[lan@master ~]$ vim ~/.bash_profile

复制粘贴以下内容添加到到上面gedit打开的文件中:

export JAVA_HOME=/usr/java/jdk1.8.0_101

export PATH=$JAVA_HOME/bin:$PATH

使改动生效命令:

[lan@master ~]$ source ~/.bash_profile

测试配置:

[lan@master ~]$ java -version

如果出现下图的信息,表示JDK安装成功:

7免密钥登录配置

该部分所有的操作都要在lan用户下,切换回lan的命令是:

su -lan

密码是:lan

在终端生成密钥,命令如下(一路点击回车生成密钥)

[lan@master ~]$ ssh-keygen -t rsa

生成的密钥在.ssh目录下如下图所示:

复制公钥文件

[lan@master ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

执行ls -l命令后会看到下图的文件列表:

修改authorized_keys文件的权限,命令如下:

[lan@master .ssh]$ chmod 600 ~/.ssh/authorized_keys

修改完权限后,文件列表情况如下:

将authorized_keys文件复制到slave节点,命令如下:

[lan@master .ssh]$ scp ~/.ssh/authorized_keys lan@slave:~/

如果提示输入yes/no的时候,输入yes,回车

密码是:lan

2、HadoopSlave节点

在终端生成密钥,命令如下(一路点击回车生成密钥)

[lan@slave ~]$ ssh-keygen -t rsa

将authorized_keys文件移动到.ssh目录

[lan@slave ~]$ mv authorized_keys ~/.ssh/

3、验证免密钥登陆

在HadoopMaster机器上执行下面的命令:

[lan@master ~]$ ssh slave

如果出现下图的内容表示免密钥配置成功:

3.3  Hadoop配置部署

每个节点上的Hadoop配置基本相同,在HadoopMaster节点操作,然后完成复制到另一个节点。

下面所有的操作都使用lan用户,切换lan用户的命令是:

[root@master lan]# su - lan

密码是:lan

将软件包中的Hadoop生态系统包复制到相应lan用户的主目录下(直接拖拽方式即可拷贝)

3.3.1 Hadoop安装包解压

进入Hadoop软件包,命令如下:

[lan@master ~]$ cd

复制并解压Hadoop安装包命令如下:

[lan@master ~]$ tar -xvf hadoop-2.7.1.tar.gz

[lan@master ~]$ cd hadoop-2.7.1

ls -l看到如下图的内容,表示解压成功:

3.3.2配置环境变量hadoop-env.sh

环境变量文件中,只需要配置JDK的路径。

[lan@master ~]$ cd hadoop-2.7.1/etc/hadoop/

[lan@master hadoop]$ vim hadoop-env.sh

在文件的靠前的部分找到下面的一行代码:

export JAVA_HOME=${JAVA_HOME}

将这行代码修改为下面的代码:

export JAVA_HOME=/usr/java/jdk1.8.0_101

然后保存文件。 

3.3.3配置环境变量yarn-env.sh

环境变量文件中,只需要配置JDK的路径。

[lan@master hadoop]$ vim yarn-env.sh

在文件的靠前的部分找到下面的一行代码:

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

将这行代码修改为下面的代码(将#号去掉):

export JAVA_HOME=/usr/java/jdk1.8.0_101

然后保存文件。

3.3.4配置核心组件core-site.xml 

使用vim编辑:

[lan@master hadoop]$ vim core-site.xml

修改内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

        <property>

                <name>fs.defaultFS</name>

                <value>hdfs://master:9000</value>

        </property>

        <property>

                <name>hadoop.tmp.dir</name>

                <value>/home/lan/hadoopdata</value>

        </property>

</configuration>

3.3.5配置文件系统hdfs-site.xml

使用gedit编辑:

[lan@master hadoop]$ vim hdfs-site.xml

修改内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<!-- Put site-specific property overrides in this file. -->

 

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

</configuration>

3.3.6配置文件系统yarn-site.xml

使用gedit编辑:

[lan@master hadoop]$ vim yarn-site.xml

修改内容如下:

<?xml version="1.0"?>

 

<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>

3.3.7配置计算框架mapred-site.xml

复制mapred-site-template.xml文件:

[lan@master hadoop]$ cp mapred-site.xml.template mapred-site.xml

使用vim编辑:

[lan@master hadoop]$ vim mapred-site.xml

修改内容如下:

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

 

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

 

</configuration>

3.3.8 在master节点配置slaves文件

使用vim编辑:

[lan@master hadoop]$ vim slaves

用下面的代码替换slaves中的内容:

slave

3.3.9 复制到从节点

使用下面的命令将已经配置完成的Hadoop复制到从节点HadoopSlave上:

[lan@master hadoop]$ cd

[lan@master ~]$ scp -r hadoop-2.7.1 lan@slave:~/

注意:因为之前已经配置了免密钥登录,这里可以直接远程复制。

3.4  启动Hadoop集群

下面所有的操作都使用lan用户,切换lan用户的命令是:

su - lan

密码是:lan

3.4.1  配置Hadoop启动的系统环境变量

该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作,操作命令如下:

[lan@master ~]$ vim ~/.bash_profile

将下面的代码追加到.bash_profile末尾:

#HADOOP

export HADOOP_HOME=/home/lan/hadoop-2.7.1

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

然后执行命令:

[lan@master ~]$ source ~/.bash_profile

 3.4.3启动Hadoop集群

1、格式化文件系统

格式化命令如下,该操作需要在HadoopMaster节点上执行:

[lan@master ~]$ hdfs namenode -format

看到下图的打印信息表示格式化成功,如果出现Exception/Error,则表示出问题:

2、启动Hadoop

使用start-all.sh启动Hadoop集群,首先进入Hadoop安装主目录,然后执行启动命令:

[lan@master ~]$ cd ~/hadoop-2.7.1

[lan@master hadoop-2.7.1]$ sbin/start-all.sh

执行命令后,提示出入yes/no时,输入yes。

3、查看进程是否启动

在HadoopMaster的终端执行jps命令,在打印结果中会看到4个进程,分别是ResourceManager、Jps、NameNode和SecondaryNameNode,如下图所示。如果出现了这4个进程表示主节点进程启动成功。

在HadoopSlave的终端执行jps命令,在打印结果中会看到3个进程,分别是NodeManager、DataNode和Jps,如下图所示。如果出现了这3个进程表示从节点进程启动成功。

4、Web UI查看集群是否成功启动

在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入输入http://master:50070/,检查 namenode 和 datanode 是否正常。UI页面如下图所示。

在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入输入http://master:18088/,检查 Yarn是否正常,页面如下图所示。

5、运行PI实例检查集群是否成功

进入Hadoop安装主目录,执行下面的命令:

cd

[lan@master ~]$ cd hadoop-2.7.1/share/hadoop/mapreduce/

[lan@master mapreduce]$ hadoop jar hadoop-mapreduce-examples-2.7.1.jar pi 10 10

会看到如下的执行结果:

最后输出:

Estimated value of Pi is 3.20000000000000000000

如果以上的3个验证步骤都没有问题,说明集群正常启动。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 将以下命令复制到终端中安装Hadoop集群部署脚本: b'shell\xe4\xb8\x80\xe9\x94\xae\xe5\xae\x89\xe8\xa3\x85hadoop\xe9\x9b\x86\xe7\xbe\xa4\xe9\x83\xa8\xe7\xbd\xb2' 按下回车键开始安装安装完成后,将你的Hadoop集群配置文件复制到所需的所有节点上,并启动Hadoop服务就可以了。 ### 回答2: Hadoop是一个分布式计算框架,主要用于处理大规模的数据集。在Hadoop集群部署过程中,需要在每台机器上安装Java、Hadoop,并配置各节点间通信等。Shell脚本为我们提供了自动化一键化的部署方式,有效减少了操作时间和人工错误的可能性。 Shell是一种脚本语言,可以用于执行操作系统内置的命令,也可以组合成程序,实现批处理的工作。可以通过编写Shell脚本,在多个节点上自动安装和配置Hadoop集群。 一般来说,Shell脚本部署Hadoop集群的流程如下: 1. 编写Shell脚本,定义需要安装哪些软件和配置,主要包括安装Java、Hadoop软件、配置Hadoop环境变量、配置Hadoop集群等。 2. 在主节点上运行一键安装脚本,脚本会自动下载Java、Hadoop软件到各个节点,并启动安装和配置过程。 3. 在集群各节点上传或复制一键安装脚本,执行脚本完成每台机器的自动化安装和配置。 4. 验证集群配置是否正确,包括节点间的链接通断、数据块的分配、备份等。 Shell脚本部署Hadoop集群的优点很明显,它可以大大简化安装的流程,让不懂Linux命令和Hadoop的人也能快速完成部署。同时,通过Shell脚本的一键安装方式,可以让部署过程更具可重复性、可靠性,减少出错和手动调整的可能性。 ### 回答3: Hadoop是一个分布式计算框架,它能够管理和处理大规模数据集。在实际应用中,如果需要进行数据分析、机器学习等工作,通常需要一台或多台计算机上配置Hadoop集群部署来实现。这个过程需要依次安装不同的环境与组件,如Java、Hadoop、Hive等。由于这个过程繁琐复杂,需要操作系统、环境与软件等多方面的知识,因此有必要使用一键安装的方式来简化部署的过程。 Shell一键安装Hadoop集群部署是使用Shell脚本编写自动安装脚本,减少繁琐的部署过程。通过一键安装,可以省去手动安装和配置环境不免出现的人工操作失误,并且可以快速、轻松地完成Hadoop集群部署。 具体实现过程可以分为以下几步: 1. 准备安装环境,如Ubuntu、CentOS等Linux平台、GitHub下载一键安装脚本; 2. 将主机与节点服务器IP地址写入配置文件中; 3. 创建Shell脚本文件并设置所需的安装环境; 4. 编写自动安装脚本,包括软件下载、配置环境、启动服务等。 5. 安装完毕后,进行配置检查和测试。 在实际使用过程中,一键安装脚本不仅可以用于简化Hadoop集群部署的过程,也可以扩展到其他的应用上。例如,一键安装脚本也可以用与Kafka集群或其他分布式系统等。 总之,Shell一键安装Hadoop集群部署是一项非常有用而又实用的技术,可以帮助用户快速构建和部署Hadoop集群,提高工作效率和减少错误率。同时,还可以使管理和维护的过程更加简单和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值