CentOs7安装集群hadoop2.7.5(2)

紧接上文,这篇文章主要是修改配置文件

  • core-site.xml
  • hdfs-site.xml
  • mapred-site.xml.template
  • yarn-site.xml
  • slaves

hadoop-2.7.5官方网站

core-site.xml的配置

core-site.xml其他服务都要加载,一些公共的配置参数和一些核心的配置参数都在这个配置文件里面,先进到/usr/local/hadoop/etc/hadoop目录下。

cd /usr/local/hadoop/etc/hadoop
vim core-site.xml

这里写图片描述

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master.hadoop:9000</value>
    </property>
    <property>
        <name>fs.checkpoint.period</name>
        <value>3600</value>
        <description>The number of seconds between two periodic checkpoints.
        </description>
    </property>
</configuration>

添加完后保存退出。

简单解释下
hadoop.tmp.dir—–>临时文件存放目录。
hdfs://master.hadoop:9000:
hdfs是文件系统
master.hadoop是主节点的主机名,这样外部可以连接,若使用localhost仅虚拟机内可以连接。
9000是端口号
fs.checkpoint.period表示多长时间记录一次hdfs的镜像。默认是1小时。(这个参数连同 hdfs-site-xml里的dfs.namenode.secondary.http-address可以不用配置)


hdfs-site-xml

hdfs-site-xml是配置hdfs服务或hdfs客户端的一些服务,SecondaryNameNode具体原理参考Hadoop中SecondaryNameNode工作机制

这里写图片描述

vim hdfs-site.xml

这里写图片描述

<configuration>
    <!-- 设置namenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master.hadoop:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1.hadoop:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/namesecondary</value>
    </property>
</configuration>

dfs.namenode.name.dir—>namenode(元数据)持久化的目录
dfs.datanode.data.dir——>datanode数据目录
dfs.replication—–>hdfs副本数量,亦可以理解为datanode的数量。我用的总共三台机器一台机器为namenode,另外两台就是datanode,所以副本数为2。另外默认副本数是3,若你只有一台机器,这儿就设为1,否则之后会报错
dfs.namenode.checkpoint.dir—>简单点的文件系统

可以自己生成以上指定目录,也可以执行 NameNode 的格式化

生成指定目录方式:
这里写图片描述

 sudo mkdir -p /usr/local/hadoop/tmp/dfs/name /usr/local/hadoop/tmp/dfs/data /usr/local/hadoop/tmp/dfs/namesecondary
 sudo chown -R hadoop:hadoop /usr/local/hadoop/tmp

mapred-site.xml.template

首先要先对mapred-site.xml.template重命名,重命名为 mapred-site.xml,然后编辑。如果你问我为什么要修改名字,是为了启动YARN

不启动 YARN 需重命名 mapred-site.xml
如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。

这里写图片描述

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

这里写图片描述

<configuration>
    <property>  
        <name>mapreduce.framework.name</name>  
        <value>yarn</value>  
    </property>  
    <property>  
        <name>mapreduce.jobhistory.address</name>  
        <value>master.hadoop:10020</value>  
    </property>  
    <property>  
        <name>mapreduce.jobhistory.webapp.address</name>  
        <value>master.hadoop:19888</value>  
    </property>  
</configuration>

mapreduce.framework.name—>MapReduce运行框架的名字,这个参数是必须配置的,否则2.0.x是跑不了MapReduce程序的
mapreduce.jobhistory—>历史服务的地址,可以不配,有默认值


yarn-site.xml

配置参数的说明可以参考这篇文章 http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-resourcemanager-nodemanager/ 转载自董的博客

vim yarn-site.xml

这里写图片描述

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master.hadoop</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>  
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>  
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.address</name>  
        <value>master.hadoop:8032</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.scheduler.address</name>  
        <value>master.hadoop:8030</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.resource-tracker.address</name>  
        <value>master.hadoop:8035</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.admin.address</name>  
        <value>master.hadoop:8033</value>  
    </property>  
    <property>  
        <name>yarn.resourcemanager.webapp.address</name>  
        <value>master.hadoop:8088</value>  
    </property>  
</configuration>

如果在yarn中运行MapReduce程序,2,3两个参数必须配置。
最后一个参数是MapReduce的主机名字

yarn的默认参数


slaves

slaves存放datanode节点

vim slave1

slave1.hadoop
slave2.hadoop

把localhost改为datanode主机名


因为修改的配置文件都在etc下,所以压缩etc文件夹,再把压缩文件传到其他节点就可以了。在master节点上进到/usr/local/hadoop/etc目录下压缩hadoop文件夹传到slave1和slave2节点上,依次执行以下代码块

cd
cd /usr/local/hadoop/etc
tar -zcf ./hadoop.tar.gz ./hadoop
scp ./hadoop.tar.gz slave1.hadoop:/usr/local/hadoop/etc
scp ./hadoop.tar.gz slave2.hadoop:/usr/local/hadoop/etc

这里写图片描述


在slave1.hadoop,slave2.hadoop节点上,都依次执行以下代码,解压缩master.hadoop节点上传来的hadoop.tar.gz替换原来的hadoop,最后删除。注意这里的hadoop是/usr/local/hadoop/etc下的hadoop而不是/usr/local/hadoop

cd
cd /usr/local/hadoop/etc
sudo rm -r ./hadoop
sudo tar -zxf ./hadoop.tar.gz
sudo rm -r ./hadoop.tar.gz

这里写图片描述


把master节点上配置好的文件hosts和profile传到slave1和slave2上,依次执行以下代码

这里写图片描述

cd /etc/
scp hosts slave1.hadoop:
scp hosts slave1.hadoop:
sudo scp profile slave1.hadoop
sudo scp profile slave2.hadoop

slave1,slave2把master节点上配置好的文件放到/etc/目录下,使用su命令登录到超级用户root下。

su
cd
mv profile /etc/
mv /home/hadoop/hosts /etc/
source /etc/profile

这里写图片描述

到这里配置都结束了


首次启动需要先在各节点执行 NameNode 的格式化,看到 Exiting with status 0,就代表格式化成功了

hdfs namenode -format  

这里写图片描述


接着可以启动 hadoop 了,启动只需要在 master.hadoop 节点上进行。这是先启动dfs,在启动yarn,最后启动historyserver进程。通过命令 jps 可以查看各个节点所启动的进程。hadoop环境变量没配全的,先到/usr/local/hadoop/sbin目录xxxxx.sh文件均在这个目录下

这里写图片描述

start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

这里写图片描述
master下有ResourceManager NameNode JobHistoryServer
slave1 DataNode NodeManager
slave2 DataNode NodeManager SecondaryNameNode
说明进程正常启动,其中SecondaryNameNode是在 hdfs–site.sh中所配置的。如下

<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>slave1.hadoop:50090</value>
</property>

ok,服务器配置完成了。接着在外部主机上C:\Windows\System32\drivers\etc下> 找到hosts加上你自己服务器的ip和主机名

下面是默认端口地址

这里写图片描述

打开浏览器,输入master:50070 ,可以看到namenod的检测情况。以下就是正常启动,若以下状态都为0则启动失败,可以stop-all.sh关闭服务后再重新启动。

这里写图片描述

这里写图片描述

启动historyserver 之前必须先执行mr-jobhistory-daemon.sh start historyserver

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值