linux下hadoop 环境搭建

linux下hadoop 环境搭建,第1张

linux下hadoop 环境搭建
  1. 准备 3台linux 分别hostname为: node-1,node-2,node-3

    vi /etc/sysconfig/network
    HOSTNAME=yourhostname
    
    #保存
    hostname yourhostname
    hostname
    
  2. 安装 JDK 并配置 环境变量

  3. 通过xshell等ssh 工具 查看3台机子的时间是否一致(需通过成一致的时间)

  4. xshell 查看-撰写-撰写窗口-全部会话(可以在敲一遍命名 在所有窗口生效)

  5. Vi /etc/hosts

     127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     192.168.1.220 node-1
     192.168.1.222 node-2
     192.168.1.223 node-3
    
  6. 免密登入配置:

         ssh-keygen -t rsa(4个空格) 
         生成 id_rsa(公钥) id_rsa..pub(公钥)
         cd ~/.ssh/
         scp id_rsa.pub root@ip:/usr/local/
         cd /usr/local/
         cat id_rsa.pub >> ~/.ssh/authorized_keys
    
  7. 解压hadoop安装包tar -zxvf hadoop-3.3.1.tar.gz

  8. vi /usr/local/hadoop-3.3.1/etc/hadoop/hadoop-env.xml
    #配置jdk JAVA_HOME=/usr/local/jdk1.8.0_301

  9. vi /usr/local/hadoop-3.3.1/etc/hadoop/core-site.xml

    	 
    		 
    			fs.default.name 
    			hdfs://node-1:9000 
    		 
    		 ##临时文件存放位置
    		 
    			hadoop.tmp.dir 
    			/home/hadoop/tmp 
    		 
    	
    
    
  10. vi /usr/local/hadoop-3.3.1/etc/hadoop/hdfs-site.xml

       
       	 
       		dfs.replication 
       		2
       	 
       	 
       		dfs.namenode.secondary.http-address 
       		node-2:50090 
       	 	
       	 
       		dfs.datanode.handler.count 
       		50
       	 
       
    
    
  11. vi /usr/local/hadoop-3.3.1/etc/hadoop/mapred-site.xml

       
       	 
       		mapreduce.framework.name 
       		yarn 
       	 
       
    
    
  12. vi /usr/local/hadoop-3.3.1/etc/hadoop/yarn-site.xml

    
    
    	 
    		 yarn.resourcemanager.hostname 
    		 node-1 
    	  
    	 
    	 
    		 yarn.log-aggregation-enable
    		 true
    	 
    	 
    		 yarn.log-aggregation.retain-seconds
    		 604800
    	 
    	 
    	 
    		 yarn.nodemanager.aux-services 
    		 mapreduce_shuffle 
    	 
    
    
    
  13. vi /usr/local/hadoop-3.3.1/etc/hadoop/workers

    node-1
    node-2
    node-3
    
  14. 配置hadoop环境变量(vi /etc/profile)

    export HADOOP_HOME=/usr/local/hadoop-3.3.1
    export PATH=$PATH:$HADOOP_HOME/bin: $HADOOP_HOME/sbin
    
  15. 复制: scp -r /usr/local/hadoop-3.3.1/ root@node-2:/usr/local/

  16. scp -r /usr/local/hadoop-3.3.1/ root@node-3:/usr/local/

  17. 复制: scp –r /etc/profile root@node-2:/etc/

  18. scp –r /etc/profile root@node-3:/etc/

  19. 格式化 hadoop 
    首次启动需要格式化是进行文件系统的初始化 *** 作,创建一些自己需要的文件
    启动后,不在需要格式化
    必须在主节点上(主机器) *** 作
    hdfs namenode -format 或 hadoop namenode -format
    
  20. 一键启动
    主机器 *** 作许配置 slaves 和 ssh 免密登入
    进入 hadoop 下 sbin 文件夹下 start-dfs.sh(sdfs 集群)和 start-yarn.sh(yarn 集群) 或者 start-all.sh(sdfs   和 yarn 集群同时启动)
    //启动历史
    mr-jobhistory-daemon.sh start historyserver 
    启动时报错:
    修改配置21和22
    
  21. 查看启动结果 jps 命令
    13248 NameNode 
    13345 DataNode 
    13610 ResourceManager 
    13757 Jps 
    13711 NodeManager
    
    提示 一下标识成功或者访问 ip:50070 页面
    
  22. 将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

    #!/usr/bin/env bash
    HDFS_DATANODE_USER=root
    HADOOP_SECURE_DN_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
    
  23. start-yarn.sh,stop-yarn.sh

    #!/usr/bin/env bash
    YARN_RESOURCEMANAGER_USER=root
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=root
    
  24. 如果启动后没有datenode节点要删除 core-site.xml中的路径在执行格式化

  25. 通过浏览器http://ip:8080访问页面

  26. java *** 作HDFS

    //连接hdfs
    configuration conf =new Configuration();
    conf.set(fs.defaultFs,"hdfs://node-1:9000")
    
    //设置用户身份
    方式1:System.setProperty("HADOOP_USER_NAME","root")
    方式2:FileSystem fs=FileSystem.get(new URI("hdfs://node-1:9000"),conf,"root");
    FileSystem fs=FileSystem.get(conf);
    // *** 作
    fs.xxxx()
    fs.close()
    ---------------------------获取遍历文件--------
    RemoteInterator list=fs.listFIles(path,true);
    while(list.hasnext()){LocatedFIleStatus f=list.next()};
    --------------------------上传文件流 *** 作---------------------------------------------
    FSDataOutputStream out=fs.create(new Path(文件),true);
    FIleInputStream in=new FIleInputstream("D://文件");
    IOUtils.copy(in, out  );
    ---------------------------------------------------------------------------------
    

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5688602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存