Linux进阶命令:
 find .
 | ls --help | more
 grep ll | grep 1.txt
  grep -ri  BASH 1.txt
  grep -ri BASH
 xargs cp 1.txt 2.txt 3.txt ddd
  grep -ril BASH | cp `xargs` ddd
  grep -ril BASH | xargs cp ddd
Linux系统命令:
 
 ps -Af  //列出所有进程 ps -ef
 netstat -anop //列出所有网络进程
 nano 1.txt & //将nano 1.txt放在后台
 jobs  //查看进程
 fg %1  //将1号进程放在前台运行
 bg %1  //后台
 kill [-9] PID //
 wc  //单词统计
 df -lh  //查看磁盘空间
 free -h  //查看内存状态
nc:
 网络工具 //瑞士军刀
 服务端:nc -lp 8888
 客户端:nc localhost 8888
 
大数据和hadoop:
 大数据:
  海量数据的处理和分析的技术 //存储和计算
 云服务:
  将资源整合到虚拟化平台,对外提供服务 
 
 分布式存储:
 分布式计算:
 分布式:
  多个主机的进程协同在一起,构成整个应用
 
hadoop:
 
 大数据存储和计算工具:
  
 HDFS:hadoop distributed filesystem 分布式存储工具
 MapReduce:    分布式计算框架
 
运行hadoop的Demo:
 1、启动hadoop:
  start-all.sh
 2、jps查看进程
  
 3、打开hadoop的WebUI:
  192.168.23.100:50070 
 4、hdfs上传数据:
  hdfs dfs -put 1.txt /
 5、运行wordcount单词统计
  1)切换到指定目录
   cd /soft/hadoop/share/hadoop/mapreduce/
  2)运行程序
   hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /1.txt /out
  3)查看输出文件
   hdfs dfs -cat /out/part-r-00000
  
页面打不开:
 
 1、进程没启动:jps查看是否存在Namenode进程
 2、Centos防火墙是否启动:需要关闭并禁用防火墙
  systemctl status firewalld
 3、不要使用windows自带浏览器
hadoop完全分布式搭建:
==========================================
 1个master
 3个slave
 8G内存:1 1 1 1
 12G内存:2,1.5,1.5,1.5
 16G内存:2,2,2,2
 1、克隆主机s101-s104
  1)关闭虚拟机,首先关闭hadoop进程
   $> stop-all.sh
   然后关闭
  2)克隆主机 ====> 链接克隆
  CentOS-7-x86_64-Minimal-1611-s101
  CentOS-7-x86_64-Minimal-1611-s102
  CentOS-7-x86_64-Minimal-1611-s103
  CentOS-7-x86_64-Minimal-1611-s104
 2、修改主机名+静态ip(s101-s104)
  主机名:
   /etc/hostname
  静态ip:
   /etc/sysconfig/network-scripts/ifcfg-ens33
  查看ip:
   ifconfig
  查看主机名
   hostname
  1)修改主机名:
   sudo nano /etc/hostname ====> s101
  2)修改静态ip:
   sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33  ====> IPADDR=192.168.23.101
  3)重启centos:
   reboot
 
 2.5、设置hosts
  /etc/hosts
  sudo nano /etc/hosts,添加
  192.168.23.101  s101
  192.168.23.102  s102
  192.168.23.103  s103
  192.168.23.104  s104
  
  
 3、配置ssh免密登陆(s101)
  
  s101 -> s102 s103 s104
  1)在s101生成公私密钥对
   ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  2)配置免密登陆
   ssh-copy-id centos@s101
   ssh-copy-id centos@s102
   ssh-copy-id centos@s103
   ssh-copy-id centos@s104
  3)验证方式:
   ssh s102
   exit
 4、配置文件:s101
  scp使用:
  
   scp 1.txt centos@s102:~
       原文件 远程主机:路径
   scp -r //拷贝文件夹
  1)修改符号链接,将hadoop指向full
   cd /soft/hadoop/etc
   ln -sfT full/ hadoop
  2)配置文件:cd hadoop
   core-site.xml
   ================================
   <?xml version="1.0" encoding="UTF-8"?>
   <configuration>
    <property>
     <name>fs.defaultFS</name>
     <value>hdfs://s101:8020</value>
    </property>
    <property>
     <name>hadoop.tmp.dir</name>
     <value>/home/centos/hadoop</value>
    </property>
   </configuration>
   hdfs-site.xml
   ======================================
   <?xml version="1.0" encoding="UTF-8"?>
   <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
   <configuration>
    <property>
     <name>dfs.replication</name>
     <value>3</value>
    </property>
   </configuration>
 
   mapred-site.xml
   ====================================
   <?xml version="1.0"?>
   <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
   <configuration>
    <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
    </property>
   </configuration>
 
   yarn-site.xml
   ===================================
   <?xml version="1.0"?>
   <configuration>
    <property>
     <name>yarn.resourcemanager.hostname</name>
     <value>s101</value>
    </property>
    <property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
    </property>
   </configuration>
    hadoop-env.sh
    ==================================
    将25行改为
    export JAVA_HOME=/soft/jdk
   
    slaves
    ===============================
    将localhost改为:
    s102
    s103
    s104
  3)分发配置文件:s101
   
   scp -r /soft/hadoop/etc/full/ centos@s102:/soft/hadoop/etc/
   scp -r /soft/hadoop/etc/full/ centos@s103:/soft/hadoop/etc/
   scp -r /soft/hadoop/etc/full/ centos@s104:/soft/hadoop/etc/
  4)修改s102-s104的符号链接:s101
   
   ssh s102 "ln -sfT /soft/hadoop/etc/full/ /soft/hadoop/etc/hadoop"
   ssh s103 "ln -sfT /soft/hadoop/etc/full/ /soft/hadoop/etc/hadoop"
   ssh s104 "ln -sfT /soft/hadoop/etc/full/ /soft/hadoop/etc/hadoop"
  
  5)同步hosts文件,注意需要输入密码
   
   scp /etc/hosts root@s102:/etc
   scp /etc/hosts root@s103:/etc
   scp /etc/hosts root@s104:/etc
  6)格式化文件系统
   s101 $> hdfs namenode -format
  7)启动hadoop
   s101 $> start-all.sh
  8)验证安装:jps
   s101:
    NameNode
    SecondaryNameNode
    ResourceManager
   s102-s104:
    NodeManager
    DataNode
  
 
HDFS端口:50070
MR端口:8088
hadoop细节:
===================================
 
 
    Common: hadoop工具模块,存放hadoop的一些依赖
    hdfs: hadoop分布式文件系统
    YARN: hadoop资源调度框架
   
    MapReduce: 基于yarn的分布式计算框架
    start-all.sh
     
 hdfs:
  namenode  //名称节点,在master上,负责存储hdfs文件的元数据 
  datanode  //数据节点,在slave上,负责存储真实数据
  secondarynamenode //辅助名称节点,用作检查点
 yarn:
  resourcenmanager //资源管理器,在master上,负责资源调度
  nodemanager  //节点管理器,在slave上,负责计算数据
 
hadoop配置文件分析:
==============================
 core-site.xml
 ------------------------------------------
  fs.defaultFS  //声明namenode的地址,相当于声明hdfs文件系统
  hadoop.tmp.dir  //声明hadoop工作目录的地址
 hdfs-site.xml
 -------------------------------------------
  dfs.replication  //软件级备份
 
 mapred-site.xml
 ---------------------------------------------
  mapreduce.framework.name //local  本地
      //mapred hadoop一代执行框架
      //yarn  二代执行框架
 yarn-site.xml
 -------------------------------------------
  yarn.resourcemanager.hostname //指定资源管理器(resourcemanager)的主机名
  yarn.nodemanager.aux-services //指定nodemanager使用shuffle
 slave文件:
 ========================================
  指定slave的主机名或ip
  在master节点通过slave文件,使用ssh命令启动slave节点的进程
 
hadoop基本命令:
======================================
 hdfs dfs -touchz /2.txt
 hdfs dfs -put 1.txt /
 hdfs dfs -get /2.txt .
 hdfs dfs -rmr /2.txt
 hdfs dfs -cat /2.txt
 hdfs dfs -ls /   //hdfs dfs -lsr / 列出文件夹
 列出文件,指定文件系统
 hdfs dfs -ls file:///home/centos
 
hadoop启动脚本分析:
=========================================
 start-all.sh
  
  start-dfs.sh
   //启动hdfs进程
   //namenode
   //datanode
   //secondarynamenode
  start-yarn.sh
   //启动yarn进程
   //resourcemanager
   //nodemanager
 hdfs getconf -namenodes  //获取namenode主机名
 hadoop-daemons.sh --hostnames s101 start namenode //单独启动namenode脚本
 hadoop-daemons.sh  start datanode   //单独启动datanode进程
 hadoop-daemons.sh --hostnames s101 start secondarynamenode //单独启动2nn脚本
 yarn-daemon.sh  start resourcemanager
 yarn-daemons.sh  start nodemanager
 hadoop-daemons.sh == ssh sxxx hadoop-daemon.sh
 hadoop-daemon.sh
 
 单独启动进程:
  hadoop-daemon.sh start namenode | datanode | secondarynamenode
  hadoop-daemon.sh stop namenode | datanode | secondarynamenode
  yarn-daemon.sh start resourcemanager | nodemanager
  yarn-daemon.sh stop resourcemanager | nodemanager
 
 
hdfs上传数据失败:
================================
 1、查看WebUI(192.168.23.101:50070)查看datanode是否存在
 2、查看s102-s104防火墙是否启动
datanode启动失败:
====================================
 删除启动失败节点的 /home/centos/hadoop/dfs/data目录,再次启动即可
namenode启动失败:s101
======================================
 查看/home/centos/hadoop是否存在
 1、存在 ===> 删除,并重新格式化
 2、不存在,或者存在且是非文件夹形式 ====> 删除,并重新格式化
 
创建myhadoop模块,并通过hadoopAPI实现文件读取
=========================================================
 1、将模块添加maven框架支持
 2、在pom.xml中添加以下依赖
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
     3、编写代码
     @Test
     public void testRead() throws IOException {
  Configuration conf = new Configuration();
  //代码入口点,初始化HDFS文件系统
  FileSystem fs = FileSystem.get(conf);
  //通过fs读取数据
  Path p = new Path("hdfs://s101:8020/1.txt");
  FSDataInputStream fis = fs.open(p);
  int len = 0;
  byte[] buf = new byte[1024];
  while((len = fis.read(buf)) != -1){
      System.out.println(new String(buf, 0, len));
  }
     }
  4、在项目的resources文件夹新建core-site.xml,并将Linux中的core-site.xml配置粘贴上去
   <?xml version="1.0" encoding="UTF-8"?>
  <configuration>
      <property>
   <name>fs.defaultFS</name>
   <value>hdfs://s101:8020</value>
      </property>
      <property>
   <name>hadoop.tmp.dir</name>
   <value>/home/centos/hadoop</value>
      </property>
  </configuration>
 5、运行代码观察输出结果
  
 
 
 
 
 
 
 
 
   
  
 
 
 
  
 
 
 
 
 

linux进阶与hadoop的更多相关文章

  1. 在Linux上安装Hadoop

    先决条件: Hadoop是用JAVA写的,所以首先要安装Java.在Ubuntu上安装JDK见:http://blog.csdn.net/microfhu/article/details/766739 ...

  2. Linux环境搭建Hadoop伪分布模式

    Hadoop有三种分布模式:单机模式.伪分布.全分布模式,相比于其他两种,伪分布是最适合初学者开发学习使用的,可以了解Hadoop的运行原理,是最好的选择.接下来,就开始部署环境. 首先要安装好Lin ...

  3. 大数据学习之Linux进阶02

    大数据学习之Linux进阶 1-> 配置IP 1)修改配置文件 vi /sysconfig/network-scripts/ifcfg-eno16777736 2)注释掉dhcp #BOOTPR ...

  4. Linux环境下Hadoop集群搭建

    Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...

  5. Linux进阶指令(重点)

    三.Linux进阶指令(重点) 1.df指令    作用:查看磁盘的空间 #df -h 选项:-h    表示以可读性较高的形式展示大小 2.free指令     作用:查看内存使用情况 #free ...

  6. 三台linux集群hadoop,在此上面运行hive

    ---恢复内容开始--- 一,准备 先有三台linux,对hadoop集群的搭建. eddy01:开启一个hdfs的老大namenode,yarn的老大ResourceManager其中进程包括(No ...

  7. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建

    Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...

  8. Linux 下搭建 Hadoop 环境

    Linux 下搭建 Hadoop 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 Hadoop 环境 CSDN:Linux 下搭建 Hadoop 环境 环境要求 操作系统:CentOS ...

  9. Linux基础(05)、Linux进阶命令

    目录 一.进阶命令 二.系统命令 三.压缩和归档 3.1.归档 3.2.压缩 3.3.归档并压缩 归档.接档:tar -cf.tar -tvf 压缩.解压:gzip.gunzip 归档并压缩:tar ...

随机推荐

  1. Windows10安装MySQL8.0

    1.到MySQL官网下载安装包:https://dev.mysql.com/downloads/mysql/:选择8.0版本: 2.将下载好的安装包(mysql-8.0.12-winx64 .zip) ...

  2. 修改selinux出现setsebool: SELinux is disabled.的解决方法

    1.vi /etc/vsftpd/vsftpd.conf # You may specify an explicit list of local users to chroot() to their ...

  3. 【转】VC 模式对话框和非模式对话框的创建,销毁和区别

    原文网址:http://blog.csdn.net/mycaibo/article/details/6002151 VC 模式对话框和非模式对话框的创建,销毁和区别   在WIN32中,模式对话框的创 ...

  4. Web 漏洞分析与防御之 CSRF(二)

    原文地址:Web 漏洞分析与防御之 CSRF(二) 博客地址:http://www.extlight.com 一.全称 跨站请求伪造(Cross-site Request Forgery) 二.原理 ...

  5. 关于2B的转义问题

    最近碰到了一个中文乱码问题,话说是这样的:模块A调模块B的1接口,B把A带过来的用户ID加密后返回一个链接,当用户点击该链接时,A解密该用户ID后再调B的2接口.简而言之,我们用流程看下:模块A -& ...

  6. 封装与继承(PHP学习)

    什么是封装? 答:封装时不知道内部构造,对外部只展现功能的这种行为.例如:收音机,你不知道收音机内部的构造,但是你知道收音机是能用来听广播的. 在PHP中,封装是,不对外公布,属性和方法,这些属性和方 ...

  7. 洛谷八连测R4

    1.逃避 https://www.luogu.org/problemnew/show/T14561 注意: 1.输入时需要用EOF判断,否则会TLE. 2.用flag判断字符是不是每一句首字母. 3. ...

  8. jq from表单 取值

    //获取表单参数 var DataDeal = { formToJson: function (id) { var data=$(id).serialize();//获取值 data = decode ...

  9. 报错:Can't find a source file at "xxxxx“Locate the file or edit the source lookup path to include its location.

    调试问题: Can't find a source file at "/tmp/TI_MKLIB6sLCzz/SRC/exit.c" Locate the file or edit ...

  10. Java-Runoob-高级教程:Java 发送邮件

    ylbtech-Java-Runoob-高级教程:Java 发送邮件 1.返回顶部 1. Java 发送邮件 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 Java ...