暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CentOS中Hadoop之HDFS的安装和配置

Java技术学习笔记 2020-08-03
766

        Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据,Hadoop2.0由三部分组成,分别是HDFS(分布式文件系统)、MapReduce(海量数据的计算系统)、Yarn(集群资源管理框架)

HDFS 包括NameNode、DataNode、SecondaryNameNode
NameNode:1、维护 管理文件系统的名字空间(元数据信息)
2、负责确定指定的文件块到具体的Datanode结点的映射关系。
3、维护管理 DataNode上报的心跳信息
DataNode:1、负责工作,进行读写数据
2、周期向NameNode汇报
3、负责管理用户的文件数据块(一个大的数据拆分成多个小的数据块)
SecondaryNameNode:负责辅助NameNode管理工作

Yarn 包括 ResourceManager、NodeManager
ResourceManager:1、拥有系统所有资源分配的决定权
2、负责集群中所有应用程序的资源分配,拥有集群资源主要、全局视图
NodeManager:1、负责与ResourceManager通信
2、负责启动和管理应用程序的container的生命周期,监控它们的资源使用情况(cpu和内存)
3、跟踪节点的监控状态,管理日志等。并报告给RM

1.HDFS的安装

# 下载
wget https://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.16.2.tar.gz
tar -zxvf hadoop-2.6.0-cdh5.16.2.tar.gz
mv hadoop-2.10.0 /usr/local/
mv hadoop-2.10.0 hadoop

下载native

# 下载位置
http://dl.bintray.com/sequenceiq/sequenceiq-bin/
# 存放位置
/usr/local/hadoop/lib/native
tar -xf hadoop-native-64-2.7.0.tar

环境变量配置

vi /etc/profile
# 增加内容
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
# 在path后面增加
:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
# 刷新生效
source /etc/profile

免密登录配置

ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

1.2.修改HDFS配置文件

hadoop-env.sh

# jdk的环境配置
export JAVA_HOME=/usr/local/jdk8

core-site.xml

# 用于定义系统级别的参数,如HDFS  URL、Hadoop的临时目录
<configuration>
<property>
<!--指定 NameNode的 hdfs 协议文件系统的通信地址-->
<name>fs.defaultFS</name>
<value>hdfs://hadoop-master:8020</value>
</property>
<property>
<!--指定 hadoop 存储临时文件的目录-->
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<!--流文件的缓冲区大小-->
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>

hdfs-site.xml

# 如名称节点和数据节点的存放位置、文件副本的个数、文件读取权限等
<configuration>
<property>
<!--指定dataNode存储block的副本数量,默认值是3个,该值应该不大于4-->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>


# 后期补其他参数。。。

slaves

hadoop-master

1.3.启动(/usr/local/hadoop/bin)

# 格式化
./hdfs namenode -format
# 启动
./start-dfs.sh
# 检查
jps


# 访问
http://192.168.225.133:50079/
9137 DataNode
9026 NameNode
9390 SecondaryNameNode

2.Hadoop(YARN)环境配置

mapred-site.xml

# Mapreduce参数
# 包括JobHistory Server和应用程序参数两部分,
# 如reduce任务的默认个数、任务所能够使用内存的默认上下限等
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

yarn-site.xml

# 集群资源管理系统参数
# 配置 ResourceManager,NodeManager 的通信端口,web监控端口等
<configuration>
<property>
<!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

启动(/usr/local/hadoop/bin)

# 启动yarn
./start-yarn.sh
# 验证
jps
9137 DataNode
9026 NameNode
12294 NodeManager
12185 ResourceManager
9390 SecondaryNameNode


配置文件简介补充

core-site.xml

参数名默认值参数解释
fs.defaultFShdfs://文件系统主机和端口
io.file.buffer.size4096流文件的缓冲区大小
hadoop.tmp.dir/tmp/hadoop-${user.name}临时文件夹

hdfs-site.xml

参数名默认值参数解释
dfs.namenode.http-address0.0.0.0:50070定义NameNode对应的地址和端口
dfs.namenode.secondary.http-address0.0.0.0:50090定义SecondaryNameNode对应的HTTP服务器地址和端口
dfs.namenode.name.dirfile://${hadoop.tmp.dir}/dfs/name定义DFS的名称节点在本地文件系统的位置
dfs.datanode.data.dirfile://${hadoop.tmp.dir}/dfs/data定义DFS数据节点存储数据块时存储在本地文件系统的位置
dfs.replication3缺省的块复制数量
dfs.webhdfs.enabledtrue是否通过http协议读取hdfs文件,如果选是,则集群安全性较差
dfs.namenode.handler.count100
RPC服务器的监听client线程数,如果dfs.namenode.servicerpc-address属性没有配置,则线程会监听所有节点的请求。
dfs.permissions.enabledfalse
当为true时,则允许HDFS的检测,当为false时,则关闭HDFS的检测,但不影响其它HDFS的其它功能。
dfs.permissionsfalse

mapred-site.xml

参数名默认值参数解释
mapreduce.framework.nameyarn取值local、classic或yarn其中之一,如果不是yarn,则不会使用YARN集群来实现资源的分配
mapreduce.jobhistory.address0.0.0.0:10020定义历史服务器的地址和端口,通过历史服务器查看已经运行完的Mapreduce作业记
mapreduce.jobhistory.webapp.address0.0.0.0:19888定义历史服务器web应用访问的地址和端口

yarn-site.xml

参数名默认值参数解释
yarn.resourcemanager.address0.0.0.0:8032ResourceManager 提供给客户端访问的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等
yarn.resourcemanager.scheduler.address0.0.0.0:8030ResourceManager提供给ApplicationMaster的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等
yarn.resourcemanager.resource-tracker.address0.0.0.0:8031ResourceManager 提供给NodeManager的地址。NodeManager通过该地址向RM汇报心跳,领取任务等
yarn.resourcemanager.admin.address0.0.0.0:8033ResourceManager 提供给管理员的访问地址。管理员通过该地址向RM发送管理命令等。
yarn.resourcemanager.webapp.address0.0.0.0:8088ResourceManager对web 服务提供地址。用户可通过该地址在浏览器中查看集群各类信息
yarn.nodemanager.aux-services
通过该配置项,用户可以自定义一些服务,例如Map-Reduce的shuffle功能就是采用这种方式实现的,这样就可以在NodeManager上扩展自己的服务







文章转载自Java技术学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论