Alibaba DataX 源码编译和功能初探

DataX简介

设计理念

为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。

hadoop的完全分布式基本安装

hadoop完全分布式(fully)安装

主机资源的整体规划

1
2
3
4
5
6
host01        host02              host03            备注 (测试机器配置 32vCPU 128gMem 2tDisk)
#----------------------------------------------------------------------------------------#
namenode secondarynamenode redourcemanager 实际环境中nn、snn、rm重要节点必须单独部署
datanode datanode datanode 主要消耗硬盘
nodemanager nodemanager nodemanager 主要消耗CPU
historyserver MR任务历史记录服务

hadoop的伪分布式安装

hadoop伪分布式(pseudo)安装

伪分布式的基本安装

1) 配置hadoop-env.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
# 配置 JAVA_HOME
export JAVA_HOME=/opt/jdk1.8.0_181
# 日志存放目录,默认为 $HADOOP_HOME/logs by default.
# export HADOOP_LOG_DIR=${HADOOP_LOG_DIR}/$USER
# *.log:通过log4j记录的大部分应用程序的日志信息
# *.out:记录标准输出和标准错误日志,少量记录
export HADOOP_LOG_DIR=/var/log/hadoop/$USER

sudo mkdir -p /var/log/hadoop
sudo mkdir -p /var/lib/hadoop/data/tmp
sudo chown -R hadoop:hadoop /var/lib/hadoop
sudo chown -R hadoop:hadoop /var/log/hadoop

hadoop的编译和本地安装

hadoop 源码的编译(v2.7.6)

Hadoop是使用Java语言开发的,但出于性能、安全等角度考虑,hadoop部分功能(如压缩)使用系统本地库(Native Libraries)实现。本地库是由C/C++编写的动态库xxx.so(windows下对应xxx.dll文件),并通过JNI(Java Native Interface)机制为java层提供接口。由于不同的处理器架构,需要编译出相应平台的动态库(xxx.so)文件,才能被正确的执行,所以最好重新编译一次hadoop源码,让xxx.so文件与自己处理器相对应。如下是编译hadoop应用的一般步骤:

大数据及hadoop概述

大数据的概念

大数据到底是啥?

大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。说到底,大数据就是海量的数据,和普通数据区分的标准就是能不能只用单机就能处理的了。大数据领域主要解决海量数据的存储和计算问题