ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Centos7安装Hadoop2.7

2019-12-06 13:02:28  阅读:365  来源: 互联网

标签:mydata pid hadoop yarn Centos7 dfs node1 Hadoop2.7 安装


准备

1、三台Centos7的机器,在/etc/hosts中都加上所有的hostname解析:

172.20.0.4  node1

172.20.0.5  node2

172.20.0.6  node3

2、配置node1到三台机器的免密登录

3、全部安装jdk8

4、官网下载安装包:hadoop-2.7.7.tar.gz(推荐中国科学技术大学开源镜像:http://mirrors.ustc.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz)

5、计划:node1作为namenode和datanode,node2和node3作为datanode

配置

三台都创建路径/mydata/,并配置环境变量:

export HADOOP_HOME=/mydata/hadoop-2.7.7

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

下面在node1上修改hadoop的配置,解压hadoop-2.7.7.tar.gz到/mydata/,进入/mydata/hadoop-2.7.7/etc/hadoop/,修改以下文件(有些文件需要去掉,template后缀,或拷贝一份重命名):

<!-- 文件名 core-site.xml -->
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://node1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/mydata/data/hadoop-${user.name}</value> </property> </configuration>
<!-- 文件名 hdfs-site.xml -->
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>
<!-- 文件名 mapred-site.xml -->
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
<!-- 文件名 yarn-site.xml -->
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
</configuration>
<!-- 文件名 slaves -->
node1
node2
node3
特别说明  
fs.defaultFS namenode上文件系统的地址
hadoop.tmp.dir 多个路径的基础,包括namenode和datanode的数据,默认是/tmp/hadoop-${user.name}
dfs.replication 副本数,这里设为2,这样集群中共三份数据,适用日常大部分情况了
yarn.resourcemanager.hostname yarn资源管理器所在host
slaves 该文件中列出的是作为从节点的datanode,若node1只打算作为namenode则不需要写进去

默认日志目录在$HADOOP_HOME/logs,pid文件在/tmp,可以进行修改:

# 文件名 hadoop-env.sh
export HADOOP_PID_DIR="/mydata/data/pid"
export HADOOP_LOG_DIR="/mydata/logs/hadoop"
# 文件名 yarn-env.sh
export YARN_LOG_DIR="/mydata/logs/yarn"
export YARN_PID_DIR="/mydata/data/pid"

配置完成后将hadoop程序文件拷贝到其他两台:

node1> scp /mydata/hadoop-2.7.7/ root@node2:/mydata/
node1> scp /mydata/hadoop-2.7.7/ root@node3:/mydata/

启动

需要先在node1初始化namenode(只有第一次启动前需要,除非删除了hadoop.tmp.dir下namenode的数据):

node1> hdfs namenode -format

看到 Storage directory /mydata/data/hadoop-root/dfs/name has been successfully formatted. 则表示成功

下面先启动hdfs,后启动yarn:

node1> start-dfs.sh
node1> start-yarn.sh

验证node1的进程:

node1> jps
[pid]  Jps
[pid]  DataNode
[pid]  NameNode
[pid]  SecondaryNameNode
[pid]  NodeManager
[pid]  ResourceManager

验证node2和node3的进程(两台应该是一样的):

node2> jps
[pid]  DataNode
[pid]  Jps
[pid]  NodeManager

测试

通过浏览器可以访问以下地址:

namenode的后台 http://node1:50070
yarn资源管理的后台 http://node1:8088

前者切换到 Datanodes :

 后者进入 Cluster -> Nodes :

 下面执行一个官方示例(wordcount),先准备两个文件,内容如下:

# 文件名 1.txt
天空    sky
天空    sky
天空    sky

# 文件名 2.txt
海洋    ocean
海洋    ocean

将这两个文件上传到hdfs,然后执行任务:

# 创建路径(将root改为自己的用户名)
node1> hdfs dfs -mkdir -p /user/root/input
# 上传文件
node1> hdfs dfs -put *.txt input
# 执行wordcount任务统计文件中每个单词的数量,并等待其执行结束
node1> hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount input output
# 查看结果
node1> hdfs dfs -cat output/*
ocean  2
sky   3
天空   3
海洋   2
# 若要重复执行任务,需要删除output文件夹,或者在命令中换一个输出目录
node1> hdfs dfs -rm -r output

可以在yarn的资源管理平台 Cluster -> Applications 查看到该任务:

 启用jobhistory

这个不是必须的,但可以更好的查看job的历史记录和管理job的日志

# 文件名 mapred-env.sh
export HADOOP_MAPRED_LOG_DIR="/mydata/logs/mapred"
export HADOOP_MAPRED_PID_DIR="/mydata/data/pid"
<!-- 文件名 mapred-site.xml -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>
<!-- 文件名 yarn-site.xml 日志聚合,开启后job的日志不再存到node本地,而是上传到hdfs -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>

停止集群:

node1> stop-yarn.sh
node1> stop-dfs.sh

然后将修改的配置同步更新到其他所有节点,并在启动集群后启动historyserver:

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

通过浏览器访问 http://node1:19888 :

over

标签:mydata,pid,hadoop,yarn,Centos7,dfs,node1,Hadoop2.7,安装
来源: https://www.cnblogs.com/toSeek/p/11981809.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有