Hadoop是一个分布式系统基础架构,在大数据领域被广泛的使用,它将大数据处理引擎尽可能的靠近存储,Hadoop最核心的设计就是HDFS和MapReduce,HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。以下就是搭建教育直播源码中Hadoop运行环境的方法。
我们使用Linux操作系统来搭建环境,下面的信息是用来准备搭建教育直播源码中Hadoop环境的电脑环境信息。
1、hadoop@ubuntu:~$cat/etc/os-release
2、NAME="Ubuntu"
3、VERSION="14.04.5LTS,TrustyTahr"
4、ID=ubuntu
5、ID_LIKE=debian
6、PRETTY_NAME="Ubuntu14.04.5LTS"
7、VERSION_ID="14.04"
8、HOME_URL="http://www.ubuntu.com/"
9、SUPPORT_URL="http://help.ubuntu.com/"
10、BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
紧接着来新建一个用户,这一步其实也可以省略的,可以根据实际情况来决定,这里是新建了一个叫hadoop的新用户。
1、#创建新用户
2、sudouseradd-mhadoop-s/bin/bash
3、#设置密码
4、sudopasswdhadoop
5、#为hadoop用户增加管理员权限
6、sudoadduserhadoopsudo
7、#切换到hadoop用户
8、suhadoop
我们首先来设置一下SSH无密码登录,这一步建议都设置一下,因为分布式系统环境都是由多台服务器构成的,设置免密码登录会方便使用。
1、#先检查下是否可以在没有密码的情况下ssh到localhost
2、sshlocalhost
3、#如果在没有密码的情况下无法ssh到localhost,请执行以下命令
4、ssh-keygen-trsa-P''-f~/.ssh/id_rsa
5、cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
6、chmod0600~/.ssh/authorized_keys
上面是一些准备工作,接下来就正式开始部署教育直播源码Hadoop环境了。我们先在Apache官网(http://hadoop.apache.org)这里下载最新的稳定版本的Hadoop发行版,然后解压到指定目录并进入这个目录,执行./bin/hadoop和./bin/hadoopversion可以分别显示hadoop脚本的使用文档和版本信息,然后修改一下./etc/hadoop/core-site.xml和./etc/hadoop/hdfs-site.xml这两个配置文件,配置修改分别如下所示。
修改./etc/hadoop/core-site.xml配置文件,添加如下配置:
1、<configuration>
2、<property>
3、<name>fs.defaultFS</name>
4、<value>hdfs://localhost:9090</value>
5、</property>
6、<property>
7、<name>hadoop.tmp.dir</name>
8、<value>file:/opt/bigdata/hadoop/tmp</value>
9、<description>Abaseforothertemporarydirectories.</description>
10、</property>
11、</configuration>
修改./etc/hadoop/hdfs-site.xml配置文件,添加如下配置:
1、<configuration>
2、<property>
3、<name>dfs.replication</name>
4、<value>1</value>
5、</property>
6、<property>
7、<name>dfs.namenode.name.dir</name>
8、<value>file:/opt/bigdata/hadoop/tmp/dfs/name</value>
9、</property>
10、<property>
11、<name>dfs.datanode.data.dir</name>
12、<value>file:/opt/bigdata/hadoop/tmp/dfs/data</value>
13、</property>
14、</configuration>
配置修改好之后,执行格式化文件系统,操作如下。
1、hadoop@ubuntu:/opt/bigdata/hadoop$./bin/hdfsnamenode-format
2、#执行后输出会比较多,看到下边这条信息表示成功
3、INFOcommon.Storage:Storagedirectory/opt/bigdata/hadoop/tmp/dfs/namehasbeensuccessfullyformatted.
在格式化NameNode的时候可能会遇到下面这样的两个问题。
1、提示Error:JAVA_HOMEisnotsetandcouldnotbefound.的错误,这说明JAVA_HOME环境变量没有配置好,重新配置一下,或者修改./etc/hadoop/hadoop-env.sh文件把exportJAVA_HOME=${JAVA_HOME}直接修改成绝对目录exportJAVA_HOME=/usr/lib/jvm/java-8既可解决。
2、提示ERRORnamenode.NameNode:java.io.IOException:Cannotcreatedirectory/opt/bigdata/hadoop/tmp/dfs/name/current的错误,这是因为配置的/opt/bigdata/hadoop/tmp目录的写入权限有问题,可以直接执行sudochmod-Ra+w/home/hadoop/tmp即可解决。
接下来执行./sbin/start-dfs.sh来开启NameNode和DataNode守护进程,然后检查NameNode、DataNode和SecondaryNameNode是否都已经启动成功,操作如下:
1、hadoop@ubuntu:/opt/bigdata/hadoop$jps
2、4950Jps
3、3622SecondaryNameNode
4、3295DataNode
5、2910NameNode
启动成功之后可以用浏览器来打开http://localhost:50070/浏览NameNode的Web界面。
到此为止,Hadoop单节点集群(伪分布式)环境搭建就已经成功了,接下来运行一个Hadoop伪分布式实例。因为Hadoop单机模式是运行的本地文件系统,(伪)分布式模式则是运行的HDFS上的数据。我们现在HDFS中创建用户目录,执行目命令./bin/hdfsdfs-mkdir-p/user/hadoop即可,执行如下命令将输入文件复制到分布式文件系统中。
1、#这个可以不执行,因为会自动创建好目录的
2、#./bin/hdfsdfs-mkdirinput
3、./bin/hdfsdfs-putetc/hadoopinput
4、#查看复制到HDFS的文件列表
5、./bin/hdfsdfs-lsinput
接下来运行一个Hadoop自带的mapreduce实例看看效果吧,直接执行如下命令。
1、./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduce-examples-
2、2.9.1.jargrepinputoutput'dfs[a-z.]+'
使用./bin/hdfsdfs-catoutput/*命令查看运行后在HDFS上的输出文件列表,或者使用下面的命令拷贝到本地查看。
1、./bin/hdfsdfs-getoutputoutput
2、./catoutput/*
关闭Hadoop直接使用./sbin/stop-dfs.sh命令即可。
以上是教育直播源码中Hadoop环境搭建的最基本最简单的方法,最好是边看边动手操作一下,这样可以加深印象和理解,更加有利于掌握相关知识点。当然,Hadoop环境搭建还有其他一些方法,也是实际开发中常用的方法,比如基于Yarn、Mesos等资源调度系统搭建、使用Docker搭建等等,有兴趣的朋友们可以尝试一下这些方法,也欢迎留言交流。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。