(详细)Hadoop配置实战-伪分布式
Posted OLAP面壁者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(详细)Hadoop配置实战-伪分布式相关的知识,希望对你有一定的参考价值。
Hadoop集群配置-伪分布式
一、Hadoop相关简介及下载地址
- Hadoop下载地址
- jdk下载地址
- Hadoop环境配置参考文档
- Hive下载地址
-
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 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配置实战-伪分布式的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop实战——Hadoop架构思想伪分布式无密登陆部署