JDK+Hadoop安装配置、单机模式配置、Hadoop伪分布式模式配置

    xiaoxiao2022-07-07  241

    一、JDK+Hadoop安装配置、单机模式配置

    可以使用SecureCRT 或者 Xshell 连接到虚拟机,我用SecureCRT连接不到虚拟机,许久找不到解决办法,重装四次SecureCRT依然无法连接到虚拟机,所以改用Xshell连接到虚拟机进行实验。

    连接上虚拟机后,开始实验

    1.关闭防火墙

    显示防火墙状态 firewall-cmd --state 临时关闭防火墙,每次开机重新开启防火墙

    systemctl stop firewalld

    禁止防火墙服务

    systemctl disable firewalld

    再次运行firewall-cmd --state

    显示not running即可

    2.传输JDK和HADOOP压缩包 使用 Xftp 将下面两个包从本地当前路径(Windows)传从到当前路径(Linux)

    jdk-8u121-linux-x64.tar.gz hadoop-2.7.3.tar.gz

    JDK和HADOOP压缩包下载链接:https://pan.baidu.com/s/1BVXasc7O5v0kfr9wdYIF_A 提取码:utbg

    Xftp下载地址:https://www.netsarang.com/zh/xftp-download/

    3.解压JDK、HADOOP包

    tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/module tar -zxvf hadoop-2.7.3.tar.gz -C /opt/module

    4.配置JDK并生效 打开配置文件

    vi /etc/profile

    做如下修改

    export JAVA_HOME= usr/local/hadoop /jdk1.8.0_121 export PATH=$JAVA_HOME/bin:$PATH

    保存并退出,生效配置

    source /etc/profile

    接着运行命令javac检验是否成功。

    5.配置HADOOP并生效 打开配置文件

    vi /etc/profile

    做如下修改

    export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.7 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

    保存并退出,生效配置

    source /etc/profile

    接着运行命令hadoop检验是否成功。

    6.单机模式配置hadoop -env.sh

    hadoop-env.sh文件修改

    vi /opt/module/hadoop-2.7.3/etc/hadoop/hadoop-env.sh

    修改第25行 export JAVA_HOME=/opt/module/jdk1.8.0_121

    显示行号 Esc :set number 取消行号 Esc :set nonumber

    保存并退出

    本地模式没有HDFS和Yarn,配置JDK后MapReduce能够运行java程序。

    7.运行自带程序wordcount

    转入wordcount所在路径

    cd /opt/module/hadoop-2.7.3/share/hadoop/mapreduce

    创建In.txt文件,作为输入文件

    touch in.txt

    如果in.txt是空文件,运行vi in.txt,输入内容作为被统计词频的输入文件 输出目录/output必须不存在,程序运行后自动创建

    运行wordcount

    hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/

    运行成功之后,进入/output目录,打开文件part-r-00000查看计数结果

    二、Hadoop伪分布式模式配置

    1.基础安装配置

    一定要完成上述1-6安装配置

    2.修改以下6个配置文件

    进入Hadoop路径

    cd /usr/local/hadoop/hadoop-2.7.3/etc/hadoop

    ①~④配置文件均在<configuration与 </configuration之间添加如下property:

    ①core-site.xml

    <!--配置HDFS主节点,namenode的地址,9000是RPC通信端口--> <property> <name>fs.defaultFS</name> <value>hdfs:// iZuf6hb8srmhxeqc7i7ysvZ:9000</value> </property> <!--配置HDFS数据块和元数据保存的目录,一定要修改--> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.3/tmp</value> </property>

    ②hdfs-site.xml

    <!--注释配置数据块的冗余度,默认是3--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--secondaryNameNode的主机地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>bigdata128:50090</value> </property>

    ③mapred-site.xml

    该配置文件不存在,先复制

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

    再添加如下property

    <!--配置MR程序运行的框架--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>

    ④yarn-site.xml

    <!--配置Yarn的节点--> <property> <name>yarn.resourcemanager.hostname</name> <value>bigdata128</value> </property> <!--NodeManager执行MR任务的方式是Shuffle洗牌--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>

    Slaves文件里使用默认localhost,或者添加 bigdata128(既是NameNode又是DataNode) 注:如果Slaves文件为空,就没有DataNode和NodeManager。

    ⑤修改\etc\hosts配置文件

    vi \etc\hosts

    注释掉已有内容,添加虚拟机的ip及对应主机名(修改为自己的虚拟机IP和主机名) 注:查询虚拟机的ip ip addr 查询主机名 hostname

    192.168.128.130 bigdata128

    ⑥修改\etc\hostname配置文件

    vi \etc\hostname

    添加虚拟机的主机名:

    bigdata128

    重启虚拟机,配置生效

    3.格式化
    hdfs namenode -format

    注:如果不是第一次格式化,格式化之前先删除/opt/module/hadoop-2.7.3/下面的tmp、logs两个目录

    4.启动
    start-all.sh

    如果启动之前已经启动过,启动之前先停止 stop-all.sh

    5.查看伪分布式配置是否成功:
    cd tmp/dfs

    ①执行ll,查看/opt/module/hadoop-2.7.3/tmp/dfs目录,如下图所示,则正确。 ②执行jps,如下图所示 NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager 如果全部启动,伪分布式配置成功。

    6.运行wordcount

    上传本地当前路径下的in.txt文件 到hdfs的/adir目录下。

    hdfs dfs -put in.txt /adir

    运行

    hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /adir/in.txt output/

    在 ip:50070 网页中查看/user/root/output/part-r-00000文件里的词频统计结果。

    三、SSH免密码登陆(建议设置以解决每次启动hadoop都要输入用户密码的问题)

    生成公、私密钥对

    ssh-keygen -t rsa

    按3次回车键

    查看 .ssh 下的 rd_rsa (生成的私钥文件)和rd_rsa.pub(生成的公钥文件)

    cd ~/.ssh

    复制至远程服务器

    ssh-copy-id -i ~/.ssh/id_rsa.pub root@bigdata128

    查看生成的 authorized_keys

    最新回复(0)