Ubuntu配置hadoop伪分布式

414 阅读3分钟

  1. 设置免密登录

  伪分布式搭建过程中会涉及各种管理员权限,一次一次输入密码太过麻烦,我们要求各集群间免密码连接

  


  此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示。

  2. 安装Java环境

  见前文

  3. 安装 Hadoop

  安装配置见前文

  4. 伪分布式配置

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

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

  I. 修改core-site.xml

  主要设置tmp的路径和站点,我的hadoop安装路径是/usr/local/hadoop,大家根据个人情况配置

  


  II. 修改hdfs-site.xml

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

  


  5. NameNode 的格式化:

  建议大家可以把hadoop环境变量配置在~/.bashrc中,以后执行命令式不用每次到bin下或者使用绝对路径

  格式化之后系统会读取配置文件,在指定路径下生成对应文件,具体变化可以前往日志文件中查看。

  ./bin/hdfs namenode -format

  如果运行结果中出现/dfs/name has been successfully formatted等字眼或者Exiting with status 0表示成功,linux当中0表示True,否则可能是配置有问题,需要重新编写并格式化(不推荐直接重新格式化,实在需要操作的话尽量先删除之前的数据)

  

O)V5YD2HV}I)@5W(PO09O@V.png


  6. 开启 NameNode 和 DataNode 守护进程。

  可以通过start-dfs.sh直接执行,也可以通过 sbin/hadoop-daemon.sh start name执行

  ./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格

  7. 启动情况查看 :jps

  如果发现DataNode未能启动,可以尝试重启进程或者sbin/hadoop-daemon.sh start datanode手动打开,如果二者过程中皆有异常抛出,建议删除文件重新配置

  

[M1KEZJ]FGH.png


  8. 浏览器查看信息

  成功启动后,可以访问 Web 界面 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。

  

1.png


  9. YARN

  YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性,

  上述通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。

  (伪分布式不启动 YARN 也可以,一般不会影响程序执行)I. 修改mapred-site.xml

  首先修改配置文件 mapred-site.xml,这边需要先进行重命名(在hadoop根目录下)

  


  II. 配置yarn-site.xml

  


  III. 启动yarn

  


  IV. 关闭yarn

  


  10. 利用yarn查看任务运行

  启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是 “mapred.LocalJobRunner”在跑任务,启用 YARN 之后,是 “mapred.YARNRunner”在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况: