Hadoop环境部署

来源:互联网 发布:php商品管理系统 编辑:程序博客网 时间:2024/05/16 13:04

前期准备:参考Linux环境配置文章

1、按照官方的文档进行配置

http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/SingleCluster.html
2、上传下载工具lrzsz
使用yum进行在线的安装:yum install lrzsz
命令:上传rz、下载sz
3、在试验环境下为了方便起见,可以为普通用户设置比较大的管理权限
ds ALL=(root)NOPASSWD:ALL
4、忠告:建议从始至终都是使用一个用户去操作环境
5、关闭Linux中的防火墙还有selinux
vi /etc/sysconfig/selinux
SELINUX=disabled-》禁用
Linux中的防火墙:iptables
-》网络层
-》代理层
$ sudo service iptables status
$ sudo service iptables stop
$ sudo chkconfig iptables off
6、查看centos系统自带的JDK是否已经安装,如果安装就要卸载
$ rpm -qa | grep java
$ sudo 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
7、安装自己的JDK
解压:$ tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/moduels/
配置环境变量:
vi /etc/profile
##JAVA_HOME
export JAVA_HOME=/opt/moduels/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
生效文件:
# source /etc/profile
查看是否配置成功:
$ java -version
8、配置Hadoop
-》解压:$ tar -zxf /opt/software/hadoop-2.5.0.tar.gz -C /opt/moduels/
-》清理工作:建议先将/opt/moduels/hadoop-2.5.0/share下的doc目录删除
->> /opt/moduels/hadoop-2.5.0/ 在该目录下 bin/hadoop 查看 hadoop的环境
-》在etc/hadoop/hadoop-env.sh文件修改指定Java的安装路径
-》另外的两个文件:mapred-env.sh和yarn-env.sh文件同样需要指定
export JAVA_HOME=/opt/moduels/jdk1.7.0_67
-》Hadoop的运行模式
Local (Standalone) Mode-》本地单机模式-》本地文件系统
Pseudo-Distributed Mode-》伪分布式模式-》HDFS文件系统
Fully-Distributed Mode-》完全分布式模式-》HDFS文件系统(实际生产环境使用的集群)
-》所有的参数用户可以自定义
-》如果参数用户没有定义,系统会使用默认的值
-》修改core-site.xml文件,指定默认的文件系统,访问入口
-》指定NameNode主节点所在的机器位置以及交互端口号
-》9000是Hadoop1.x系列使用的旧的端口,Hadoop2.x使用8020端口
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata-01.yushu.com:8020</value>
</property>
-》指定Hadoop系统生成文件的临时目录地址,自定义路径替换
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/moduels/hadoop-2.5.0/data/tmp</value>
</property>
-》修改hdfs-site.xml文件,指定副本数的个数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
-》修改slaves文件
-》添加datanode的所在机器位置主机名
bigdata-01.yushu.com
-》格式化namenode 在hadoop根目录执行下面命令
$ bin/hdfs namenode -format
-》注意,不要格式化多次
-》启动namenode和datanode
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
-》使用jps查看Java进程
-》通过浏览器访问HDFS的外部UI界面,加上外部交互端口号:50070
http://bigdata-01.yushu.com:50070
-》使用IP地址加端口同样也可以访问
-》出现无法访问的情况,可能是防火墙导致的,也可能是selinux导致的
-》还有可能是本地windows的hosts文件网络映射没有设置
-》测试HDFS环境
-》HDFS和Linux文件系统类似,有用户主目录的概念
-》创建:$ bin/hdfs dfs -mkdir -p /user/ds/bf
-》上传:$ bin/hdfs dfs -put etc/hadoop/core-site.xml /user/ds/bf
-》读取:$ bin/hdfs dfs -text /user/ds/ds/core-site.xml
-》下载:$ bin/hdfs dfs -get /user/ds/ds/core-site.xml /home/ds/get-site.xml
=============================HDFS部分====================================
=============================yarn&MapReduce==============================
-》修改mapred-site.xml.template,mapred-site.xml去掉后缀
-》template代表默认不生效该文件
-》mapred-site.xml添加 代表MapReduce运行yarn在之上
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
-》yarn-site.xml 添加一个MapReduce运行的服务
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
-》【可配置项】指定resourcemanager主节点的机器位置,可配可不配
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata-01.yushu.com</value>
</property>
-》启动:
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager 
-》外部访问UI界面,加上外部交互端口号8088
bigdata-01.yushu.com:8088
-》运行wordconut单词统计程序测试环境
-》在HDFS上创建对应的路径
-》$ bin/hdfs dfs -mkdir -p mapreduce/input
bin/hdfs dfs -put /opt/datas/wc.input /user/ds/mapreduce/input   把要统计的文本放到输入路径
-》在MapReduce中output的输出路径是不需要提前存在的
-》在yarn运行job时候都必须要打jar包
-》执行Wordcount程序:
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/beifeng/mapreduce/input /user/ds/mapreduce/output
-》part-r-00000其中r代表reduce的输出结果
-》查看结果集:$ bin/hdfs dfs -text /user/ds/mapreduce/output/p*

=============================搭建完成!==============================


Hadoop的配置文件
1、种类:
-》默认配置文件
-》每个模块对应一个配置文件:HDFS、MR、common、YARN
-》core-default.xml
-》hdfs-default.xml
-》yarn-default.xml
-》mapred-default.xml
-》保存在jar包中,hadoop-2.5.0\share\hadoop\对应模块中
-》用户自定义配置文件
-》core-site.xml
-》hdfs-site.xml
-》yarn-site.xml
-》mapred-site.xml
-》保存在etc/hadoop路径下
2、系统在一开始启动的时候就会去加载配置文件
-》包括了客户端在操作所有的命令的时候,都会去读取配置文件
-》比如:-ls 、 -mkdir等等
3、配置文件优先级
-》Hadoop的守护进程在启动的时候首先会去读取默认配置文件
-》再去读取自定义配置文件
-》优先级:自定义配置文件高于默认配置文件
-》自定义配置的属性会覆盖默认文件的属性
4、配置文件的分类
-》客户端
-》服务端
-》公共部分



Hadoop环境部署常见错误
1、在格式化namenode之后在自定义创建的tmp目录只会生成name的文件夹
2、name代表的就是namenode这块的信息
3、data代表的就是datanode这块的信息
4、tmp/dfs/name/current
5、指定fsimage文件的路径<name>dfs.namenode.name.dir</name>
-》在实际的工作中这个目录可以多配几个,保证元数据信息的安全
6、VERSION是一个Java属性的文件
namespaceID=1449791764
-》文件系统的唯一标识符,在格式化后生成的
clusterID=CID-dc0c2c65-03fe-4592-bb75-3ad9c99e7974
-》集群ID,每个集群都会有一个唯一的ID
cTime=0
-》表示NameNode创建的时间,之后如果更新了会更新时间戳
storageType=NAME_NODE
blockpoolID=BP-707742197-192.168.189.130-1492844537644
layoutVersion=-57
7、【问题一】集群ID不一致
namenode的ID
clusterID=CID-dc0c2c65-03fe-4592-bb75-3ad9c99e7974
datanode的ID
clusterID=CID-dc0c2c65-03fe-4592-bb75-3ad9c99e7974
-》原因:大部分情况下是由于多次格式化namenode导致
-》解决方法:
1、最直接的方法就是删除tmp目录下的所有子目录和文件,然后重新格式化
2、将集群ID修改为一致的
8、【问题二】进程启动之后消失了
-》首先去看logs下的log日志
-》哪个进程出错就去看哪个进程对应的log文件
-》注意查看日志的时候需要查看最新的时间点的日志信息
-》或者删除原来logs文件夹下的旧的日志,再重新启动进程生成最新的日志文件
9、【问题三】pid进程号文件错误
-》多用户混用造成pid文件冲突
-》解决方法:
-》删除/tmp目录下的所有.pid文件
-》使用一个用户去操作环境,生成新的pid文件
10、【问题四】主机名
-》主机名不能有下划线,有的话直接报错
11、【问题五】配置细节问题
-》检查配置文件,IP、主机名、映射等等是否配置正确
12、【问题五】权限问题
-》一定要注意所有的目录的所有者和所属组都是统一的一个用户
-》如果权限用户不统一会导致很多的错误
13、【问题六】端口号被占用,地址没有绑定上
-》使用netstat -ltun命令查看端口信息,是否被占用等情况
14、【问题七】HDFS的安全模式
-》有些时候的非正常的操作或者跑任务也会造成HDFS进入安全模式



原创粉丝点击