(详细)Hadoop配置实战-伪分布式

Posted OLAP面壁者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(详细)Hadoop配置实战-伪分布式相关的知识,希望对你有一定的参考价值。

Hadoop集群配置-伪分布式

一、Hadoop相关简介及下载地址

  • Hadoop下载地址

Hadoop-2.7.7

  • jdk下载地址

JDK

  • Hadoop环境配置参考文档

Hadoop文档

  • Hive下载地址

Hive-2.3.6

  • windows系统增加地址映射

    修改hosts文件属性为可写后添加地址映射
    C:\\Windows\\System32\\drivers\\etc\\hosts
    例:192.168.45.130 hadoop6
    
  • Hadoop 的三个基础应用模块:HDFS、MapReduce、YARN

HDFS集群:分布式文件系统,用来解决海量大文件的存储问题,由一个NameNode和多个DataNode组成

YARN集群:资源调度/管理系统,由一个ResourceManager和多个NodeManager组成

MapReduce:一套通用的用来解决海量大文件计算的编程模型API

  • Hadoop集群模式

伪分布式、分布式、高可用(HA)、联邦集群

  • 解压
tar -zxvf hadoop-2.7.7.tar.gz -C /root/install/
  • NameNode简介
NameNode服务管理了HDFS集群的命名空间和“inode table”

一个hdfs集群只有一个namenode(HA和联邦除外)

namenode管理两个关键表:
	文件和数据块序列之间 --关系表
	block(数据块) -> 机器列表(datanode)--映射表

二、配置步骤

1.配置环境变量

  • 目的:方便执行命令

vi /etc/profile

JAVA_HOME=  
HADOOP_HOME=
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/us
r/local/games:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
  • source /etc/profile 或 reboot 使之生效

vi /etc/hosts

  • 设置主机地址映射

ssh免密登入

  • 本机免密登入本机
# ssh localhost         --ssh本机
# exit                  --退出ssh
# cd ~/.shh             --进入.ssh目录
# ls -la                   --查看文件
# ssh-keygen -t rsa       --获取rsa密钥,有提示全部按回车即可
# cat ./id_rsa.pub >> ./authorized_keys      --将私钥钥加入到授权中
# ssh locallost       --无需登入密码则成功

2.配置集群相关参数

  • Hadoop相关配置文件的目录:hadoop-2.7.7/etc/hadoop/
  • 进入配置文件 按下Shift + g 可跳到文件末行
  • 在configuration中间配置参数

vi hadoop-env.sh

  • hadoop-env.sh 配置文件,添加jdk安装目录配置
export JAVA_HOME=/usr/local/jdk1.8.0_151 #你的jdk绝对路径

vi hdfs-site.xml

  • hdfs-site.xml 主要用来配置数据块的副本数,伪分布式中只有一个副本
<!--指定hdfs保存数据的副本数量-->
<property>
	<name>dfs.namenode.name.dir</name>
    <value>/root/install/hadoop-2.7.7/data/namenode</value>
    <description>namenode数据存放的地方</description>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/root/install/hadoop-2.7.7/data/datanode</value>
    <description>datanode数据存放的地方</description>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>数据保存在hdfs几份副本,默认值是3</description>
</property>

vi mapred-site.xml

  • 把mapred-site.xml.template 复制一份为 mapred-site.xml
    • cp mapred-site.xml.template mapred-site.xml
<!--告诉hadoop以后MR(Map/Reduce)运行在YARN上---->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

vi yarn-site.xml

<!--指定Yarn的老大(ResourceManager)的地址-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop5</value>
</property>
<!--NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

vi core-site.xml

  • core-site.xml中添加配置:指定tmp目录位置,hdfs默认节点和端口
<configuration>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/home/bigdata/data/hadoopdata</value>
		<description>Abase for other temporary directories.</description>
	</property>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://Hadoop101:9000</value>
	</property>
</configuration>

若是使用虚拟机,则修改IP为静态地址

1.点击Wmware的编辑,打开虚拟网络编辑器找到WMnet8
	1.1 点击NAT设置:
		网关IP:192.168.134.2
		
		
	1.2 ifconfig 查看IP,修改IP,修改IP参照自己 VMnet8的网段
		vi /etc/sysconfig/network-scripts/ifcfg-ens33
		TYPE="Ethernet"
		BOOTPROTO="static"
		IPADDR=?
		GATEWAY=?
		DNS1=?
		DNS2=8.8.8.8
		NETMASK=255.255.255.0
		DEFROUTE="yes"
		PEERDNS="yes"
		PEERROUTES="yes"
		IPV4_FAILURE_FATAL="no"
		IPV6INIT="yes"
		IPV6_AUTOCONF="yes"
		IPV6_DEFROUTE="yes"
		IPV6_PEERDNS="yes"
		IPV6_PEERROUTES="yes"
		IPV6_FAILURE_FATAL="no"
		IPV6_ADDR_GEN_MODE="stable-privacy"
		NAME="ens33"
		UUID="e869e05f-4fc4-4d35-a81d-fc2f35445d0c"
		DEVICE="ens33"
		ONBOOT="yes"
	
	1.3 DNS1就是网关地址
	1.4 重启网络服务 service network restart
	1.5 ifconfig,看看是否生效了
	1.6 在window ping一下
	1.7 可以ping通,就ok了。

Hadoop集群常用命令

  • HDFS文件系统格式化(配置完后只需执行一次)
    • hadoop namenode -format
  • 启动hadoop和停止hadoop
    start-dfs.sh #启动hdfs
    start-yarn.sh #启动yarn,就是启动mapreduce+yarn
    start-all.sh # start-dfs.sh + start-yarn.sh
    hdfs getconf -namenodes #获取namenode节点名称

官方HDFS命令大全

  • 常用HDFS命令
hdfs dfs -mkdir hdfs文件路径名 #创建一个目录
hdfs dfs -ls hdfs目录 #查看hdfs目录
hdfs dfs -put 本地文件路径 hdfs文件路径 #推送一个文件到hdfs
hdfs dfs -cat hdfs文件路径 [| head] #显示文件的头几行
hdfs dfs -get hdfs文件路径 #从hdfs获取一个文件到本地
hdfs dfs -rmdir hdfs文件路径
hdfs dfs -copyFromLocal 本地路径 hdfs://localhost+目的路径
hdfs dfs -copyToLocal hdfs文件路径 本地路径

总结

配置完后
#hadoop namenode -format 格式化,只需一次
#start-all.sh 启动集群
#jps 看到有以下进程则表示成功,若缺少进程,可查看相关日志排查问题。
NodeManager
ResourceManager
SecondaryNameNode
NameNode
DataNode

以上是关于(详细)Hadoop配置实战-伪分布式的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu下伪分布式安装Hadoop详细教程

Hadoop实战——Hadoop架构思想伪分布式无密登陆部署

hadoop2.7.3伪分布式环境搭建详细安装过程

Hadoop伪分布构建(保姆式教程)

阿里云服务器器上Centos7搭建伪分布式HADOOP详细教程

Hadoop全网最详细的伪分布式部署(HDFS)