学习笔记_Hadoop伪分布式搭建
程序员文章站
2022-07-14 15:18:17
...
伪分布式即为所有节点均配置在一台机器上,后期添加其余框架配置时建议现在伪分布式进行测试,成功后再移植到完全分布式
环境准备
1.网卡IP设置为静态(NAT模式)
- 修改网卡配置
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
2.重启网络服务
# service network restart
3.修改主机名
这里我使用主机名为master
# vi /etc/sysconfig/network
4.关闭防火墙
- 关闭防火墙
# service iptables stop
- 设置成开机不启动
# chkconfig iptables off
- 关闭selinux
# vi /etc/sysconfig/selinux
5.添加主机名映射
- Linux上添加主机名映射
# vi /etc/hosts
- Windows本地添加主机名映射
路径:C:\Windows\System32\drivers\etc\hosts
6.创建普通用户
后期操作几乎都用普通用户进行,这里我使用普通用户名为hadoop(若存在普通用户可不用再次创建)
# useradd hadoop
# echo 123456 | passwd --stdin hadoop
7.安装JDK
- 查看自带jdk
# rpm -qa | grep java
- 卸载自带jdk
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 tzdata-java-2012j-1.el6.noarch java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
- 新建文件夹并修改权限
# chown -R hadoop:hadoop /opt
$ mkdir -p /opt/modules
$ mkdir -p /opt/softwares
- 上传jdk压缩包
这里使用filezilla上传jdk-7u79-linux-x64.tar.gz压缩包到/opt/softwares/下
- 解压jdk
$ cd /opt/softwares/
$ tar -zxf jdk-7u79-linux-x64.tar.gz -C /opt/modules/
- 修改环境变量
# vi /etc/profile
- 修改配置文件,加入以下部分
##JAVA_HOME
JAVA_HOME=/opt/modules/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
- 检查是否配置成功
# source /etc/profile
# java -version
若出现信息则配置成功
伪分布式搭建
1.上传压缩包
这里使用filezilla上传hadoop-2.5.0-cdh5.3.6.tar.gz压缩包到/opt/softwares/下
2.解压压缩包
$ tar -zxf hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/modules/
3.配置HDFS
这里使用Notepad++连接主机来进行配置文件修改,配置文件路径为/opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop/
- hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_79
- core-site.xml
<!--HDFS集群访问入口地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!--声明存放数据的目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0-cdh5.3.6/data</value>
</property>
- hdfs-site.xml
<!--Block的副本数,数据块的副本数不能大于datanode的节点数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
- slaves
声明哪些服务器是datanode,每行一个主机名
master
- 格式化文件系统
$ bin/hdfs namenode -format
- 启动HDFS
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
- 通过浏览器登录web控制台,显示以下界面则为搭建成功
http://master:50070/
多次格式化导致元数据不统一解决方案
- 删除hadoop下的data文件夹后,重新格式化
$ rm -rf data
$ bin/hdfs namenode -format
测试
- 创建测试文件
$ cd /opt
$ vi test.txt
- 在hdfs上创建文件夹
$ cd /opt/modules/hadoop-2.5.0-cdh5.3.6/
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ bin/hdfs dfs -mkdir /input
- 上传文件
$ bin/hdfs dfs -put /opt/test.txt /input/
4.配置YARN
- yarn-env.sh和mapred-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_79
- yarn-site.xml
<!-- NodeManager获取数据的方式是shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
- mapred-site.xml
如果只有mapred-site.xml.template,就重命名为mapred-site.xml
<!--mapreduce计算模型运行在yarn平台-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 启动YARN
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
-
通过浏览器登录web控制台
http://master:8088/cluster测试
利用官方自带的jar包,进行文件的单词统计,这里是用的测试文件为之前测试HDFS时上传的test.txt
需要注意最后的目录为存放结果的文件夹,必须是不存在的
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /input/test.txt /output/
任务执行时,在web控制台能查看任务执行情况
查看结果
$ bin/hdfs dfs -cat /output/*
5.配置日志服务器
- yarn-site.xml
<!--启用日志聚合功能-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--日志保存时间-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
- mapred-site.xml
<!--进程通信-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!--客户端访问入口-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
- 重启YARN
$ sbin/yarn-daemon.sh stop nodemanager
$ sbin/yarn-daemon.sh stop resourcemanager
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
- 启动历史服务器
$ sbin/mr-jobhistory-daemon.sh start historyserver
- 重新运行任务
注意,目标文件夹必须不存在,要修改目标文件夹
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /input/test.txt /output2/
- 查看日志
cat logs/mapred-hadoop-historyserver-master.log
可以看见刚刚任务运行成功的信息被保存到日志中
上一篇: 搭建hadoop伪分布式环境
下一篇: Hadoop学习(三)_伪分布式搭建