BigData_lab1 - AmethyQian/AVFoundation-Programming-Guide GitHub Wiki

大数据综合处理第一次实验 实验报告

学号:131220169 姓名:汪倩雯 邮箱:[email protected]

实验内容 本次实验正确的安装和配置了单机和伪分布式hadoop系统,并且用两个简易txt测试文件测试了wordcount程序,能够产生正确的输出结果。

实验过程 1.安装ssh 分别运行命令

  1. sudo apt-get install openssh-server
  2. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  3. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 安装配置完成,使用以下命令登录
  4. ssh localhost 登陆成功会有如下信息:

2.安装java和hadoop 从java和hadoop官网下载,并将其解压放在home目录下。

3.配置环境变量 建立一个配置文件

  1. vim ~/.bash_profile 设置环境变量
  2. PATH=$PATH:$HOME/bin
  3. export JAVA_HOME=/home/amethyqian/jdk1.8.0_77
  4. export HADOOP_HOME=/home/amethyqian/hadoop-0.20.205.0
  5. export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
  6. export CLASSPATH=$JAVA_HOME/lib:. 使用如下命令让配置文件生效,并测试是否配置成功。
  7. source ~/.bash_profile
  8. java –version 每次重开虚拟机时都要运行一下source文件来使配置文件生效,否则无法使用java。

4.配置hadoop 在hadoop文件夹中建立一个新文件夹tmp,里面创建两个新文件夹name和data,方便配置hadoop。修改conf文件夹中的文件: hadoop-env.sh:Hadoop环境变量设置

  1. export JAVA_HOME=/home/amethyqian/jdk1.8.0_77 core-site.xml:主要完成NameNode的IP和端口设置
  2.  <property>
    
  3.      <name>fs.default.name</name>
    
  4.      <value>hdfs://localhost:9000</value>
    
  5.  </property>
    
  6.  <property>
    
  7.      <name>hadoop.tmp.dir</name>
    
  8.      <value>/home/amethyqian/hadoop-0.20.205.0/tmp</value>
    
  9.  </property>
    

hdfs-site.xml:主要完成HDFS的数据块副本等参数设置

  1.  <property>
    
  2.      <name>dfs.replication</name>
    
  3.      <value>1</value>
    
  4.  </property>
    
  5.  <property>
    
  6.      <name>dfs.name.dir</name>
    
  7.      <value>/home/amethyqian/hadoop-0.20.205.0/hdfs/name</value>
    
  8.  </property>
    
  9. <property>
    
  10.     <name>dfs.data.dir</name>
    
  11.     <value>/home/amethyqian/hadoop-0.20.205.0/hdfs/data</value>
    
  12. </property>
    

mapred-site.xml:主要完成JobTrackerIP和端口设置

  1.  <property>
    
  2.      <name>mapred.job.tracker</name>
    
  3.      <value>localhost:9001</value>
    
  4.  </property>
    

5.格式化namenode 执行Hadoop的bin文件夹中的格式化命令:

  1. hadoop namenode –format 如果格式化成功,会返回一堆有关NameNode的启动信息,其中会有一句“…. has been successfully formatted.”

6.启动HDFS和mapreduce 启动命令: start-all.sh 用jps命令检查是否正常启动,如正常启动则会有如下进程信息:

创建测试文件夹

  1. hadoop dfs –mkdir input 可以用以下命令查看创建的文件夹和文件
  2. hadoop dfs –ls 在本地创建测试文本本件,将文件复制到hdfs文件系统中
  3. hadoop dfs –copyFromLocal [location1] [location2] location1为本地文件地址,location2为hdfs系统中的输入文件夹名称 运行Wordcount
  4. hadoop jar ~/hadoop-0.20.205.0/hadoop-examples-0.20.205.0.jar wordcount input output 在浏览器中打开hadoop管理界面http://localhost:50030,可以查看到任务列表

要注意的是,output文件夹是要在运行过程中创建的,不能提前创建也不能被覆盖,所以在每次运行wordcount之前要先将hdfs文件系统中删除output文件夹再运行。 查看hadoop dfs状态http://localhost:50070/

用以下命令查看结果

  1. hadoop dfs –cat output/*

运行结束后,用以下命令关闭hadoop

  1. stop-all.sh

实验问题 遇见一些配置环境变量的时候路径不正确的小问题,但是很好解决,比较麻烦的问题是,在第一次jps时只列出了五个进程,缺少datanode进程。不知道错误为什么会发生,也不知道该怎么调试,经同学指导,可以查看日志来调试,于是查看log发现有一条warning信息:

表明data文件夹的权限错误,所以去掉w权限即可。

  1. chmod a – w /home/amethyqian/hadoop-0.20.205.0/hdfs/data

实验体会 大数据实验能够在课上获得的参考资料以及从老师助教处得到的指导个人感觉非常少,主要还是在网上查资料以及和同学讨论来解决问题,会比较吃力。另外,查看日志是很有效的调试方法,比盲目调试的效率高,今后会多多使用。

⚠️ **GitHub.com Fallback** ⚠️