CentOS7搭建Hadoop分布式文件系统

CentOS7搭建Hadoop分布式文件系统

配置:
1.CentOS-7-x86_64-DVD-2009
2.hadoop3.1.4
3.java1.8.0_65

步骤

1.网络配置

  • 虚拟机选择桥接模式,在桥接模式下能联网
  • 配置hosts和hostname
  • 安装ssh,配置ssh免密登录各个节点
  • 配置java环境

2.hadoop文件配置

  • 配置hadoop-env.sh
  • 配置core-site.xml
  • 配置workers
  • 配置hdfs-site.xml
  • 配置mapred-site.xml
  • 配置yarn-site.xml

3.hadoop一条龙

  • hadoop格式化
  • hadoop启动
  • hadoop程序运行

**

1.网络配置

1.配置hosts和hostname

为每一个虚拟机配置hostname
我有3个虚拟机分别命名为

Master
Slaver1
Slaver2

gedit /etc/hostname

直接在里面写名字就可以了

是在这里插入图片描述

配置hosts
每一个虚拟机都要配置

gedit /etc/hosts

在阿达插入图片描述

ssh安装配置
1.ssh安装
2.ssh免密码登录

先在Master节点里运行ssh生成公钥,如果之前生成过了需要删除之前生成的公钥

cd ~/.ssh              # 如果没有该目录,先执行一次ssh localhost
rm ./id_rsa*           # 删除之前生成的公匙(如果已经存在)
ssh-keygen -t rsa       # 执行该命令后,遇到提示信息,一直按回车就可以

把公钥放到~/.ssh/authorized_keys

cat ./id_rsa.pub >> ./authorized_keys

ssh localhost测试能否无密码登录在这里插入图片描述
通过scp命令发送文件到各个节点,有多少个发多少次

scp ~/.ssh/id_rsa.pub hadoop@Slaver1:/home/hadoop/

在Slaver1节点里把公钥放到authorized_keys

mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在,则忽略本命令
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub    # 用完以后就可以删掉

测试在Master节点连接Slaver1,到此如果Master能远程无密码连接到各个节点就完成了

ssh Slaver1

2.hadoop文件配置
hadoop安装

tar -zxvf (hadoop.tar.gz文件路径) -C /usr/local
chown -R hadoop /usr/local/(hadoop文件) #在整个搭建hadoop分布式的时候一定要注意给用户操作的权限,或者直接用root

配置好hadoop6个文件,过程是在Master节点配置好,然后压缩发送到各个节点再解压出来(配置文件都在 hadoop文件下的etc/hadoop)

workers

Master
Slaver1
Slaver2

core-site.xml

<configuration> 
<property> 
<name>fs.defaultFS</name> 
<value>hdfs://Master:8020</value> 
</property> 
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/export/data/hadoop-3.1.4</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/export/data/hadoop-3.1.4</value>
</property>
<property> 
<name>hadoop.http.staticuser.user</name>
<value>hadoop</value> 
</property>
</configuration>

hdfs-site.xml

<configuration>
<property> 
<name>dfs.namenode.secondary.http-address</name> 
<value>Slaver1:9868</value> </property>
</configuration>

mapred-site.xml

<configuration> 
<property> 
<name>mapreduce.framework.name</name>
<value>yarn</value> 
</property> 
<!-- 历史服务器端地址 --> 
<property> 
<name>mapreduce.jobhistory.address</name> <value>Master:10020</value> 
</property> 
<!-- 历史服务器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>Master:19888</value> 
</property> 
<property> 
<name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> 
</property> 
<property> 
<name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> 
</property> 
<property> 
<name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> 
</property> 
</configuration>

yarn-site.xml

<configuration> 
<property> 
<name>yarn.resourcemanager.hostname</name> 
<value>Master</value> 
</property> 
<property> 
<name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> 
</property>
<!-- 是否将对容器实施物理内存限制 --> 
<property> 
<name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> 
</property> 
<!-- 是否将对容器实施虚拟内存限制。 --> 
<property> 
<name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> 
</property> 
<!-- 开启日志聚集 -->
 <property> 
 <name>yarn.log-aggregation-enable</name> 
 <value>true</value> 
 </property> 
 <!-- 保存的时间7天 --> 
 <property> 
 <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> 
 </property> 
 </configuration>

hadoop-env.sh

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_65 
#文件最后添加 
export HDFS_NAMENODE_USER=hadoop 
export HDFS_DATANODE_USER=hadoop 
export HDFS_SECONDARYNAMENODE_USER=hadoop 
export YARN_RESOURCEMANAGER_USER=hadoop 
export YARN_NODEMANAGER_USER=hadoop

3.hadoop一条龙
格式化hadoop
注意:hadoop格式化不再进行太多次,格式化太多次会导致hadoop主从混乱
解决办法:把格式化生成的所有文件删除
路径:查看core-site.xml里的dfs.namenode.name.dir参数

hdfs namenode -format

启动Hadoop

start-dfs.sh
start-yarn.sh

通过jps查看各项服务是否开启

节点服务
MasterNameNode 、DateNode 、RecourseManage 、NodeManage
Slaver1SecondaryNameNode、 DateNode 、NodeManage
Slaver2DateNode、 NodeManage

例子
词频统计
思路:
1.在本地文件系统创建一个txt文件
2.把文件上传到分布式系统里
3.调用WordCount程序对txt文件进行统计
4.查询输出文件

wc.txt文件

hello world
hello hadoop
hadoop is the best

上传wc.txt文件到hadoop

hdfs dfs -mkdir -p /user/hadoop/wc  #在hadoop创建路径/user/hadoop/wc
hdfs dfs -mkdir -p /user/hadoop/output #创建输出路径
hdfs dfs -put ./wc.txt /user/hadoop/wc  #把文件上次到hadoop

调用hadoop程序

cd (hadoop安装目录)/shared/hadoop/mapreduce  #进入到java程序目录
hadoop jar hadoop-mapreduce-examples-3.1.4.jar /user/hadoop/wc.txt /user/hadoop/output #调用函数

查看结果
在这里插入图片描述

hadoop搭建参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值