Hadoop安装与使用

一、单机模式下Hadoop的安装

1.1在VMware虚拟机中安装Ubuntu18操作系统(此处提前完成) 

1.2Java安装

首先使用sudo su进入root权限,再分别执行:

    apt-get install openjdk-8-jre

    apt-get install openjdk-8-jdk

安装Java,安装openjdk-8-jre截图如下:

安装openjdk-8-jdk截图如下:

1.3 安装ssh服务器,并设置root用户ssh免密码登录安装ssh服务器:

使用sudo apt-get install openssh-server,安装ssh服务器,如下图:

免密登录,使用以下命令行进行ssh配置:

    $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

    $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    $ chmod 0600 ~/.ssh/authorized_keys

如下图:

1.4 官网下载Hadoop3.0,并在虚拟机中解压、拷贝到/usr/local/hadoop/目录下。

1.5 修改Hdsf-site.xml;core-site.xml;hadoop-env.sh这三个文件进行Hadoop配置

Hdsf-site.xml:

 core-site.xml:

hadoop-env.sh:

1.6 启动hadoop

进入bin/hadoop目录,执行./hadoop namenode –format,结果如下图:

成功后去/usr/local/Hadoop/hadoop-3.0.2/sbin下执行./start-all.sh脚本,启动Hadoop:

二、应用示范:分词统计

2.1 创建本地的示例数据文件

    在图示路径下,创建test1.txt与test2.txt两个文本文件,如图所示:

2.2 在HDFS上创建输入文件夹

    执行./hdfs dfs –mkdir –p hdfsInput创建输入文件夹如下图:

2.3 上传本地file中文件到集群的hdfsInput目录

    执行./Hadoop fs –put /usr/local/Hadoop/Hadoop-3-0-2/file/test*.txt hdfsInput上传本地file中文件到集群的hdfsInput目录,如下图:

2.4 运行wordcount执行:

   ./hadoop jar /usr/local/hadoop/Hadoop-3-0-2/share/Hadoop/mapreduce/Hadoop-mapreduce-examples-3-0-2.jar wordcount hdfsInput hdfsOuput运行wordcount,运行过程如下图:

最终,产生两个文件:

从上图中知道生成了三个文件,我们的结果在"part-r-00000"中,执行

    bin/hadoop fs -cat output/part-r-00000

结果如下:

 可见,已经对文件完成了wordcount运算。

 三、集群模式(伪分布式配置)

3.1Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的Java进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是HDFS 中的文件。

    Hadoop 的配置文件位于/usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件core-site.xml 和 hdfs-site.xml。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

    修改配置文件core-site.xml:

修改配置文件 hdfs-site.xml:

    Hadoop 的运行方式是由配置文件决定的(运行Hadoop时会读取配置文件),因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

    此外,伪分布式虽然只需要配置fs.defaultFS和dfs.replication就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为/tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行format才行。所以可以提前设置,同时也指定dfs.namenode.name.dir和dfs.datanode.data.dir,否则在接下来执行namenode –formate以及启动Hadoop的步骤中可能会出错。

3.2 接下来执行:./bin/hdfs namenode –format并开启 NameNode 和 DataNode 守护进程:./sbin/start-dfs.sh

3.3  伪分布模式的grep实例

    单机模式,wordcount 例子读取的是本地数据,伪分布式读取的则是 HDFS 上的数据。要使用 HDFS,首先需要在 HDFS 中创建用户目录:./bin/hadoop fs -mkdir -p /user/Hadoop

    注意:创建的用户目录不能直接在系统中查看,因为hadoop创建的是逻辑上的目录,必须在hadoop上才能查看。查看命令如下:

接着将 ./etc/hadoop 中的 xml文件作为输入文件复制到分布式文件系统中,即将/usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input中。在命令中使用绝对路径:/user/hadoop/input

伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件。

 查看运行结果的命令:./bin/hdfs dfs -cat output/*

3.4 关闭Hadoop

    在/usr/local/hadoop目录下执行:./sbin/stop-dfs.sh

​​​​​​​

可见Hadoop被成功关闭。下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行 ./sbin/start-dfs.sh 就可以了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值