• Mac 使用paralles 从零搭建hadoop集群


    目录

    1. 虚机的安装与配置

    1.1 安装parallels

    1.2 安装fedora系统

    1.3 fedora的配置

    1.3.1 内存和硬盘配置

    1.3.2 网络配置

    1.3.3 共享文件夹

    1.4 虚拟机克隆 与 加载

    2. 免密登录

    2.1 分别查看master, slave01,slave02 的ip

    2.2 查看各虚机的hostname

    ​编辑

     ​编辑

    2.3 设置DNS,在3太机器的“/etc/hosts”文件中,均加入以下内容

    2.4 ssh服务设置

    3. Jdk 和 hadoop的安装和配置

    4. hadoop集群验证

    5. 参考链接

    6. 可能出现的一些问题

    6.1 jps comment not found

    6.2 防火墙问题

    6.2.1 fedora34 开启http server发现无法访问,需要关闭防火墙

    6.2.2 hadoop fs -put 出错

    6.3 Hadoop yarn nodemanager启动提示 Retrying connect to server: 0.0.0.0/0.0.0.0:8031.

    6.3 虚拟内存不够

    6.4 程序有问题

    6.5 其它定位问题的方法:


    1. 虚机的安装与配置

    1.1 安装parallels

    从官网下载parallels,安装。

    关于parallels的一些设置,可以右键Dock栏的Parallels Desktop图标,选择偏好设置查看。

    Parallels 的试用期是14天,怎样永久使用呢?

    命令行开启虚拟机:prlctl start 'master'

    命令行重启虚拟机:prlctl restart 'slave01'

    参考链接:https://www.youtube.com/watch?v=ZsqlVbR5aBw

    1.2 安装fedora系统

    打开parallels,直接在引导页面下载 fedora系统(该系统下载时间会比较长)

    1.3 fedora的配置

    安装好fedora系统后,右键Dock栏的Parallels Desktop图标,点击“控制中心”,可以看到刚才下载的fedora系统。

    点击fedora虚机,进行配置(注意:关机后,才可以更改虚拟机的各种配置)

     

     

    1.3.1 内存和硬盘配置

    虚拟机的内存和硬盘默认即可,后续可以随时动态调整

     

    1.3.2 网络配置

    网络选择默认的Shared Network

    1.3.3 共享文件夹

    开启文件夹共享(但仍需要配合Paralles Tools才能实现真正的文件夹共享)

     

    此时,/media/psf/Home 下面就可以看到宿主机的文件了

    1.4 虚拟机克隆 与 加载

    参考链接:克隆虚拟机

    (1) 在控制中心内,选择要克隆的虚拟机(必须处于关闭状态),然后依次选择 文件> 克隆

    (2) 选择所需的克隆虚拟机存储位置。

    默认情况下,Parallels Desktop 会将克隆的虚拟机存储在“文档”>“Parallels”文件夹中。

    (3) 点击 保存 以开始克隆虚拟机。

    加载刚刚保存的虚拟机

     

     

    我构建的是一个master,两个slave。(master,slave是我自己修改的名字,可以在配置里修改)

    2. 免密登录

    2.1 分别查看master, slave01,slave02 的ip

    Ifconfig

    注:如果master,slave01,slave02 的ip是一样的,要重新修改一下ip

    master

     

    slave01

    slave02

     

    2.2 查看各虚机的hostname

     

     

    • 修改hostname的方法

    如果hostname显示有误,以为master机器为例,可以通过

    Vi ~/.bashrc 添加 hostname master

     

    在vim中,保存退出,执行bash,观察当前机器的hostname已经修改。

    2.3 设置DNS,在3太机器的“/etc/hosts”文件中,均加入以下内容

    10.21.55.7 master

    10.21.55.8 slave01

    10.21.55.9 slave02

     

    slave01 和 slave02 同样操作

    2.4 ssh服务设置

    ssh服务开启,参考链接:https://blog.csdn.net/rs_network/article/details/8043109

    A.确认是否已安装ssh服务

    ]# rpm -qa | grep openssh-server

    openssh-server-5.3p1-19.fc12.i686 (这行表示已安装)

    若未安装ssh服务,可输入:

    #yum install openssh-server

    B. 启动SSH服务

    # systemctl start sshd.service

    或者 #service sshd start

    也可以用 restart 和 stop控制sshd服务

    C. 设置系统启动时开启服务

    # systemctl enable sshd.service

    D. 同样也需开启防火墙22端口

    #iptables -A INPUT -p tcp --dport 22 -j ACCEPT

    也可以将上述参数加入防火墙配置中:

    #vi /etc/sysconfig/iptables

    加入:-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

    保存后重启iptables即可

    在master,slave01 和 slave02 机器上,均进行如下操作即可

    2.5 ssh免密登录设置

    以master为例,执行 “ssh-keygen”命令,一路回车,得到

     

    然后,通过ssh-copy-id的方式进行免密配置

    ssh-copy-id ~/.ssh/id_rsa.pub master

    ssh-copy-id ~/.ssh/id_rsa.pub slave01

    ssh-copy-id ~/.ssh/id_rsa.pub slave02

    在slave01,slave02 机器上重复如上操作

    在master机器上验证:

    ssh slave01

    3. Jdk 和 hadoop的安装和配置

    (1) 将hadoop,java安装包,放到共享目录下,拷贝到master机器上,然后再将安装包同步到slave01 和 slave02 上,保证这三个机器安装的内容是一致的。故仍以master为例

    Sudo cp /media/psf/Home/hadoop-2.6.5.tar.gz /usr/local/src/

    Sudo cp /media/psf/Home/jdk-8u172-linux-x64.tar.gz /usr/local/src/

    将hadoop 和 java 拷贝到机器slave01上

    Sudo scp -rp /usr/local/src/hadoop-2.6.5.tar.gz parallels@slave01:~/

    Sudo cp ~/hadoop-2.6.5.tar.gz /usr/local/src/

    Sudo scp -rp /usr/local/src/jdk-8u172-linux-x64.tar.gz parallels@slave01:~/

    Sudo cp ~/jdk-8u172-linux-x64.tar.gz /usr/local/src/

    同理,将hadoop 和 java 拷贝到机器slave02上

    (2)安装java和hadoop,以master为例,slave01 和 slave02 参考master的方法

    ~/.bashrc 文件如下所示

     

    (3)在"/usr/local/src/hadoop-2.6.5/etc/hadoop"目录中,开始hadoop的一系列配置

    hadoop-env.sh 配置JAVA_HOME

     

    yarn-env.sh 配置JAVA_HOME

    修改slaves文件,里面写从节点hostname

     

    core-site.xml 配置

    fs.defaultFS

    hdfs://master:9000

    hadoop.tmp.dir

    /usr/local/src/hadoop-2.6.5/tmp

    mapred-site.xml 配置

    cp mapred-site.xml.template mapred-site.xml

    mapreduce.framework.name

    yarn

    yarn-site.xml 配置

     
    

    yarn.resourcemanager.hostname

    master

    yarn.nodemanager.aux-services

    mapreduce_shuffle

    yarn.nodemanager.aux-services.mapreduce_shuffle.class

    org.apache.hadoop.mapred.ShuffleHandler

    yarn.nodemanager.vmem-check-enabled

    false

    yarn.nodemanager.vmem-pmem-ratio

    5

    yarn.resourcemanager.address

    master:8032

    yarn.resourcemanager.scheduler.address

    master:8030

    yarn.resourcemanager.resource-tracker.adderess

    master:8031

    yarn.resourcemanager.admin.address

    master:8033

    yarn.resourcemanager.webapp.address

    master:8088

    hdfs-site.xml 配置

     
    

    dfs.namenode.secondary.http-address

    master:9001

    dfs.namenode.name.dir

    file:/usr/local/src/hadoop-2.6.5/dfs/name

    dfs.namenode.data.dir

    file:/usr/local/src/hadoop-2.6.5/dfs/data

    dfs.replication

    3

    在HADOOP_HOME(/usr/local/src/hadoop-2.6.5)下,创建3个空目录

    mkdir tmp

    mkdir -p dfs/name

    mkdir -p dfs/data

    配置已全部配好,然后将所有配置,同步到slave01,slave02(可以使用scp)

    4. hadoop集群验证

    进行hdfs集群格式化,中间会提示Y or N,这里直接Y回车就好

    cd /usr/local/src/hadoop-2.6.5/bin

    ./hdfs namenode -format

    启动集群

    cd /usr/local/src/hadoop-2.6.5

    ./sbin/start-all.sh

     

    在master上观察进程

    在slave01上观察进行

    同理,在slave02上观察进程

     

    关闭集群

    cd /usr/local/src/hadoop-2.6.5

    ./sbin/stop-all.sh

    5. 参考链接

    (1)https://zhuanlan.zhihu.com/p/507297549

    (2)使用Paralles Desktop,在虚拟机环境中搭建hadoop集群(2主3从5节点)_山海王子的博客-CSDN博客_hadoop 二主三从

    (3)http://www.sunnyos.com/article-show-78.html

    6. 可能出现的一些问题

    6.1 jps comment not found

    (1) 查看是否安装java

    java -version

    若安装,则会看到java版本;若未安装,则安装

    (2)若安装java,在~/.bash_profile 中加入jdk路径。

    export PATH=$PATH:/usr/local/java/jdk1.8.0_172/bin/

    source ~/.bash_profile

    参考博客:解决jps command not found

    6.2 防火墙问题

    6.2.1 fedora34 开启http server发现无法访问,需要关闭防火墙

    fedora34 关闭防火墙

    临时停止防火墙

    $ sudo systemctl stop firewalld

    永久禁止防火墙

    $ sudo systemctl disable firewalld

    查看防火墙状态

    $ systemctl status firewalld

    参考链接:https://insidelinuxdev.net/article/a0bf3j.html

    6.2.2 hadoop fs -put 出错

    在master机器上执行 hadoop fs -put 出现如下错误

    “put:call from master/192.168.44.128 to master:9000 failed on connection exception:java.net connect Exception 拒绝链接”

    错误信息里面还给了一个链接 ConnectionRefused - HADOOP2 - Apache Software Foundation

    在slave机器上执行hadoop fs -put 出现如下错误

    “put:No route to host from slave/192.168.44.129 to master:9000 failed on socket timeout exception:java.net. NoRouteToHostException 没有到主机的路由”

    错误信息里也给了一个链接NoRouteToHost - HADOOP2 - Apache Software Foundation

    解决方法

    关闭防火墙,重启。

    Centos 7 关闭防火墙

    1. 开启命令: systemctl start firewalld.

    2. 临时关闭命令: systemctl stop firewalld.

    3. 永久关闭命令: systemctl disable firewalld.

    也可试着使用 service iptables stop/start 关闭/打开防火墙

    6.3 Hadoop yarn nodemanager启动提示 Retrying connect to server: 0.0.0.0/0.0.0.0:8031.

    https://blog.csdn.net/cl723401/article/details/82949139

    原因,是因为 nodemanager 找不到 resourcemanager

    在yarn-site.xml中添加

    yarn.resourcemanager.hostname

    master

    6.3 虚拟内存不够

    参考链接

    https://blog.csdn.net/ztx22555/article/details/125918895

    关于Hadoop集群物理及虚拟内存的检测的设置说明_7&的博客-CSDN博客

    6.4 程序有问题

    Error: java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1

    Running a job using hadoop streaming and mrjob: PipeMapRed.waitOutputThreads(): subprocess failed wi

    https://stackoverflow.com/questions/17037300/running-a-job-using-hadoop-streaming-and-mrjob-pipemapred-waitoutputthreads

    6.5 其它定位问题的方法:

    (1)注意看log

    (2)根据log,看可能有哪些问题。比如 log中显示slave 找不到resourcemanager,而resourcemanager是在master上的一个服务,所以,就需要查看,master上相应的服务是否开启等。

    比如可以使用netstat 查看一下网络的状态,具体用法详见:Linux netstat命令 | 菜鸟教程

    使用 netstat -tunlp 得到如下结果

     

  • 相关阅读:
    动态规划--01背包问题详解
    win10安装Tensorflow(2.10-)使用最新cuda(12+),cudnn(8.9+)
    vue3-基础知识(4)- 组件
    Linux python2升级到python3
    Webpack打包生产环境进行优化处理
    Cesium渲染模块之Command
    【自然语言处理】:实验5,司法阅读理解
    CSS3 对齐方式
    网络安全(黑客)自学
    【博客搬家】
  • 原文地址:https://blog.csdn.net/zhao_crystal/article/details/128061163