上一篇博文,博主以自己的看法对大数据与 Hadoop 进行了一些简单的介绍,然后配置了系统环境。这篇博文,博主继续把配置伪分布式接下来的步骤与配置的意义写下来。
创建目录
为了规范,我们通常用普通用户进行对软件的安装与操作。
这里我们使用 root 用户创建两个目录用于存放安装包与安装软件目录并授权给我们使用的普通用户。
1 [[email protected] ~]# mkdir /opt/modules /opt/softwares 2 [[email protected] ~]# chown Tom:Tom/opt/modules//opt/softwares/
检查是否授权成功:
安装配置 JDK
Hadoop 以 Java 语言写就,因而需要在本地计算机安装 JDK。
安装主要是两步,解压与环境配置。
1. 安装前先检查本地是否存在 jdk
1 [[email protected]~]$ rpm -qa | grep -i java #检查本地是否已经安装jdk 2 [[email protected]~]$ rpm -e --nodeps jdkxxxxxxxxxxxxxxxxxxx #如果有就删除掉
2. 把 JDK 安装包解压指定安装目录
[[email protected] softwares]$ tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/modules/
3. 配置环境变量
[[email protected]~]$ sudo vi /etc/profile
编辑 profile 文件,在最后一行添加
# JAVA_HOME
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
配置完执行立即生效指令
1 [[email protected]~]$ source /etc/profile 2 [[email protected]~]$ java -version # 检查java 版本
* sudo 指令需要配置才能使用
[[email protected] ~]# visudo
编辑文件添加一行:Tom ALL=(root) NOPASSWD: ALL
使用 sudo 指令可以令普通用户执行单行指令时拥有 root 权限。
安装配置 Hadoop
上一篇博文对 Hadoop 进行了一些描述,下面博主再详细的对 Hadoop 进行一下描述。
Hadoop 的一些模块:
1. common:
一系列组建和接口,用于分布式文件系统和通用 I/O (序列化、JavaRPC 和持久化数据结构),为其他 Hadoop 模块提供基础设施。
2. HDFS(Hadoop Distribute File System):
运行于大型商用机集群,多台服务器组成,高可靠、高吞吐量的分布式文件系统。
3. MapReduce:
Map(映射:mapper)Reduce(归约:reduction)分布式数据处理模型和执行环境,运行于大型商用机集群;它是一个分布式的离线并行计算框架,只有相关任务启动以后才会有对应的线程产生。
4. YARN:
相当于 Hadoop 的操作系统,任务调度与资源管理;1.x 版本没有YARN。
Hadoop 生态圈:
博主有一篇博文上有简单的介绍:连接http://www.cnblogs.com/moyinyu/p/6872550.html
下面我们开始安装配置 Hadoop
1. 把 Hadoop 安装包解压到指定安装目录
[[email protected]~]$ tar -zxvf /opt/softwares/hadoop-2.5.0.tar.gz -C /opt/modules/
2. 环境配置(可选)
[[email protected]~]$ sudo vi /etc/profile # 与配置jdk环境方法类似
# HADOOP_HOME
export HADOOP_INSTALL=/opt/modules/hadoop-2.5.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置 HDFS:
1. edit hadoop-env.sh
[[email protected]~]$ cd /opt/modules/hadoop-2.5.0/etc/hadoop/ [[email protected] hadoop]$ sudo vi hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/opt/modules/jdk1.7.0_67
2. edit core-site.xml
1 <configuration> 2 <!--NameNode的访问URI,写主机名或ip地址,8020为默认端口,可改--> 3 <property> 4 <name>fs.defaultFS</name> 5 <value>hdfs://floyd.domain:8020</value> 6 </property> 7 <!--临时数据目录,用来存放数据,格式化时会自动生成--> 8 <property> 9 <name>hadoop.tmp.dir</name> 10 <value>/opt/modules/hadoop-2.5.0/data</value> 11 </property> 12 </configuration>
3. edit hdfs-site.xml
1 <configuration> 2 <!--Block的副本数,伪分布式要改为1--> 3 <property> 4 <name>dfs.replication</name> 5 <value>1</value> 6 </property> 7 </configuration>
4. namenode format
[[email protected] hadoop-2.5.0]$ bin/hdfs namenode -format
初次使用格式化 namenode 此时会自动生成 data 目录
5. start process
1 [[email protected] hadoop-2.5.0]$ sbin/hadoop-daemon.sh start namenode 2 [[email protected] hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode 3 [[email protected] hadoop-2.5.0]$ jps # Process status
6. Web 页面
在 HDFS 系统建立 MyBlogTest 文件夹并上传 a.txt 文件
1 [[email protected] hadoop-2.5.0]$ bin/hdfs dfs -mkdir /MyBlogTest 2 [[email protected] hadoop-2.5.0]$ vi a.txt 3 [[email protected] hadoop-2.5.0]$ bin/hdfs dfs -put a.txt /MyBlogTest
我们可以在网页输入主机名或者 ip 加端口号 50070 查看 HDFS 文件系统
eg:
配置 YARN
1. edit yarn-env.sh
[[email protected] hadoop]$ sudo vi yarn-env.sh
# some Java parameters
export JAVA_HOME=/opt/modules/jdk1.7.0_67
2. edit mapred-env.sh
[[email protected] hadoop]$ sudo vi mapred-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_67
3. edit slaves
[[email protected] hadoop]$ sudo vi slaves
# insert your hostname
floyd.domain
4. edit yarn-site.xml
1 <configuration> 2 <!--NodeManager上运行的辅助(auxiliary)服务,需配置成mapreduce_shuffle,才可运行MapReduce程序--> 3 <property> 4 <name>yarn.nodemanager.aux-services</name> 5 <value>mapreduce_shuffle</value> 6 </property> 7 <!--指定resourcemanager主机--> 8 <property> 9 <name>yarn.resourcemanager.hostname</name> 10 <value>floyd.domain</value> 11 </property> 12 <!--启用日志聚合功能--> 13 <property> 14 <name>yarn.log-aggregation-enable</name> 15 <value>true</value> 16 </property> 17 <!--日志保留时间,单位秒--> 18 <property> 19 <name>yarn.log-aggregation.retain-seconds</name> 20 <value>86400</value> 21 </property> 22 </configuration>
5. edit mapred-site.xml (mapred-site.xml.template 重命名:mapred-site.xml)
<configuration> <!--mapreduce是一种编程模型,运行在yarn平台上面--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!--JobHistory服务的IPC地址(IPC:Inter-ProcessCommunication进程间通信)--> <property> <name>mapreduce.jobhistory.address</name> <value>floyd.domain:10020</value> </property> <!--日志的web访问地址--> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>floyd.domain:19888</value> </property> </configuration>
6. start process
1 [[email protected] hadoop-2.5.0]$ sbin/yarn-daemon.sh start resourcemanager 2 [[email protected] hadoop-2.5.0]$ sbin/yarn-daemon.sh start datamanager
yarn的作业监控平台,显示yarn平台上运行job的所用资源(CPU、内存)等信息
伪分布式的配置到这里就结束了
下一篇博文,博主会详细的跟大家谈一下 NameNode、DataNode、ResourceManager、NodeManager 的工作过程,并跟大家谈谈关于 MapReduce 的工作原理。
写作时间:
20170517:Floyd