企业大数据来源 1.企业内部 **日志文件 **数据库 **用户行为数据 2.企业外部 爬虫 第三方购买(蚂蚁数据银行)--贵阳 大数据=海量数据+复杂类型的数据 hadoop是由谷歌的三篇论文 《mapreduce》 --》mapreduce 分布式离线并行计算框

架 GFS ——————》HDFS 分布式文件存储

系统 bigtable ————》 HBASE 分布式数据库

Hadoop四大核心模块 common 为其他模块提供基础设施 hdfs 分布式文件存储系统 mapreduce 分布式离线并行计算框架 分为两个阶段 map reduce yarn 任务管理 资源调度 一个新的框架,2.0之后产生的一个全新的框架(将任务

调度资源管理与mappreduce分离) HDFS namenode(一台) 主从结构, 存储的是元数据,包括,文件类型属性,名称等

    datanode(多台)
             可以存储不同的是数据块(block)每一个数据块默认大小(128M

)这个参数可以自定义

            apache  
                    hadoop。apache.org
                    
            google                
            hadoop功能
                    **数据存储
                    **数据计算模型
    文件系统,fat32 ntfs  ext4
    软件版本  0.2
    1.0
    2.0   2.5 
    3.0
    HDFS组成
            一台namenode 服务器
                    存储元数据
            和多台datanode 服务器 
                    存储真实数据()
    主从结构
                    一台namenode
                    
                    多台datanode
                    
                    一个文件上传  呗分割为 多个数据块  每个数据块 默认

大小 128M hdfs 功能: namenode 主节点,存放文件元数据,文件名 文

件目录 结构,文件属性 datanode 存储在本地的文件数据,数据块校验 yarn resourcemanage 任务调度资源管理 nodemanager 节点管理服务 任务管理 资源调度 1.客户端 向 resourcemanager提交任务 2 resourcemanager向namenode 分配一个 applicationManager,

并找到一个容器生成一个 MR appmatr 3该应用的管理者 向resourcemanager申请资源 4资源申请完毕,找到nodemanager将容器中的 MRappmstr

启动起来 5map 和reduce 任务启动 6mapreduce 程序启动 都要向 MRappmstr提交信息 7程序结束,应用的管理者都要向 resourcemanager提交信息

mapreduce 计算分为两个阶段 map 文件上传被分割程 多个任务, shuffer
reduce 将map的结果输出 系统安装 1,创建虚拟机选择磁盘 不能小于50G 2.安装类型 桌面 3.分区默认 为分布式 准备环境 1, 设置网卡 ip为静态的 vi /etc/sysconfig/network-scripts/ifcfg-eth0

                    DEVICE=eth0

TYPE=Ethernet UUID=b17e5d93-cd31-4166-827f-18cf14586777 ONBOOT=yes #把网卡设置成开机启动 NM_CONTROLLED=yes BOOTPROTO=static DHCP改成static HWADDR=00:0C:29:88:2A:28 IPADDR=192.168.30.100 PREFIX=24
GATEWAY=192.168.30.2 DNS1=192.168.30.2 DNS2=202.96.209.5 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" 2. 设置DNS vi /etc/sysconfig/network-scripts/ifcfg-eth0

            DNS1=192.168.30.2
    DNS2=202.96.209.5
       把网络服务重启  service network restart
      3.设置主机名
      vi /etc/sysconfig/network
      hadoop-senior.beifeng.com
     4.关闭防火墙
  禁用linux中的安全子系统,是在selinux文件中
   路径/etc/sysconfig/selinux
   1.首先将selinux=disabled
   [root@java15 ~]# vi /etc/sysconfig/selinux           
             selinux=disabled
       2.关闭防火墙
         [root@java15 ~]# service iptables stop
       3.设置防火墙开机不启动
          [root@java15 ~]# chkconfig iptables off
       4.查看防火墙是否完全关闭
          [root@java15 ~]# service iptables status
              iptables: Firewall is not running.

5.添加主机名映射 [root@hadoop-senior ~]# vi /etc/hosts 192.168.30.100 hadoop-senior.xiaoping.com

windows C:\Windows\System32\drivers\etc 6.设置普通用户 方便后期使用,后期的所有操作都使用普通用户 useradd xiaoping

echo 123456 | passwd --stdin xiaoping

安装jdk su -root 切换root用户创建 # mkdir /opt/modules/ 用于软件安装的目录 # mkdir /opt/softwares/ 用于软件下载目录 # chown beifeng:xiaoping /opt/modules/ # chown beifeng:xiaoping /opt/softwares/ hadoop-2.5.0.tar.gz #su xiaoping 切换xiaoping用户下 解压jdk $ tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/modules/ 配置 jdk环境变量 /opt/modules/jdk1.7.0_67 # vi /etc/profile 用root用户 ##JAVA_HOME JAVA_HOME=/opt/modules/jdk1.7.0_67 export PATH=$PATH:$JAVA_HOME/bin

    卸载系统自带的jdk、
    # rpm -qa |grep -i java
    # rpm -e --nodeps tzdata-java-2012j-1.el6.noarch 
    # rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-

1.50.1.11.5.el6_3.x86_64 # rpm -e --nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64

    # vi ~/.bashrc    普通用户环境配置可以选择不配
  ##JAVA_HOME
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
 $ source /etc/profile
   更新文件  
     # source  ~/.bashrc
    安装hadoop
    #tar -zxvf hadoop-2.5.0-cdh5.3.6.tar\(1\).gz  -C /opt/modules/

hadoop安装包下的配置文件所在目录 /opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop

    配置hadoop环境变量

hadoop-env.sh mapred-env.sh yarn-env.sh 三个全部修改javahome export JAVA_HOME=/opt/modules/jdk1.7.0_67

修改 core-site.xml <!--hdfs默认访问入口--> <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop-senior.beifeng.com:8020</value> </property> <!--存放hadoop 运行产生临时数据的目录--> <property> <name>hadoop.tmp.dir</name> <value>/opt/modules/hadoop-2.5.0-cdh5.3.6/data</value> </property> </configuration>

    修改slaves文件  --》指定那台服务器是datanode
    hadoop-senior.beifeng.com   比如三台主机 每行一个主机名or ip
    hadoop-senior.beifeng1.com
    hadoop-senior.beifeng2.com

hdfs-site.xml <!--设置副本数为1个副本-->副本数不能大于主机个数(hdfs当节点不切换文件,集

群会) <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> 格式化文件系统 $ bin/hdfs namenode -format 启动namenode 和datanode 服务 $ sbin/hadoop-daemon.sh start namenode 启动namenode $ sbin/hadoop-daemon.sh start datanode 启动datanode 查看服务进程 [beifeng@hadoop-senior hadoop-2.5.0]$ jps 10031 Jps 9954 DataNode 9845 NameNode $ bin/hdfs dfs -mkdir /input 创建文件夹在hdfs上 $ bin/hdfs dfs -put /opt/modules/yy.txt /input 上传文件 $ bin/hdfs dfs -cat /input/yy.txt 查看文件

配置 yarn
资源管理,任务调度 yarn-env.sh mapred-env.sh 环境变量: export JAVA_HOME=/opt/modules/jdk1.7.0_67

    **resourcemanager
    **nodemanager

yarn-site.xml

<!--NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行

MapReduce程序--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--resourcemanager提供给客户端的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop-senior.beifeng.com</value> </property>

    mapred-site.xml

<!--mapreeduce 运行在yarn上--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> 启动yarn $ sbin/yarn-daemon.sh start resourcemanager $ sbin/yarn-daemon.sh start nodemanager 浏览器 http://hadoop-senior.beifeng.com:8088/cluster 利用官方自带jar包进行文件的单词统计 $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-exam ples-2.5.0.jar wordcount /input/ /output

$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-

cdh5.3.6.jar wordcount /input/ /output

查看统计结果 $ bin/hdfs dfs -cat /output/par*

配置日志服务器 yarn-site.xml <!--启动日志聚合功能--> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!--日志保存时间毫秒--> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>86400</value> </property>

mapred-site.xml <!--进程通信--> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop-senior.beifeng.com:10020</value> </property> <!--客户端访问入口--> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop-senior.beifeng.com:19888</value> </property>

重启yarn $ sbin/yarn-daemon.sh stop resourcemanager $ sbin/yarn-daemon.sh stop nodemanager $ sbin/yarn-daemon.sh start resourcemanager $ sbin/yarn-daemon.sh start nodemanager 启动historyserver服务 $ sbin/mr-jobhistory-daemon.sh start historyserver $ bin/yarn jar share/hadoop/mapreduce/hadoop-ma preduce-examples-2.5.0.jar wordcount /input/ /output1 源文件分隔符\t input表示输入路径 output表示输出路径 必须是不存在的 都是HDFS里面的路径 解决警告: 替换native包 将native压缩包解压至/opt/modules/hadoop-2.5.0/lib 替换原来的native

问题: 用户操作的问题 不要用root用户启动服务 切换普通用户的时候记得去虚拟机查看是否已经切换普通用户 /opt目录下 的两个文件夹 一定是属于普通用户的 编辑配置文件的时候 notepad 用普通用户去登陆操作, 虚拟机环境问题 防火墙 网关 ip 主机名本地hosts文件添加映

查看日志信息 tail -n50查看后五十行日志信息 /opt/modules/hadoop-2.5.0/logs $ tail -n50 hadoop-beifeng-namenode-hadoop-senior.beifeng.com.log