05Hadoop的安装部署
搭建模式
本地模式:一般用于MapReduce程序的测试
1.默认读取的是本地的数据
2.没有hdfs文件系统
3.没有yarn进行资源的管理和任务的调度,只有task任务,直接运行在jvm中
伪分布式模式:单个节点的分布式,用于hadoop集群模式的测试,并且此时hdfs和yarn都运行在一台机器上
完全分布式模式:多台机器构建多个节点,一般是生产环境
1.一般hdfs中DataNode和yarn中的nodemanager在同一个节点
伪分布式搭建过程
0.搭建思路
1.将自己的搭建思路整理成电子文档,方便搭建过程中查错
1.配置Linux环境
1.网络配置
1.静态ip,子网掩码、网关-getway、dns(能够上网)
su root
显示网卡信息:ifconfig
编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0
2.配置主机名
hostname命令查看主机名
编辑vim /etc/sysconfig/network 永久性修改主机名
3.ip和主机名的映射
编辑vim /etc/hosts 配置ip和主机名映射
2.安全性配置(如果是完全分布式多台机器之间要实现交互,交互的时候要开放端口号,在学习的过程中可以通过关闭防火墙实现,在工作中可以通过开放指定的端口号实现)
1.配置防火墙开机关闭
检查防火墙状态:service iptables status
查看防火墙开机自启动状态:chkconfig iptables –list
关闭防火墙开机自启动:chkconfig iptables off
2.关闭selinux(在redhat中selinux安全机制)
编辑vim /etc/selinux/config ->修改SELINUX=disabled
3.配置visudo,为普通用户赋予一些管理员权限
以root用户运行,visudo
4.安装jdk
1.卸载自带的open jdk
查看rmp命令安装的和java相关的程序:rpm -qa | grep java
删除rmp命令安装的和java相关的程序:rpm -e –nodeps java
2.安装oracle的jdk(jdk1.7)
3.在全局环境变量中配置jdk
解压jdk-7u67-linux-x64.tar.gz文件
tar -zxvf jdk-7u67-linux-x64.tar.gz -C 解压到哪个文件下
编辑 vim /etc/profile
export JAVA_HOME=jdk解压目录path
export Path=$Path:$JAVA_HOME/bin
重新加载全局配置文件:source /etc/profile
运行java -version 出现jdk版本则配置成功
5.完全分布式还需要配置下面两项
1.ssh免秘钥登录(主节点向子节点发送命令实质上是主节点登录到了子节点机器上去敲指定的命令,主节点想要登录到子节点上需要将主节点的ssh公钥给子节点(即我想登录哪台机器就将我的公钥给哪台机器)
2.NTP时间同步,如果不配置可能造成集群启动失败。在集群中的多个DataNode需要和NameNode之间进行通信,DataNode会带着时间戳向NameNode汇报。由于NameNode有自身的时间戳,当DataNode携带自身的时间戳汇报时NameNode将自身的时间戳DataNode携带的时间戳相比较发现DataNode中的时间和自身的时间不同步此时NameNode就会觉得DataNode有问题然后就会拒绝DataNode的连接造成DataNode启动失败
2.配置hadoop环境:主要包含Hdfs和yarn的配置
1.注意:要切换成普通用户安装、启动集群,在工作中一般都会有一个专门的用户去管理某一个应用,只有这个用户能操作这个应用,要严格注意权限问题。在hadoop集群如果我们使用root用户去启动hadoop集群,hadoop下次就启动不起来,因为hadoop集群识别了非法的操作。由于hadoop对用户权限控制严格我们使用root用户启动集群后文件的权限就会被修改,下次使用普通用户启动集群时就启动不起来。
2.创建安装目录,注意文件权限:
1.tools:用于存放软件包
2.moudles:用于存放解压后的软件包
3.所有apache项目的下载地址:archive.apache.org/dist
3.安装hadoop,hadoop默认的jar包在share中,其他自己需要的jar可以放到lib中,把share目录下的doc目录删除,
0.参考官方文档:http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/SingleCluster.html
1.下载解压
tar -zxvf hadoop.tar.gz -C target_path
2.修改配置(hadoop配置文件在/opt/modules/hadoop-2.5.0/etc/hadoop目录下),在hadoop中default.xml中是一些默认的配置,当我们需要指定配置的时候将自己需要的配置信息放到-site.xml文件中,-site.xml的优先级大于default.xml文件
1.配置hadoop的jdk环境
1.hadoop-env.sh
export JAVA_HOME=jdk_path
2.mapred-env.sh
export JAVA_HOME=jdk_path
3.yarn-env.sh
export JAVA_HOME=jdk_path
2.配置core-site.xml,主要配置整个hadoop全局的参数
<property>
<name>fs.defaultFS</name>
<value>hdfs://主机名:8020</value>
</property>:指定hdfs的入口访问地址,通过此地址就可以访问hdfs文件系统
<property>
<name>hadoop.tmp.dir</name>
<value>目录,需要自己创建一个目录</value>
</property>:指定hdfs系统上的文件存储在linux上的什么地方
配置Hdfs
3.配置hdfs-site.xml,主要用户配置hdfs的一些参数
<property>
<name>dfs.replication(副本)</name>
<value>1</value>
</property>:指定块保存的副本个数
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>主机名:8020</value>
</property>:配置seconderyNameNode
4.slaves:配置所有从节点(datanode、nodemanager正常情况下两者在同一台机器上)的地址,一行一个
3.格式化hdfs文件系统
${HADOOP_HOME}/bin/hdfs namenode -format
4.启动服务
hdfs服务:
启动方式一:${HADOOP_HOME}/sbin/start-hdfs.sh(如果使用此命令启动namenode和datanode需要配置ssh免秘钥登录,因为此命令同时启动namenode和datanode)
启动方式二:单独启动namenode
sbin/hadoop-daemon.sh start namenode
单独启动datanode
sbin/hadoop-daemon.sh start datanode
5.hdfs网页端访问地址:http://ip:50070
配置yarn
6.配置yarn服务
1.修改配置文件
1.mapred-site.xml:对mapreduce的配置
1.<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>:配置让我们的mapreduce运行在yarn上,在本地模式中mapreduce可以自己运行
2.yarn-site.xml:yarn的一些配置
1.<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>:指定yarn运行使用mapreduce_shuffle方式
2.启动服务
启动方式一:
sbin/start-yarn.sh
启动方式二:sbin/yarn-daemon.sh start resourcemanager:启动成功会开通一个网页端口8088,该网页端口显示了我们要运行的任务信息
sbin/yarn-daemon.sh start nodemanager
7.yarn网页端访问地址:http://ip:8088
8.测试wordcount(统计每个单词出现的次数)
1.将数据文件(wc.txt)上传到hdfs上
bin/hdfs dfs -put source-path target-path
2.运行hadoop提供的wordcountjar包
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /wc.txt(hdfs上的文件,需要提前将wc.txt文件上传到hdfs上) /wc/out/(mapreduce结果的输出目录在输出前此目录不能存在,hdfs目录)
hadoop中常见配置项
1.hdfs访问权限管理:关闭访问权限检查
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
<property>
2.NameNode和DataNode本地存储目录
DataNode的本地存储目录:存储HDFS中文件的数据块
dfs.datanode.data.dir
工作中的配置:单独的存到挂载的磁盘
一般配置多个文件目录,分开存放文件数据
<name>dfs.datanode.data.dir</name>
<value>datas1,datas2,datas3</value>
NameNode的本地存储目录
dfs.namenode.name.dir:存储本地元数据和edits等
一般配置多个文件目录:复制多份存储为了保证元数据的安全性。
3.配置http访问用户默认的用户是dr.who,在core-site.xml中配置
hadoop.http.staticuser.user
4.注意:
1.当修改core-site.xml文件后需要重启整个集群
2.hdfs-site.xml只需要重启核hdfs相关的服务
3.yarn-site.xml、mapred-site.xml需要重启yarn相关的服务