hadoop搭建伪分布式集群(下)

hadoop搭建伪分布式集群 下(centos7+hadoop-3.1.0/2.7.7)

第一部分请参考hadoop搭建伪分布式集群 上

第二部分 Hadoop正式安装

1.安装Hadoop
2.修改hadoop的5个配置文件
3.解决互信问题

1.安装hadoop
直接去官网hadoop下载
建议下载最新的hadoop3.*版本,具体更新特性我也不太清楚,hadoop2.*也可以,1.*就不要考虑了。
在这里插入图片描述
进入/usr/local/ 目录将压缩文件解压到目录下,重命名为hadoop
在这里插入图片描述
同样我们也需要为hadoop配置环境变量
命令: vim /etc/profile ,然后添加如下几行,sourece profile生效
(忽略最后两行hive配置)
在这里插入图片描述
然后命令 hadoop version来测试配置
在这里插入图片描述
2.修改hadoop的5个配置文件。非常重要。
现在先看一下hadooped目录。我们可以看到,hadoop下一共有7个目录,bin和sbin是可执行文件的目录,etc是放配置文件的目录,include、lib和libexec均是放一些类库的,share是放一些共享类库和jar包的。

首先,进入cd /usr/local/hadoop/etc/hadoop目录,这5个配置文件均在此目录中。

第一个:hadoop-env.sh

[root@hadoop hadoop]# vi hadoop-env.sh #添加如下一行变量
#hadoop-3.1.0是第54行,hadoop-2.7.7是第25行
#可以使用 :set number来显示行数
export JAVA_HOME=/usr/java

第二个:core-site.xml(HADOOP-HDFS系统内核文件)

[root@hadoop hadoop]# vi core-site.xml #添加如下几行
<configuration>
  <!--指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址-->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop:9000</value>   
  </property>
  <!--指定HADOOP运行时产生文件的存储目录-->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/var/hadoop/tmp</value>   
  </property>    
</configuration>

hadoop.tmp.dir的默认值是/tmp/hadoop-${user.name}。/tmp/是Linux系统的临时目录,如果我们不重新指定的话,默认Hadoop工作目录在Linux的临时目录,一旦Linux系统重启,所有文件将会清空,包括元数据等信息都丢失了,需要重新进行格式化,非常麻烦。

第三个:hdfs-site.xml

[root@hadoop hadoop]# vi hdfs-site.xml #添加如下几行
<configuration>
  <!--指定HDFS副本的数量-->
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <!--设置默认端口,这段是我后来加的,如果不加上会导致启动hadoop-3.1.0后无法访问50070端口查看HDFS管理界面,hadoop-2.7.7可以不加-->
  <property> 
    <name>dfs.http.address</name> 
    <value>192.168.42.134:50070</value> 
  </property>
</configuration>

dfs.replication的默认值是3,由于HDFS的副本数不能大于DataNode数,而我们此时安装的hadoop中只有一个DataNode,所以将dfs.replication值改为1。
(192.168.42.134改为自己的ip地址)
dfs.namenode.http-address在hadoop-3.1.0版本上的默认值是 0.0.0.0:9870 ,在hadoop-2.7.7版本上的默认值是0.0.0.0:50070,所以不同版本可以通过不同端口访问NameNode。

第四个:mapred-site.xml

[root@hadoop hadoop]# mv mapred-site.xml.templete mapred-site.xml #重命名,hadoop-3.1.0系统中就是mapred-site.xml不需要改名,hadoop-2.7.7需要改名
[root@hadoop hadoop]# vi mapred-site.xml #添加如下几行,指定hadoop运行在哪种计算框架上,这里指定yarn框架。
<!--指定mr运行在yarn上-->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

第五个:yarn-site.xml

[root@hadoop hadoop]# vi yarn-site.xml #添加如下几行
<configuration>
    <!-- 指定YARN的老大(ResourceManager)的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop</value>
    </property>
    <!-- 指定reducer获取数据的方式-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

3.解决互信问题
主要是目的是当hadoop集群有多台机器时,我们可以在任意一台机器上输入start-all.sh命令启动集群中的所有节点,方便快捷。如果不配置免密码登录的话,那么我们需要一台一台机器输入密码登录后分别启动各个节点,非常麻烦。
方式:配置ssh,生成密钥,使ssh可以免密码连接localhost

[root@hadoop rpms_yum]# cd /root
[root@hadoop ~]# ssh-keygen -t rsa #生成ssh密钥对
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #直接回车
Enter passphrase (empty for no passphrase): #直接回车
Enter same passphrase again: #直接回车
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:9NevFFklAS5HaUGJtVrfAlbYk82bStTwPvHIWY7as38 root@hadoop
The key's randomart image is:
+---[RSA 2048]----+
|           +*O*=.|
|          .o=+=o+|
|        . ..O  +=|
|       . . * *.%o|
|        S o o %o+|
|           . + +.|
|            . + .|
|             . +E|
|              o.o|
+----[SHA256]-----+
[root@hadoop ~]# cd .ssh/
[root@hadoop .ssh]# ls #id_rsa为私钥,id_rsa.pub为公钥
id_rsa  id_rsa.pub  known_hosts
[root@hadoop .ssh]# cp id_rsa.pub authorized_keys #使主机之间可以免密码登录
[root@hadoop .ssh]# ssh hadoop date #查看(不需要输入密码,直接输出结果,说明免密成功)

在这里插入图片描述
第三部分 启动Hadoop集群

1.首先格式化NameNode

[root@hadoop ~]# hdfs namenode -format #中间没有报错并且最后显示如下信息表示格式化成功
...
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop/192.168.42.134
************************************************************/

注意:如果格式化NameNode之后运行过hadoop,然后又想再格式化一次NameNode,那么需要先删除第一次运行Hadoop后产生的VERSION文件,否则会出错。原因是datanode和namenode的clusterID不一致。
在这里插入图片描述
在这里插入图片描述
格式化完成后,系统会在dfs.data.dir目录下生成元数据信息。

2.输入 start-all.sh 启动
jps 查看#显示以下几个进程说明启动成功
在这里插入图片描述
3.关闭hadoop集群

[root@hadoop hadoop]# stop-all.sh

5.登录HDFS管理界面(NameNode):http://ip:50070
在这里插入图片描述
在这里可以可视化查看hdfs文件系统的目录结构

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值