随笔

开发所需软件下载地址

HDFS读写过程
HDFS Client向NameNode发送请求(读取哪些数据),并得到元数据,调用FileSystem的open函数通过RPC向NameNode发送请求,打开文件。

  • 卸载不符的Java版本
查看软件
rpm -qa | grep java
卸载软件
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 tzdata-java-2012j-1.el6.noarch java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
安装软件
rpm -ivh xxx.rpm

vim /etc/profile
新增:
# JAVA_HOME
JAVA_HOME=/data/hd/jdk1.7.0_79
PATH=$PATH:$JAVA_HOME/bin
生效:
source /etc/profile
  • 添加用户
useradd deanyuan
passwd deanyuan
su deanyuanroot用户下改变文件所属用户
chown -R deanyuan:deanyuan hadoop-2.5.0
  • 配置hostname、hostname与ip的映射关系
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master.deanyuan.com

vim /etc/hosts
192.168.114.131 master.deanyuan.com master
vim  /data/hd/hadoop-2.5.0/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/data/hd/jdk1.7.0_79

本地模式:mapreduce程序可以运行在本地,方便测试

 mkdir -p /data/hd/hadoop-2.5.0/input
 运行:
 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar grep input output 'dfs[a-z.]+'
 bin/hadoop jar jar包所在目录 哪个程序 文件输入路径 文件输出路径 参数

伪分布式模式
分布式模式

Hive
压缩:snappy

hadoop编译:
1. 安装snappy库:谷歌快速压缩库
2. 编译hadoop源码: mvn package -Pdist,native -DskipTests -Dtar -Drequire.snappy(官方文档中找到的)

input -> map -> shuffle -> reduce -> output
对map输出的数据进行压缩
数据压缩优点:

    数据量小
    减少本地磁盘IO流
    减少网络的IO流

压缩好处:

IO流
减少网络传输大小
提高job性能
压缩格式支持可分割的

hive中的数据存储
文件的存储格式
常用:textfile、orc、parquet

数据存储:

按行存储
按列存储

hive企业优化
FetchTask
大表拆分:子表
创建一张表通过查询语句

外部表、分区表
结合使用、多级分区

数据
数据格式
数据压缩

SQL优化

select e.a d.h from (select .. from e where e.filter) e join (select .. from d where d.filter) d on (e.deptno = d.deptno)

select e.a d.h from e join  d on (e.deptno = d.deptno)

join 优化

Common/Shuffle/Reduce Join (最常见:大表对大表)
    连接发生的阶段,发生在 Reduce Task
    每个表的数据都是从文件中读取的
Map Join(大表对小表,小表对大表)
    连接发生的阶段,发生在 Map Task
    大表的数据是从文件中读取
    小表的数据内存中
    DistributedCache
SMB Join
     sort merge bucket
     数据平均分到那个里

数据倾斜

执行计划:

explain sql语句

高级优化:

并行执行
    parallel  10~20之间
JVM重用
    可以让一个容器内,运行多个mapreduce任务,不超过9个,速度提高2/3
Reduce数据设置
    是由人为决定,实际中最好测试
推测执行
    specluative.execution 在写hive时,应该把它关闭
map数据
    由块大小决定

动态分区调整

场景:
    有张日志表,4、50G数据
src表

表的类型,外部表,分区表(month、day)
ip表
    /month=2017-06/day=18
page表

refer表

前端数据入库
    src表
        load data ...
    分区表:
        load data path '' into table name partition(month='2017-06',day='20');
原表
针对不同的业务创建不同的子表
    数据存储格式 orcfile/parquet
    数据压缩 snappy
    map output 数据压缩 snappy
    外部表
    分区表 

定义UDF,对原表数据进行清洗
第一个udf
去掉引号
add jar /jar包所在路径
list jars

kafka作用:
解耦

Flume 文件收集框架
Cloudera开发的框架,实时收集数据

flume.apache.org

kafka/flume + storm/spark(spark streming)

Azkaban
http://azkaban.github.io/
Oozie
http://oozie.apache.org
数据仓库
Zeus:与Oozie比,有监控界面

yum源配置
出现错误
公钥私钥
Retrieving key from http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

hbase深入使用
hadoop数据库: 存储数据,检索数据
与RDBMS相比:海量数据,检索速度

设计好hbase表,百亿条中秒级查询
基于hdfs之上,数据安全性,普通商用PC Server

zookeeper
Hmaster
HRegionserver
NameNode
DataNode

rowkey(表设计的关键)
table
columnfamily
column(qualifier)

列式存储的数据库,NoSQL数据库
not only sql
NEWSQL

默认情况,创建一个表时,会给一个表创建一个Region
startkey

endkey

数据检索的三种方式:
get rowkey 速度最快
scan range 使用的最多
scan 没人用

HBase 数据存储

finally

PrefixFilter
PageFilter

Scan时的参数
setCacheBlocks(cacheBlocks)
setCaching(caching)

架构

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值