hadoop安装到集群之配置修改

hadoop的配置

jdk下载地址
hadoop下载地址

检查是否拥有jdk

  1. 检查Java版本
java -version
  1. 从主机往虚拟机传送文件
yum -y install lrzsz		#下载插件

 rz						#打开文件传输的图形可视化界面,把要传的文件拖进去
  1. 创建一个文件夹放jdk hadoop
解压
tar -xvxf jdk-8u251-linux-x64.tar.gz
  1. 修改配置
[root@hadoop02 etc]
vim profile

#java environmenti
export JAVA_HOME=/softjava/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  1. 检查
source /etc/profile	  #让其生效

[root@hadoop02 etc]
java -version

java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
  1. 查看jdk路径
[root@hadoop02 /]
which java

hadoop的安装

  1. 解压hadoop安装包
  2. 将hadoop添加到环境
[root@hadoop02 /]
vim etc/profile

export HADOOP_HOME=/softjava/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  1. 使其生效并且检查
source/etc/profile    使文件生效

[root@hadoop02 hadoop-2.7.1]# hadoop version
Hadoop 2.7.1

reboot   重启
  1. hadoop目录
[root@hadoop02 hadoop-2.7.1]# ll
总用量 68
drwxr-xrwx. 2 10021 10021  4096 6月  29 2015 bin
-rw-r--r--. 1 root  root      0 9月  17 23:27 core-site.xml
drwxr-xrwx. 3 10021 10021  4096 9月  18 19:40 etc
drwxr-xrwx. 2 10021 10021  4096 6月  29 2015 include
drwxr-xr-x. 2 root  root   4096 9月  12 00:49 input
drwxr-xrwx. 3 10021 10021  4096 6月  29 2015 lib
drwxr-xrwx. 2 10021 10021  4096 6月  29 2015 libexec
-rw-rw-rw-. 1 10021 10021 15429 6月  29 2015 LICENSE.txt
drwxr-xr-x. 3 root  root   4096 9月  18 18:01 logs
-rw-rw-rw-. 1 10021 10021   101 6月  29 2015 NOTICE.txt
-rw-rw-rw-. 1 10021 10021  1366 6月  29 2015 README.txt
drwxr-xrwx. 2 10021 10021  4096 6月  29 2015 sbin
drwxr-xrwx. 4 10021 10021  4096 6月  29 2015 share
drwxr-xr-x. 4 root  root   4096 9月  18 17:33 tmp
drwxr-xr-x. 2 root  root   4096 9月  15 17:59 wcinput

(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

hadoo配置文件

1. 配置hadoop-env.sh

[root@hadoop02 hadoop-2.7.1]# vim etc/hadoop/hadoop-env.sh

export JAVA_HOME=/softjava/jdk1.8
export HADOOP_CONF_DIR=/softjava/hadoop-2.7.1/etc/hadoop

2. 配置core-site.xml

[root@hadoop02 hadoop-2.7.1]# vim etc/hadoop/core-site.xml 

<!--指定HDFS中NameNode的地址-->
   <property>
               <name>fs.defaultFS</name>y
               <value>hdfs://hadoop02:9000</value>
        </property>
        <!--指定Hadoop运行时产生文件的存储目录 datanode-->
        <property>
               <name>hadoop.tmp.dir</name>
               <value>/softjava/hadoop-2.7.1/tmp</value>
        </property>

3. 配置hdfs-site.xml

vim etc/hadoop/hdfs-site.xml

<configuration>
       <property>
             <name>dfs.replication</name>
             <value>3</value>
<!--副本数-->
       </property>
       <property>
                    <name>dfs.namenode.http.address</name>
                   <value>slave1:50070</value>
        </property>
<!--指定Hadoop辅助名称节点主机配置-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop04:50090</value>
</property>

4. 配置yarn-env.sh

vim etc/hadoop/yarn-env.sh

# some Java parameters
export JAVA_HOME=/softjava/jdk1.8

5. 配置yarn-site.xml

vim etc/hadoop/yarn-site.xml

<!--指定YARN的ResourceManager的地址,单节点启动value为本机主机名,此处为集群-->
 <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop03</value>
       </property>
       <!--Reducer获取数据的方式-->
       <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</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>

6. 配置mapred-env.sh

vim etc/hadoop/mapred-env.sh

export JAVA_HOME=/softjava/jdk1.8

7.配置mapred-site.xml

vim etc/hadoop/mapred-site.xml

<property>
         <name>mapreduce.framework.name</name>
        <value>yarn</value>

</property>
<!--历史服务器端地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<!--历史服务器web端地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>

完全分布式启动

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

scp(securce copy) 安全拷贝

scp可以实现服务器之间的数据拷贝
在这里插入图片描述

[root@hadoop01 ~]# 
scp -r wuhan root@hadoop02:/wh

注意
如果出现 ssh: Could not resolve hostname hadoop02: Temporary failure in name resolution lost connection
查看 etc/hosts 中的主机名与ip是否一致

从Hadoop02把数据推到04
[root@hadoop02 etc]# scp -r hosts root@hadoop04:/etc/hosts


从hadoop03把02的数据拿过来
[root@hadoop03 etc]# scp -r root@hadoop02:/etc/hosts  ./


乾坤大挪移:在hadoop03中把02的东西弄到01
[root@hadoop03 etc]# scp -r root@hadoop02:/etc/hosts root@hadoop01:/etc/hosts

rsync 远程同步工具

Rsync 主要用于备份和镜像,具有速度快,避免复制相同内容和支持符号链接的优点

Rsync与scp的区别:用rsync做文件复制要比scp快,rsync只对差异文件做更新。Scp是吧所有的都复制过去

在这里插入图片描述
在这里插入图片描述

[root@hadoop02 /]# rsync -rvl wh root@hadoop03:/wh

xsync集群分发脚本

需求:循环复制文件到所有节点的相同目录下 (如果某一个文件修改了,其他机器中的这个文件也需要修改,那么do it)
在这里插入图片描述

创建:在用户目录下创建bin目录在bin目录中创建xsync然后

#!/bin/bash
#1获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0));then
echonoargs;
exit;
fi
#2获取文件名称
p1=$1
fname=`basename$p1`
echofname=$fname
#3获取上级目录到绝对路径
pdir=`cd-P$(dirname$p1);pwd`
echopdir=$pdir
#4获取当前用户名称
user=`whoami`
#5循环
for((host=103;host<105;host++));do
echo-------------------hadoop$host--------------
rsync-rvl$pdir/$fname$user@hadoop$host:$pdir
done


(b)修改脚本xsync具有执行权限
chmod 777 xsync
(c)调用脚本形式:xsync文件名称
xsync /home/atguigu/bin

集群部署规划及单点启动

规划

在这里插入图片描述

单点启动
  1. 格式化namenode 02, 03 , 04
    注意:为什么不能一直格式化namenode
    格式化namenode会产生新的clusterID导致datanode的clusterID与namenode的不一样
    因为datanode的clusterID是他第一次启动的时候从namenode获取的,所以会导致集群找不到数据,所以格式化namenode是一定要先删除data的数据和logs的日志,然后再格式化namenode
[root@hadoop04 hadoop-2.7.1]# rm -rf tmp/dfs/data/ logs/
[root@hadoop02 hadoop-2.7.1]# bin/hdfs namenode -format


[root@hadoop01 hadoop-2.7.1]# sbin/hadoop-daemon.sh start namenode
[root@hadoop01 hadoop-2.7.1]# sbin/hadoop-daemon.sh start datanode
[root@hadoop01 hadoop-2.7.1]# sbin/yarn-daemon.sh start resourcemanager
[root@hadoop01 hadoop-2.7.1]# sbin/yarn-daemon.sh start nodemanager


02
[root@hadoop02 hadoop-2.7.1]# jps
4672 NameNode
4796 Jps
4764 DataNode
03
[root@hadoop03 hadoop-2.7.1]# jps
4434 DataNode
4466 Jps
04
[root@hadoop04 hadoop-2.7.1]# jps
4949 DataNode        4985 Jps
集群ssh配置

在这里插入图片描述

生成公钥和密钥
[root@hadoop02 ~]# cd .ssh/
[root@hadoop02 .ssh]# ssh-keygen -t rsa

将公钥拷贝到要免密的服务器上 ,第一次需要输密码
[root@hadoop02 .ssh]# ssh-copy-id hadoop02     自己也拷贝一下
[root@hadoop02 .ssh]# ssh-copy-id hadoop03
[root@hadoop02 .ssh]# ssh-copy-id hadoop04

在hadoop03上再来一遍,因为03上的resourcemanager需要操控namenode

在这里插入图片描述

集群群起
格式化namenode
[root@hadoop02 hadoop-2.7.1]# rm -rf tmp/ logs/
[root@hadoop02 hadoop-2.7.1]# bin/hdfs namenode -format

启动hdfs
[root@hadoop02 hadoop-2.7.1]# sbin/start-dfs.sh        

如果datanode没有启动或者启动后关闭那么大概率是clusterID的错误
https://blog.csdn.net/u014695188/article/details/54913361?biz_id=102&utm_term=sbinstart-dfs.sh%20%20%20datanode%E5%90%AF%E5%8A%A8%E5%90%8E&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-54913361&spm=1018.2118.3001.4187


启动yarn
[root@hadoop03 hadoop-2.7.1]# sbin/start-yarn.sh
在hadoop03中启动
因为你的resourcemanager在03
集群文件路径
上传文件命令
bin/hdfs dfs -put 上传文件路径  传到集群中路径
Pwd 查看路径

上传集群文件在系统中的位置

/softjava/hadoop-2.7.1/tmp/dfs/data/current/BP-796766913-192.168.121.132-1600421127808/current/finalized/subdir0/subdir0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值