大数据实战——hadoop集群实现免密登录和文件互传
Posted 北溟溟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据实战——hadoop集群实现免密登录和文件互传相关的知识,希望对你有一定的参考价值。
前言
本节内容我们主要介绍一下hadoop集群服务器之间实现免密登录和文件互传的功能,这样更加方便我们使用hadoop服务器实现服务器之间的相互登录和文件的相互传输。集群之间的访问不在需要授权就可以实现相互访问。
正文
- SSH免密登录
①分别在hadoop101、hadoop102、hadoop103的home目录下执行ssh命令
#生成ssh连接的公私钥 ssh-keygen -t rsa
②将hadoop101的免密公钥拷贝到自身服务器和hadoop02与hadoop103的服务器上,实现hadoop101免密登录自身服务器hadoop102与hadoop103服务器
命令:
#将公钥拷贝到hadoop101机器上 ssh-copy-id hadoop101 #将公钥拷贝到hadoop102机器上 ssh-copy-id hadoop102 #将公钥拷贝到hadoop103机器上 ssh-copy-id hadoop103
③同上操作,在hadoop102也执行此项操作
④同上操作,在hadoop103上执行此项操作
⑤测试免密登录,hadoop集群之间实现互相访问
- 服务器之间文件互传
①使用scp实现文件互传
#scp命令语法 scp -r $dir/$filename $user@$host:$dir/$filename # -r 递归 # $dir 要拷贝的文件路径 # $filename 拷贝文件的名称 # $user 目的地用户 # $host 主机地址 # $dir 目的地路径 # $filename 目的地文件名称
② 使用rsync 远程同步工具实现文件共享
- rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
- rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更 新。scp 是把所有文件都复制过去。
#rsync 实现服务器之间文件共享 rsync -av $dir/$fname $user@$host:$dir/$fname #rsync 命令 #-av 选项参数:归档拷贝,显示复制过程 #$dir 要拷贝的文件路径 #$fname 拷贝的文件名称 #$user 目的地用户 #$host 目的地主机 #$dir 目的地路径 #$fname 目的地文件名称
③使用自定义脚本hsync 集群分发文件
- 查看可执行的脚本目录echo $PATH
- 在/root/bin目录下创建可执行文件脚本hsync,并授予可执行权限
- 使用vi编辑器写入以下脚本
#!/bin/bash #1. 判断参数个数,此处的传参为文件名称或者目录名称 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in hadoop101 hadoop102 hadoop103 do echo ==================== $host ==================== #3. 遍历所有目录,挨个发送 for file in $@ do #4. 判断文件是否存在 if [ -e $file ] then #5. 获取父目录 pdir=$(cd -P $(dirname $file); pwd) #6. 获取当前文件的名称 fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exists! fi done done
- 测试分发脚本
hsync /root/bin/hsync
结语
至此,关于hadoop集群之间实现免密登录和文件互传的内容到这里就结束了,我们下期见。。。。。。
大数据实战——hadoop集群安装搭建
前言
本节内容我们主要来介绍如何搭建hadoop集群,将hadoop的基础环境搭建完成,便于我们使用hadoop集群。在搭建hadoop集群搭建之前,我们需要先安装java环境,并且我们需要规划我们hadoop集群的组件分布,保证hadoop集群服务器能发挥其最大的价值。
hadoop集群组件分布如下:
hadoop101 | hadoop102 | hadoop103 | |
---|---|---|---|
HDFS | NameNode DataNode | DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager | NodeManager |
正文
- java环境安装
①上传java安装包到hadoop101服务器
②解压java安装包到/opt/module目录
命令:tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
③在/etc/profile.d目录下,新建环境变量配置文件my_env.sh
④在配置文件my_env.sh中添加java环境变量配置
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin
⑤让新的环境变量 PATH 生效,查看java环境配置是否生效
source /etc/profile
⑥分发java安装包到hadoop102和hadoop103服务器
hsync /opt/module/jdk1.8.0_212
⑦分发环境配置文件my_env.sh到hadoop102和hadoop103服务器
hsync /etc/profile.d/my_env.sh
⑧分别在hadoop102与hadoop103上面执行source /etc/profile,查看java是否安装完成
- hadoop安装
①上传hadoop安装包到hadoop101服务器
② 解压hadoop安装包到/opt/module目录
命令:tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
③获取hadoop安装目录/opt/module/hadoop-3.1.3
④在/etc/profile.d/my_env.sh环境变量配置文件中配置hadoop的环境变量
#HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
⑤使配置的环境变量生效,并查看hadoop的安装情况
source /etc/profile
⑥分发hadoop安装包到hadoop102和hadoop103服务器
命令:hsync /opt/module/hadoop-3.1.3/
⑦分发环境配置文件my_env.sh到hadoop102和hadoop103服务器
hsync /etc/profile.d/my_env.sh
⑧分别在hadoop102与hadoop103上面执行source /etc/profile,查看hadoop是否安装完成
结语
本节内容到这里就结束了,关于hadoop的组件运行及启动,由于篇幅所限,我们在下节内容中再详细介绍,后会有期。。。。。。
以上是关于大数据实战——hadoop集群实现免密登录和文件互传的主要内容,如果未能解决你的问题,请参考以下文章