Hadoop测试

来源:互联网 发布:地图指南针软件 编辑:程序博客网 时间:2024/05/17 06:41
  • 启动集群
    1. 在master上启动hadoop-daemon.sh start namenode
    2. 在slave上启动hadoop-daemon.sh start datanode
    3. 用jps指令观察执行结果
    4. 用hdfs dfsadmin -report观察集群配置情况
    5. hadoop fs -rm /filename
    6. 通过http://192.168.56.100:50070/web界面观察集群运行情况
    7. 用hadoop-daemon.sh stop ...手工关闭集群
  • 对集群进行集中管理
    1. 修改master上/etc/hadoop/slaves文件,每一个slave占一行
      slave1slave2slave3
    2. 使用start-dfs.sh启动集群,并观察结果
    3. 使用stop-dfs.sh停止集群
    4. 配置免密SSH远程登陆
      ssh slave1输入密码exit#此时需要密码才能登陆cdls -lacd .sshssh-keygen -t rsa (四个回车)#会用rsa算法生成私钥id_rsa和公钥id_rsa.pubssh-copy-id slaveX再次ssh slave1此时应该不再需要密码
    5. 重新使用start-dfs.sh启动集群
  • 修改windows机上C:\Windows\System32\drivers\etc\hosts文件,可以通过名字访问集群web界面
  • 使用hdfs dfs 或者hadoop fs命令对文件进行增删改查的操作
    1. hadoop fs -ls /
    2. hadoop fs -put file /
    3. hadoop fs -mkdir /dirname
    4. hadoop fs -text /filename
    5. hadoop fs -rm /filename
  • 通过网页观察文件情况
  • 将hdfs-site.xml的replication值设为2,通过网页观察分块情况
  • 设定dfs.namenode.heartbeat.recheck-interval为10000,然后停掉其中一台slave,观察自动复制情况
  • 启动停掉的slave节点,通过网页观察datanode的动态添加
  • 添加新的节点,体会hadoop的横向扩展
    1. 启动slave4,关闭防火墙,修改hostname
    2. 修改etc/hosts,加入对自己以及其他机器的解析,重启网络
    3. 在master中设定对于slave4的解析
    4. 启动slave4的datanode,通过网页进行观察
    5. hdfs dfsadmin –shutdownDatanode slave4:50020
  • 通过java程序访问hdfs,就把HDFS集群当成一个大的系统磁盘就行了!
  • 从HDFS中读取文件
    URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());InputStream in = new URL("hdfs://192.168.56.100:9000/test.data").openStream();IOUtils.copyBytes(in, System.out, 4096, true);
  • 学习使用FileSystem类
    Configuration conf = new Configuration();conf.set("fs.defaultFS", "hdfs://192.168.56.100:9000");FileSystem fileSystem = FileSystem.get(conf);boolean b = fileSystem.exists(new Path("/hello"));System.out.println(b);boolean success = fileSystem.mkdirs(new Path("/mashibing"));System.out.println(success);success = fileSystem.delete(new Path("/mashibing"), true);System.out.println(success);FSDataOutputStream out = fileSystem.create(new Path("/test.data"), true);FileInputStream fis = new FileInputStream("c:/test/core-site.xml");IOUtils.copyBytes(fis, out, 4096, true);FileStatus[] statuses = fileSystem.listStatus(new Path("/"));//System.out.println(statuses.length);for(FileStatus status : statuses) {System.out.println(status.getPath());System.out.println(status.getPermission());System.out.println(status.getReplication());}
  • 思考百度网盘的实现方式?
  • core-site做什么用?hdfs-site做什么用?
原创粉丝点击