0
点赞
收藏
分享

微信扫一扫

Hadoop的搭建

攻城狮Chova 2022-04-14 阅读 25
hadoop

hadoop的安装与配置

一:配置Linux免密登录,安装hadoop前要先配置Java 环境变量,点我的主页有详细的配置步骤,这里就不做详细的讲解。
二:下载地址为:链接https://hadoop.apache.org/.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一:
注意:不推荐下载太高版本
①:关闭防火墙–永久关闭
systemctl stop firewalld
systemctl disable firewalld

②:上传Hadoop的压缩包,到Linux下的home路径下,tar -zxvf hadoopx.x.x.tar 解压

③:在hadoop-2.7.3目录下创建四个目录:tmp、hdfs、hdfs/data、hdfs/name tmp:用来存储Hadoop临时文件,hdfs/data目录存储hdfs的文件块,hdfs/name目录用来存储元数据信息

二:配置文件
文件位置:hadoop/etc/hadoop
配置core-site.xml文件

<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://server-1:9000</value> 
</property> 
<property> 
    <name>hadoop.tmp.dir</name> 
    # 这里是你创建的tmp路径
    <value>file:/usr/local/zhitu/hadoop-2.7.3/tmp</value> 
</property> 
<property> 
        <name>io.file.buffer.size</name> 
        <value>131702</value> 
</property> 

配置hdfs-site.xml文件

进入hadoop目录下的etc/hadoop目录下,修改hdfs-site.xml文件,该文件主要是hdfs系统的相关配置,在配置中增加如下配置项:

dfs.namenode.name.dir :使用之前我们创建的hdfs/name目录

dfs.datanode.data.dir:使用之前我们创建的hdfs/data目录

dfs.replication: 文件保存的副本数

dfs.namenode.secondary.http-address:http访问hdfs系统的地址(一般使用服务器名称)和端口

dfs.webhdfs.enabled:是否开启web访问hdfs系统。设置为true可以让外部系统使用http协议访问hdfs系统。

<property>
    <name>dfs.namenode.name.dir</name>
<value>file:/usr/local/zhitu/hadoop-2.7.3/hdfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/usr/local/zhitu/hadoop-2.7.3/hdfs/data</value>
</property>
<property>
        <name>dfs.replication</name>
        <value>2</value>
</property>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>server-1:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

3.4、配置mapred-site.xml文件

mappred.xml文件中主要配置mapreduce相关的配置。

进入hadoop-2.7.3目录下的etc/hadoop目录下,将文件mapred-site.xml.template使用mv命令重命名为mapred-site.xml,并修改该文件增加如下配置项:

mapreduce.framework.name :运行mapreduce使用的框架,2.0以上的都是用的yarn

mapreduce.jobhistory.address:历史服务器的地址

mapreduce.jobhistory.webapp.address: 历史服务器的web访问地址

<property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
</property>
<property>
      <name>mapreduce.jobhistory.address</name>
      <value>server-1:10020</value>
</property>
<property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>server-1:19888</value>
</property> 

配置yarn-site.xml文件

yarn-site.xml文件中主要配置yarn框架相关的配置。

进入hadoop-2.7.3目录下的etc/hadoop目录下,修改yarn-site.xml文件,增加如下配置项:

yarn.nodemanager.aux-services:NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序

yarn.nodemanager.auxservices.mapreduce.shuffle.class:mapreduce执行shuffle使用的class

yarn.resourcemanager.address:resourceManager的地址,客户端通过该地址向RM提交应用程序,杀死应用程序等

yarn.resourcemanager.scheduler.address:ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源

yarn.resourcemanager.resource-tracker.address: ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等

yarn.resourcemanager.admin.address:ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令。

yarn.resourcemanager.webapp.address:ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看yarn框架中运行的任务状态

yarn.nodemanager.resource.memory-mb:NodeManager运行所需要的内存,单位MB。

<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<property>
   <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
   <name>yarn.resourcemanager.address</name>
   <value>hadoop1:8032</value>
</property>
<property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>hadoop1:8030</value>
</property>
<property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>hadoop1:8031</value>
</property>
<property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>hadoop1:8033</value>
</property>
<property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>hadoop1:8088</value>
</property>
<property>
     <name>yarn.nodemanager.resource.memory-mb</name>
     <value>1536</value>
</property>


、配置hadoop-env.sh、yarn-env.sh的JAVA_HOME

进入hadoop-2.7.3目录下的etc/hadoop目录下,修改hadoop-env.sh、yarn-env.sh 两个文件,增加JAVA_HOME的环境变量配置。查看jdk目录可使用命令echo $JAVA_HOME。

在hadoop-env.sh、yarn-env.sh两个文件中分别增加如下一段代码(jdk目录请根据自己实际情况设置):

export JAVA_HOME=/usr/lib/java/jdk1.8

4.配置主服务器免登录访问从服务器

4.1、为每个节点分别产生公、私密钥配置

以下操作我们选取namenode服务器server-1作为示例,成功之后,也在另外两台服务器上执行相同的操作!!!

开始之前我们可以先测试下,用ssh命令登录本机或者其他服务器,无论是本机还是其他主机,都是需要输入密码的。

使用ssh-keygen命令可以为本服务器生成公钥(id_dsa.pub)和私钥(Id_dsa),要求输入passphrased的时候直接敲回车。

ssh-keygen -t dsa -f ~/.ssh/id_dsa

cp ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys

4.2、让主结点能通过SSH免密码登录两个子结点

将主服务器的公钥文件内容添加到从服务器的authorized_keys文件里,就可以实现主服务器免密码登录从服务器了。

以下操作均在主服务器上执行。

使用scp命令,将主服务器的公钥文件id_dsa.pub复制到从服务器上,并命令为server-1.pub(此文件名可以自己随意起)。

scp ~/.ssh/id_dsa.pub root@server-2:~/.ssh/server-1.pub

输入此命令后,会要求输入server-2服务器的root账号密码,输入密码即可。

再将上一步生成的server-1.pub文件内容追加到server-2的authorized_keys文件中,可以登录到server-2上去操作,也可以在server-1上使用ssh命令远程操作。这里我们使用ssh命令,在server-1上远程操作
ssh root@server-2 “cat /.ssh/server-1.pub>>/.ssh/authorized_keys”
输入此命令后,会要求输入server-2服务器的root账号密码,输入密码即可。

如果不出问题,此时server-1服务就可以通过SSH免密码访问server-2了。

将Hadoop复制到各从服务器

通过以上步骤我们基本已经配置好了hadoop的集群配置,现在我们需要将我们配置好的文件复制到其他的服务器上。将文件copy到从服务器上的方法有很多,建议使用scp命令。

参考:在主服务器上执行以下两条命令(其中root为登录从服务器的用户名,server-2,server-3为从服务器的名称,请根据自己实际情况修改):
scp -r /usr/local/zhitu/hadoop root@server-2:/usr/local/zhitu/

格式化namenode

6.1、格式化namenode

在主服务器上,进入hadoop目录下,格式化namenode。
cd /usr/local/zhitu/hadoop

bin/hdfs namenode -format

、启动Hadoop

7.1、启动Hadoop

在主服务器上,进入hadoop目录下,启动Hadoop集群。
sbin/./start-all.sh
8.用jps,检测是否启动成功

举报

相关推荐

0 条评论