热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

hadoop基础环境搭建

知了堂姐
2024-07-09 11:12:24
0

对于java想往大数据方向转的小伙伴或者感兴趣的,请跟着步骤慢慢搭建,你会有很大的收获的!

以下是基础环境搭建步骤1-11步骤

1.安装rz用来文件上传下载

yum install -y lrzsz

安装阿里云源: 地址:http://mirrors.aliyun.com/repo/Centos-7.repo 上传这个repo 备份并替换系统的repo文件

#拷贝
cp Cntos-7.repo /etc/yum.repos.d/
cd /etc/yum.repos.d/
#备份
mv CentOS-Base.repo CentOS-Base.repo.bak
#替换
mv Centos-7.repo Centos-Base.repo

执行yum源更新命令

yum clean allyum makecacheyum update -y

配置完毕

2.安装常用软件

yum install -y openssh-server vim gcc gcc-c++ glibc-headers bzip2-devel lzo-devel lzo-devel curl wget openssh-clients zlib-devel autoconf autoconf automake cmake libtool openssl-devel fuse-devel snappy-devel telnet unzip zip net-tools.x86_64 firewalld systemd

3.关闭防火墙

centos6和7 的不同关闭方法

centos6:

#查看防火墙状态:
service iptables status
#关闭防火墙:
service iptables stop 
#永久关闭防火墙:
chkconfig iptables off

centos7:

#查看防火墙状态:
firewall-cmd --state
#关闭防火墙:
systemctl stop firewalld.service
#禁止防火墙开机启动:
systemctl disable firewalld.service
#查看服务是否开机启动:
systemctl is-enabled firewalld.service

4.关闭selinux

#查看状态:/usr/sbin/sestatus -v

#关闭:vim /etc/selinux/config

把文件中的selinux=disabled

#重启服务器reboot

启动之后

#查看状态/usr/sbin/sestatus -v

5.安装JDK

我的jdk版本为1.8 安装步骤略,度娘很多,这里偷个懒 修改主机名 centos 6: vi /etc/sysconfig/network HOSTNAME=nn1.hadoop #修改localhost.localdomain为nn1.hadoop

vi /etc/hosts 127.0.0.1 nn1.hadoop localhost #修改localhost.localdomain为nn1.hadoop

ps:可以不改127.0.0.1后面的默认主机名。改了的话可能会有某些网络应用误把主机master解析到127.0.0.1上去,导致运行失败,当然可能性比较低。可以在对本机设置IP后,在/etc/hosts的最后加一行: “IP 主机名”,这样也可以实现。

shutdown -r now #重启服务器

centos 7:

#修改
hostnamectl set-hostname nn1.hadoop
#修改之后查看
hostname

6.创建hadoop用户,设置用户密码

创建用户 useradd hadoop 设置密码 passwd hadoop

7.给hadoop用户创建秘钥

配置ssh秘钥目的:使得多台机器之间可以免密登录 实现原理:使用ssh-keygen 在linux1上生成公钥和私钥,将公钥复制到另一台linux2上,则可以实现使用ssh命令无需密码登录到另一台服务器上,如果需要互相免密登录,需要将公钥私钥都拷贝到linux2上。

#切换到hadoop用户
su - hadoop
#创建.ssh目录
mkdir ~/.ssh
#生成ssh公钥私钥
ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
#输出公钥文件内容并且重新输入到~/ssh/authorized_keys文件中
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
#给~/.ssh文件加上700权限
chmod 700 ~/.ssh
#给~/.ssh/authorized_keys加上 600权限
chmod 600 ~/.ssh/authorized_keys

8.创建whell用户组,禁止非whell组用户切换到root,配置免密切换root(非必须)

1)修改 /etc/pam.d/su 配置 su时 要求用户加入到wheel组 将此行 井号’#’ 去掉

或者执行

命令说明:

2) 修改/etc/login.defs 在文件尾部添加

SU_WHEEL_ONLY yes

3) 添加用户到管理员,禁止普通用户su 到root

#把hadoop用户添加到wheel组中
usermod -G wheel hadoop
#查看wheel组中是否有hadoop用户
id hadoop 或者 cat /etc/group | grep wheel

4) 使用普通用户验证一下,由于普通用户没有在wheel组中,所以没有su root 权限 5) 修改/etc/pam.d/su 下的文件 将下图中井号去掉

完成之后即不需要密码也可su 到root

9.配置hosts文件

修改/etc/hosts 文件 追加:

192.168.199.160 nn1.hadoop
192.168.199.161 nn2.hadoop
192.168.199.162 s1.hadoop
192.168.199.163 s2.hadoop
192.168.199.164 s3.hadoop

10.克隆4台机器

右键虚拟机 >管理>克隆

下一步之后选择完整克隆

10.1 配置静态IP

vim  /etc/sysconfig/network-scripts/ifcfg-ens33

重启network.service

systemctl restart network.service

最后别忘记更改hostname

#更改hostname
hostnamectl set-hostname nn2.hadoop
#查看hostname
hostname

剩下几台操作都和这个一致

10.2 配置、etc/resolv.conf 的 nameserver

这个是修改DNS 的 使用命令 vim etc/resolv.conf 修改nameserver 我的是

10.3 停掉NetworkManager服务

#停止NetworkManager服务
systemctl stop NetworkManager.service  
#设置开机不启动
systemctl disable NetworkManager.service 
#重启网络服务
systemctl restart NetworkManager.service

11.scp命令和ssh命令说明及使用

因为会用到远程拷贝等命令,所以了解一下相关命令及批量处理

scp:

scp 文件名 登录用户名@目标机器IP或主机名:目标目录

示例:

scp /home/hadoop/a1 hadoop@s1.hadoop:/home/hadoop/

ssh:

指定用户登录其他机器

ssh 登录用户名@目标ip或主机名

示例:

ssh hadoop@s1.hadoop

批量脚本

下面是我的批量处理脚本

ips:

ssh_all.sh:

#!/bin/bash
RUN_HOME=$(cd "$(dirname "$0")"; echo "${pwd}")
NOW_LIST=(`cat ${RUN_HOME}/ips`)
SSH_USER="hadoop"
for i in ${NOW_LIST[@]}; do
    f_cmd="ssh $SSH_USER@$i \"$*\""
    echo $f_cmd
    if eval $f_cmd; then
        echo "OK"
    else
        echo "FAIL"
    fi
done

解读:循环遍历ips 登录hadoop用户

测试:

~/hadoop_op/ssh_all.sh ls

结果:

scp_all.sh:

#!/bin/bash
RUN_HOME=$(cd "$(dirname "$0")"; echo "${PWD}")
NOW_LIST=(`cat ${RUN_HOME}/ips`)
SSH_USER="hadoop"
for i in ${NOW_LIST[@]}; do
    f_cmd="scp $1 $SSH_USER@$i:$2"
    echo $f_cmd
    if eval $f_cmd; then
        echo "OK"
    else
        echo "FAIL"
    fi    
done

解读:循环遍历ips 将$1(参数) 文件 拷贝 到其他机器的$2下

测试:

#将home目录下的exe.sh 拷贝到ips的那些机器的home目录下~/hadoop_op/scp_all.sh ~/exe.sh ~/

exe.sh:

cmd=$*su - <

ssh_root.sh:

#!/bin/bash
RUN_HOME=$(cd "$(dirname "$0")"; echo "${PWD}")
NOW_LIST=(`cat ${RUN_HOME}/ips`)
SSH_USER="hadoop"
for i in ${NOW_LIST[@]}; do
    f_cmd="ssh $SSH_USER@$i ~/exe.sh \"$*\""
    echo $f_cmd
    if eval $f_cmd; then
        echo "OK"
    else
        echo "FAIL"
    fi
done

解读:使用hadoop用户登录之后 在执行命令

测试:

#看各机器home目录下是否有exe.sh./ssh_root.sh "ls ~/|grep exe.sh"

基础环境准备及相关脚本以及测试结果完毕!

大家都在看

知了汇智网安项目实训在成都信息工程大学启动

2024-07-09 浏览次数:0

【知了堂】参加Java培训的3大好处,你都知道吗...

2024-07-09 浏览次数:0

攻防渗透信息收集方法+工具之ip信息收集

2024-07-09 浏览次数:0

java ee和java se区别是什么?学Ja...

2024-07-09 浏览次数:0

鸿蒙系统新手教程怎么学?鸿蒙开发入门教程

2024-07-09 浏览次数:0

css伪类是什么意思?前端css中有哪些常用的伪...

2024-07-09 浏览次数:0
最新资讯
hadoop基础环境搭建 对于java想往大数据方向转的小伙伴或者感兴趣的,请跟着步骤慢慢搭建,你会有很大的收获的!