基础环境的搭建参考:Hadoop学习准备工作 - Centos 7 系统安装与配置
<https://blog.csdn.net/r_aider/article/details/80005521>




一、 伪分布式

    伪分布式是指:hadoop的守护进程以独立进程形式运行在单一节点上。

二、 Hadoop部署与配置

1、 hadoop部署

    从官网获取 hadoop稳定版
<http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.0/>,安装到指定目录下:
/home/root
tar -zxvf hadoop-3.1.0.tar.gz
    等待解压缩完成后,vi /etc/profile 编辑环境变量 -->
export HADOOP_HOME=/home/root/hadoop-3.1.0
    保存退出,执行 source /etc/profile使变量生效。

    编辑 vi etc/hadoop/hadoop-env.sh -->
# JAVA_HOME export JAVA_HOME=/home/root/jdk/jdk1.8.0_171 # USERS export
HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export
HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export
YARN_NODEMANAGER_USER=root
    保存退出后,执行 bin/hadoop 验证 hadoop 的可用性:
[root@skynet hadoop-3.1.0]# bin/hadoop version Hadoop 3.1.0 Source code
repository https://github.com/apache/hadoop -r
16b70619a24cdcf5d3b0fcf4b58ca77238ccbe6d Compiled by centos on
2018-03-30T00:00Z Compiled with protoc 2.5.0 From source with checksum
14182d20c972b3e2105580a1ad6990 This command was run using
/home/root/hadoop-3.1.0/share/hadoop/common/hadoop-common-3.1.0.jar
2、 文件基础配置(TODO:更多配置待补充)

1) vi etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> </property> </configuration>
2) vi etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value>
</property> </configuration>
3、 运行hadoop

1))hdfs文件系统格式化
$ bin/hdfs namenode -format
2) 启动namenode和datanode守护进程
$ sbin/start-dfs.sh
    等待启动完成后,jps查看进程:
[root@skynet hadoop-3.1.0]# sbin/start-dfs.sh Starting namenodes on
[localhost] 上一次登录:四 4月 26 08:38:52 CST 2018从 192.168.9.1pts/1 上 Starting
datanodes 上一次登录:四 4月 26 08:53:37 CST 2018pts/1 上 skynet: Warning: Permanently
added 'skynet' (ECDSA) to the list of known hosts. Starting secondary namenodes
[skynet] 上一次登录:四 4月 26 08:53:40 CST 2018pts/1 上 [root@skynet hadoop-3.1.0]# jps
2512 Jps 2145 DataNode 2028 NameNode 2334 SecondaryNameNode [root@skynet
hadoop-3.1.0]#
    此时可以访问namenode的web服务:http://localhost:9870/
,查看namenode健康状况,可以观察到有一个存活的datanode节点。




4、 执行mapreduce任务
# 在分布式文件系统中创建用户目录(作用待了解) $ bin/hdfs dfs -mkdir /user $ bin/hdfs dfs -mkdir
/user/root # 拷贝数据到分布式文件系统中 $ bin/hdfs dfs -mkdir input $ bin/hdfs dfs -put
etc/hadoop/*.xml input # 运行hadoop提供的mapreduce任务 $ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar grep /input output
'dfs[a-z.]+' # 拷贝任务执行结果到本地文件系统中 $ bin/hdfs dfs -get output output $ cat
output/* # 或直接从分布式文件系统中查看计算结果 # $ bin/hdfs dfs -cat output/*
计算结果:
[root@skynet hadoop-3.1.0]# bin/hdfs dfs -cat output/* 1 dfsadmin 1
dfs.replication
5、 YARN 资源管理器

    在上述配置的基础上,可以启动YARN资源协调者(YARN待了解),在YARN上运行mapreduce任务。

    文件配置 1:vi etc/hadoop/mapred-site.xml:
<configuration> <property> <name>mapreduce.framework.name</name>
<value>yarn</value> </property> </configuration> <configuration> <property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property> </configuration>
    文件配置 2:vi etc/hadoop/yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> </property> <property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property> </configuration>
    启动ResourceManager daemon and NodeManager daemon:
$ sbin/start-yarn.sh
    jps命令查看进程:
[root@skynet hadoop-3.1.0]# sbin/start-yarn.sh Starting resourcemanager
上一次登录:四 4月 26 08:53:55 CST 2018pts/1 上 Starting nodemanagers 上一次登录:四 4月 26
09:20:27 CST 2018pts/1 上 [root@skynet hadoop-3.1.0]# jps 2145 DataNode 2965
NodeManager 3243 Jps 2028 NameNode 2829 ResourceManager 2334 SecondaryNameNode
    访问ResourceManager的 web服务,从集群节点管理矩阵中能看到存活结点数为1。



    确认yarn资管启动成功后,再次运行mapreduce程序


# 再次运行之前移除已生成的output,否则报错 $ bin/hdfs dfs -rm -r /output #
运行hadoop提供的mapreduce任务 $ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar grep /input output
'dfs[a-z.]+'

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信