大数据时代之hadoop(二):hadoop脚本解析

“兵马未动,粮草先行”,要想深入的了解hadoop,我觉得启动或停止hadoop的脚本是必须要先了解的。说到底,hadoop就是一个分布式存储和计算框架,但是这个分布式环境是如何启动,管理的呢,我就带着大家先从脚本入手吧。说实话,hadoop的启动脚本写的真好,里面考虑的地方非常周全(比如说路径中有空格,软连接等)。

1、hadoop脚本简单介绍

hadoop的脚本分布在$HADOOP_HOME下面的bin目录下和conf文件夹下,主要介绍如下:

bin目录下
        hadoop                 hadoop底层核心脚本,所有分布式程序最终都是通过这个脚本启动的。
hadoop-config.sh       基本别的脚本都会内嵌调用这个脚本,这个脚本作用就是解析命令行可选参数(--config :hadoop conf文件夹路径 和--hosts)
hadoop-daemon.sh       启动或停止本机command参数所指定的分布式程序,通过调用hadoop脚本实现。
hadoop-daemons.sh      启动所有机器上的hadoop分布式程序,通过调用slaves.sh实现。
slaves.sh              在所有的机器上运行一组指定的命令(通过ssh无密码登陆),供上层使用。
start-dfs.sh
         
在本机启动namenode,在slaves机器上启动datanode,在master机器上启动secondarynamenode,通过调用
hadoop-daemon.sh和hadoop-daemons.sh实现。
start-mapred.sh        在本机启动jobtracker,在slaves机器上启动tasktracker,通过调用hadoop-daemon.sh和hadoop-daemons.sh实现。
start-all.sh           启动所有分布式hadoop程序,通过调用start-dfs.sh和start-mapred.sh实现。
start-balancer.sh      启动hadoop分布式环境复杂均衡调度程序,平衡各节点存储和处理能力。
还有几个stop 脚本,就不用详细说了。

conf目录下
hadoop-env.sh          配置hadoop运行时所需要的一些参数变量,比如JAVA_HOME,HADOOP_LOG_DIR,HADOOP_PID_DIR等。

2、脚本的魅力(详细解释)

hadoop的脚本写的真好,不服不行,从中学习到了好多知识。

2.1、hadoop-config.sh

这个脚本比较简单,而且基本其他脚本都内嵌通过“. $bin/hadoop-config.sh”的形式调用此脚本,所以这个脚本就不用在第一行声明解释权,因为这种调用方式类似于把此脚本内容复制到父脚本里在同一个解释器里面运行。

这个脚本主要做三部分内容:

1、软连接解析和绝对路径解析

[html] view plaincopyprint?

  1. #软连接解析
  2. this="$0"
  3. while [ -h "$this" ]; do
  4. ls=`ls -ld "$this"`
  5. link=`expr "$ls" : ‘.*-> \(.*\)$‘`
  6. if expr "$link" : ‘.*/.*‘ > /dev/null; then
  7. this="$link"
  8. else
  9. this=`dirname "$this"`/"$link"
  10. fi
  11. done
  12. #绝对路径解析
  13. # convert relative path to absolute path
  14. bin=`dirname "$this"`
  15. script=`basename "$this"`
  16. bin=`cd "$bin"; pwd`
  17. this="$bin/$script"
  18. # the root of the Hadoop installation
  19. export HADOOP_HOME=`dirname "$this"`/..

2、命令行可选参数--config解析并赋值

[html] view plaincopyprint?

  1. #check to see if the conf dir is given as an optional argument
  2. if [ $# -gt 1 ]
  3. then
  4. if [ "--config" = "$1" ]
  5. then
  6. shift
  7. confdir=$1
  8. shift
  9. HADOOP_CONF_DIR=$confdir
  10. fi
  11. fi

3、命令行可选参数--config解析并赋值

[html] view plaincopyprint?

  1. #check to see it is specified whether to use the slaves or the
  2. # masters file
  3. if [ $# -gt 1 ]
  4. then
  5. if [ "--hosts" = "$1" ]
  6. then
  7. shift
  8. slavesfile=$1
  9. shift
  10. export HADOOP_SLAVES="${HADOOP_CONF_DIR}/$slavesfile"
  11. fi
  12. fi

2.2、hadoop

此脚本是hadoop脚本的核心,变量的设置,程序的启动都是通过这个脚本做的。

1、声明使用方法

[html] view plaincopyprint?

  1. # if no args specified, show usage
  2. if [ $# = 0 ]; then
  3. echo "Usage: hadoop [--config confdir] COMMAND"
  4. echo "where COMMAND is one of:"
  5. echo "  namenode -format     format the DFS filesystem"
  6. echo "  secondarynamenode    run the DFS secondary namenode"
  7. echo "  namenode             run the DFS namenode"
  8. echo "  datanode             run a DFS datanode"
  9. echo "  dfsadmin             run a DFS admin client"
  10. echo "  mradmin              run a Map-Reduce admin client"
  11. echo "  fsck                 run a DFS filesystem checking utility"
  12. echo "  fs                   run a generic filesystem user client"
  13. echo "  balancer             run a cluster balancing utility"
  14. echo "  jobtracker           run the MapReduce job Tracker node"
  15. echo "  pipes                run a Pipes job"
  16. echo "  tasktracker          run a MapReduce task Tracker node"
  17. echo "  job                  manipulate MapReduce jobs"
  18. echo "  queue                get information regarding JobQueues"
  19. echo "  version              print the version"
  20. echo "  jar <jar>            run a jar file"
  21. echo "  distcp <srcurl> <desturl> copy file or directories recursively"
  22. echo "  archive -archiveName NAME <src>* <dest> create a hadoop archive"
  23. echo "  daemonlog            get/set the log level for each daemon"
  24. echo " or"
  25. echo "  CLASSNAME            run the class named CLASSNAME"
  26. echo "Most commands print help when invoked w/o parameters."
  27. exit 1
  28. fi

2、设置java运行环境


        代码简单,就不写出来了,包括JAVA_HOME,JAVA_HEAP_MAX,CLASSPATH,HADOOP_LOG_DIR,HADOOP_POLICYFILE。其中用到了设置IFS-储界定符号的环境变量,默认值是空白字符(换行,制表符或者空格)。

3、根据cmd设置运行时class

[html] view plaincopyprint?

  1. # figure out which class to run
  2. if [ "$COMMAND" = "namenode" ] ; then
  3. CLASS=‘org.apache.hadoop.hdfs.server.namenode.NameNode‘
  4. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_NAMENODE_OPTS"
  5. elif [ "$COMMAND" = "secondarynamenode" ] ; then
  6. CLASS=‘org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode‘
  7. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_SECONDARYNAMENODE_OPTS"
  8. elif [ "$COMMAND" = "datanode" ] ; then
  9. CLASS=‘org.apache.hadoop.hdfs.server.datanode.DataNode‘
  10. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_DATANODE_OPTS"
  11. elif [ "$COMMAND" = "fs" ] ; then
  12. CLASS=org.apache.hadoop.fs.FsShell
  13. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  14. elif [ "$COMMAND" = "dfs" ] ; then
  15. CLASS=org.apache.hadoop.fs.FsShell
  16. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  17. elif [ "$COMMAND" = "dfsadmin" ] ; then
  18. CLASS=org.apache.hadoop.hdfs.tools.DFSAdmin
  19. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  20. elif [ "$COMMAND" = "mradmin" ] ; then
  21. CLASS=org.apache.hadoop.mapred.tools.MRAdmin
  22. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  23. elif [ "$COMMAND" = "fsck" ] ; then
  24. CLASS=org.apache.hadoop.hdfs.tools.DFSck
  25. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  26. elif [ "$COMMAND" = "balancer" ] ; then
  27. CLASS=org.apache.hadoop.hdfs.server.balancer.Balancer
  28. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_BALANCER_OPTS"
  29. elif [ "$COMMAND" = "jobtracker" ] ; then
  30. CLASS=org.apache.hadoop.mapred.JobTracker
  31. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_JOBTRACKER_OPTS"
  32. elif [ "$COMMAND" = "tasktracker" ] ; then
  33. CLASS=org.apache.hadoop.mapred.TaskTracker
  34. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_TASKTRACKER_OPTS"
  35. elif [ "$COMMAND" = "job" ] ; then
  36. CLASS=org.apache.hadoop.mapred.JobClient
  37. elif [ "$COMMAND" = "queue" ] ; then
  38. CLASS=org.apache.hadoop.mapred.JobQueueClient
  39. elif [ "$COMMAND" = "pipes" ] ; then
  40. CLASS=org.apache.hadoop.mapred.pipes.Submitter
  41. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  42. elif [ "$COMMAND" = "version" ] ; then
  43. CLASS=org.apache.hadoop.util.VersionInfo
  44. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  45. elif [ "$COMMAND" = "jar" ] ; then
  46. CLASS=org.apache.hadoop.util.RunJar
  47. elif [ "$COMMAND" = "distcp" ] ; then
  48. CLASS=org.apache.hadoop.tools.DistCp
  49. CLASSPATH=${CLASSPATH}:${TOOL_PATH}
  50. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  51. elif [ "$COMMAND" = "daemonlog" ] ; then
  52. CLASS=org.apache.hadoop.log.LogLevel
  53. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  54. elif [ "$COMMAND" = "archive" ] ; then
  55. CLASS=org.apache.hadoop.tools.HadoopArchives
  56. CLASSPATH=${CLASSPATH}:${TOOL_PATH}
  57. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  58. elif [ "$COMMAND" = "sampler" ] ; then
  59. CLASS=org.apache.hadoop.mapred.lib.InputSampler
  60. HADOOP_OPTS="$HADOOP_OPTS $HADOOP_CLIENT_OPTS"
  61. else
  62. CLASS=$COMMAND
  63. fi

4、设置本地库

[html] view plaincopyprint?

  1. # setup ‘java.library.path‘ for native-hadoop code if necessary
  2. JAVA_LIBRARY_PATH=‘‘
  3. if [ -d "${HADOOP_HOME}/build/native" -o -d "${HADOOP_HOME}/lib/native" ]; then
  4. #通过运行一个java 类来决定当前平台,挺有意思
  5. JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`
  6. if [ -d "$HADOOP_HOME/build/native" ]; then
  7. JAVA_LIBRARY_PATH=${HADOOP_HOME}/build/native/${JAVA_PLATFORM}/lib
  8. fi
  9. if [ -d "${HADOOP_HOME}/lib/native" ]; then
  10. if [ "x$JAVA_LIBRARY_PATH" != "x" ]; then
  11. JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:${HADOOP_HOME}/lib/native/${JAVA_PLATFORM}
  12. else
  13. JAVA_LIBRARY_PATH=${HADOOP_HOME}/lib/native/${JAVA_PLATFORM}
  14. fi
  15. fi
  16. fi

5、运行分布式程序

[html] view plaincopyprint?

  1. # run it
  2. xec "$JAVA" $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "[email protected]"

2.3、hadoop-daemon.sh

启动或停止本机command参数所指定的分布式程序,通过调用hadoop脚本实现,其实也挺简单的。

1、声明使用方法

[html] view plaincopyprint?

  1. usage="Usage: hadoop-daemon.sh [--config <conf-dir>] [--hosts hostlistfile] (start|stop) <hadoop-command> <args...>"
  2. # if no args specified, show usage
  3. if [ $# -le 1 ]; then
  4. echo $usage
  5. exit 1
  6. fi

2、设置环境变量


   
首先内嵌运行hadoop-env.sh脚本,然后设置HADOOP_PID_DIR等环境变量。

3、启动或停止程序

[html] view plaincopyprint?

  1. case $startStop in
  2. (start)
  3. mkdir -p "$HADOOP_PID_DIR"
  4. if [ -f $pid ]; then
  5. #如果程序已经启动的话,就停止,并退出。
  6. if kill -0 `cat $pid` > /dev/null 2>&1; then
  7. echo $command running as process `cat $pid`.  Stop it first.
  8. exit 1
  9. fi
  10. fi
  11. if [ "$HADOOP_MASTER" != "" ]; then
  12. echo rsync from $HADOOP_MASTER
  13. rsync -a -e ssh --delete --exclude=.svn --exclude=‘logs/*‘ --exclude=‘contrib/hod/logs/*‘ $HADOOP_MASTER/ "$HADOOP_HOME"
  14. fi
  15. # rotate 当前已经存在的log
  16. hadoop_rotate_log $log
  17. echo starting $command, logging to $log
  18. cd "$HADOOP_HOME"
  19. #通过nohup 和bin/hadoop脚本启动相关程序
  20. nohup nice -n $HADOOP_NICENESS "$HADOOP_HOME"/bin/hadoop --config $HADOOP_CONF_DIR $command "[email protected]" > "$log" 2>&1 < /dev/null &
  21. #获取新启动的进程pid并写入到pid文件中
  22. echo $! > $pid
  23. sleep 1; head "$log"
  24. ;;
  25. (stop)
  26. if [ -f $pid ]; then
  27. if kill -0 `cat $pid` > /dev/null 2>&1; then
  28. echo stopping $command
  29. kill `cat $pid`
  30. else
  31. echo no $command to stop
  32. fi
  33. else
  34. echo no $command to stop
  35. fi
  36. ;;
  37. (*)
  38. echo $usage
  39. exit 1
  40. ;;
  41. esac

2.4、slaves.sh


     
在所有的机器上运行一组指定的命令(通过ssh无密码登陆),供上层使用。

1、声明使用方法

[html] view plaincopyprint?

  1. usage="Usage: slaves.sh [--config confdir] command..."
  2. # if no args specified, show usage
  3. if [ $# -le 0 ]; then
  4. echo $usage
  5. exit 1
  6. fi

2、设置远程主机列表

[html] view plaincopyprint?

  1. # If the slaves file is specified in the command line,
  2. # then it takes precedence over the definition in
  3. # hadoop-env.sh. Save it here.
  4. HOSTLIST=$HADOOP_SLAVES
  5. if [ -f "${HADOOP_CONF_DIR}/hadoop-env.sh" ]; then
  6. . "${HADOOP_CONF_DIR}/hadoop-env.sh"
  7. fi
  8. if [ "$HOSTLIST" = "" ]; then
  9. if [ "$HADOOP_SLAVES" = "" ]; then
  10. export HOSTLIST="${HADOOP_CONF_DIR}/slaves"
  11. else
  12. export HOSTLIST="${HADOOP_SLAVES}"
  13. fi
  14. fi

3、分别在远程主机执行相关命令

[html] view plaincopyprint?

  1. #挺重要,里面技术含量也挺高,对远程主机文件进行去除特殊字符和删除空行;对命令行进行空格替换,并通过ssh在目标主机执行命令;最后等待命令在所有目标主机执行完后,退出。
  2. for slave in `cat "$HOSTLIST"|sed  "s/#.*$//;/^$/d"`; do
  3. ssh $HADOOP_SSH_OPTS $slave $"${@// /\\ }" \
  4. 2>&1 | sed "s/^/$slave: /" &
  5. if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then
  6. sleep $HADOOP_SLAVE_SLEEP
  7. fi
  8. done
  9. wait

2.5、hadoop-daemons.sh

      启动远程机器上的hadoop分布式程序,通过调用slaves.sh实现。

1、声明使用方法

 

[html] view plaincopyprint?

  1. # Run a Hadoop command on all slave hosts.
  2. usage="Usage: hadoop-daemons.sh [--config confdir] [--hosts hostlistfile] [start|stop] command args..."
  3. # if no args specified, show usage
  4. if [ $# -le 1 ]; then
  5. echo $usage
  6. exit 1
  7. fi

2、在远程主机调用命令

[html] view plaincopyprint?

  1. #通过salves.sh来实现
  2. exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_HOME" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "[email protected]"

2.6、start-dfs.sh 

      本机(调用此脚本的主机)启动namenode,在slaves机器上启动datanode,在master机器上启动secondarynamenode,通过调用hadoop-daemon.sh和hadoop-daemons.sh实现。

1、声明使用方式

[html] view plaincopyprint?

  1. # Start hadoop dfs daemons.
  2. # Optinally upgrade or rollback dfs state.
  3. # Run this on master node.
  4. usage="Usage: start-dfs.sh [-upgrade|-rollback]"

2、启动程序

[html] view plaincopyprint?

  1. # start dfs daemons
  2. # start namenode after datanodes, to minimize time namenode is up w/o data
  3. # note: datanodes will log connection errors until namenode starts
  4. #在本机(调用此脚本的主机)启动namenode
  5. "$bin"/hadoop-daemon.sh --config $HADOOP_CONF_DIR start namenode $nameStartOpt
  6. #在slaves机器上启动datanode
  7. "$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR start datanode $dataStartOpt
  8. #在master机器上启动secondarynamenode
  9. "$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR --hosts masters start secondarynamenode

2.7、start-mapred.sh 

在本机(调用此脚本的主机)启动jobtracker,在slaves机器上启动tasktracker,通过调用hadoop-daemon.sh和hadoop-daemons.sh实现。

[html] view plaincopyprint?

  1. # start mapred daemons
  2. # start jobtracker first to minimize connection errors at startup
  3. #在本机(调用此脚本的主机)启动jobtracker
  4. "$bin"/hadoop-daemon.sh --config $HADOOP_CONF_DIR start jobtracker
  5. #在master机器上启动tasktracker
  6. "$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR start tasktracker

其他的脚本就都已经非常简单了,不用再详细说明了,只要看下,大致都能看懂。

对了,最后再说下hadoop的脚本里面用的shell解释器的声明吧。

[html] view plaincopyprint?

  1. #!/usr/bin/env bash

作用就是适应各种linux操作系统,能够找到 bash shell来解释执行本脚本,也挺有用的。

时间: 2024-10-11 21:04:04

大数据时代之hadoop(二):hadoop脚本解析的相关文章

大数据时代之hadoop(六):hadoop 生态圈(pig,hive,hbase,ZooKeeper,Sqoop)

大数据时代之hadoop(一):hadoop安装 大数据时代之hadoop(二):hadoop脚本解析 大数据时代之hadoop(三):hadoop数据流(生命周期) 大数据时代之hadoop(四):hadoop 分布式文件系统(HDFS) 大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce) hadoop是有apache基金会所开发的分布式系统基础架构,其主要提供了两方面的功能:分布式存储和分布式计算.其中分布式存储是分布式计算的基础,在hadoop的实现里面,提

决胜大数据时代:Hadoop&amp;Yarn&amp;Spark企业级最佳实践(8天完整版脱产式培训版本)

Hadoop.Yarn.Spark是企业构建生产环境下大数据中心的关键技术,也是大数据处理的核心技术,是每个云计算大数据工程师必修课. 课程简介 大数据时代的精髓技术在于Hadoop.Yarn.Spark,是大数据时代公司和个人必须掌握和使用的核心内容. Hadoop.Yarn.Spark是Yahoo!.阿里淘宝等公司公认的大数据时代的三大核心技术,是大数据处理的灵魂,是云计算大数据时代的技术命脉之所在,以Hadoop.Yarn.Spark为基石构建起来云计算大数据中心广泛运行于Yahoo!.阿

Hadoop大数据时代:Hadoop&amp;YarnSpark企业级最佳实践 (4天)

Hadoop.Yarn.Spark是企业构建生产环境下大数据中心的关键技术,也是大数据处理的核心技术,是每个云计算大数据工程师必修课. 大数据时代的精髓技术在于Hadoop.Yarn.Spark,是大数据时代公司和个人必须掌握和使用的核心内容. Hadoop.Yarn.Spark是Yahoo!.阿里淘宝等公司公认的大数据时代的三大核心技术,是大数据处理的灵魂,是云计算大数据时代的技术命脉之所在,以Hadoop.Yarn.Spark为基石构建起来云计算大数据中心广泛运行于Yahoo!.阿里淘宝.腾

大数据时代到底Hadoop和Spark谁是王者!

在现在这个大数据时代,Hadoop和Spark是最潮流的两个词汇,Hadoop是一种分布式计算框架,由Google提出,主要用于搜索领域,解决海量数据的计算问题,Hadoop中的MapReduce包括两个阶段:Mapper阶段和Reducer阶段,用户只需要实现map函数和reduce函数即可实现分布式计算,非常简单.而近几年Spark新兴框架的产生,以不可挡之势席卷中国,其核心内部结构RDD以超强的弹性机制更加的引人注目!越来越多的人认为Spark终有一天要取代Hadoop,但是事实究竟如何呢

大数据项目实践:基于hadoop+spark+mongodb+mysql开发医院临床知识库系统

一.前言 从20世纪90年代数字化医院概念提出到至今的20多年时间,数字化医院(Digital Hospital)在国内各大医院飞速的普及推广发展,并取得骄人成绩.不但有数字化医院管理信息系统(HIS).影像存档和通信系统(PACS).电子病历系统(EMR)和区域医疗卫生服务(GMIS)等成功实施与普及推广,而且随着日新月异的计算机技术和网络技术的革新,进一步为数字化医院带来新的交互渠道譬如:远程医疗服务,网上挂号预约. 随着IT技术的飞速发展,80%以上的三级医院都相继建立了自己的医院信息系统

大数据系列(2)——Hadoop集群坏境CentOS安装

前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMware虚拟机.CentOS 6.8 64 bit 安装流程 因为我的笔记本是Window7操作系统,然后内存配置,只有8G,内存配置太低了,当然为了演示,我会将Hadoop集群中的主节点分配2GB内存,然后剩余的三个节点都是1GB配置. 所有的节点存储我都设置为50GB. 在安装操作系统之前,我们需要

大数据系列(3)——Hadoop集群完全分布式坏境搭建

前言 上一篇我们讲解了Hadoop单节点的安装,并且已经通过VMware安装了一台CentOS 6.8的Linux系统,咱们本篇的目标就是要配置一个真正的完全分布式的Hadoop集群,闲言少叙,进入本篇的正题. 技术准备 VMware虚拟机.CentOS 6.8 64 bit 安装流程 我们先来回顾上一篇我们完成的单节点的Hadoop环境配置,已经配置了一个CentOS 6.8 并且完成了java运行环境的搭建,Hosts文件的配置.计算机名等诸多细节. 其实完成这一步之后我们就已经完成了Had

大数据架构师基础:hadoop家族,Cloudera产品系列等各种技术

大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师选择合适的技术,了解大数据各种技术之间的关系,选择合适的语言. 我们可以带着下面问题来阅读本文章: 1.hadoop都包含什么技术 2.Cloudera公司与hadoop的关系是什么,都有什么产品,产品有什么特性 3. Spark与hadoop的关联是什么? 4. Storm与hadoop的关联是什么

当不再炒作大数据的时候,大数据时代就真的来了

从2015年开始,大数据就已经被移出了Gartner的新兴技术炒作曲线."Big Data"(大数据)一词最早于2011年8月出现在Gartner新兴技术炒作曲线中,当时Gartner预计大数据技术需要2年到5年才能进入企业的实际生产型应用中.从那以后,大数据就迅速被市场热炒,最终在2015年彻底在Gartner新兴技术炒作曲线中消失. 进入2016年,大数据已经进入了实际的企业生产应用,在切实推动企业向数字化转型.另一家市场调查公司IDC则强调,在未来5年中,全球的数据驱动型企业将获

跟上节奏 大数据时代十大必备IT技能(转)

新的想法诞生新的技术,从而造出许多新词,云计算.大数据.BYOD.社交媒体……在互联网时代,各种新词层出不穷,让人应接不暇.这些新的技术,这些新兴应用和对应的IT发展趋势,使得IT人必须了解甚至掌握最新的IT技能. 新的想法诞生新的技术,从而造出许多新词,云计算.大数据.BYOD.社交媒体.3D打印机.物联网……在互联网时代,各种新词层出不穷,让人应接不暇.这些新的技术,这些新兴应用和对应的IT发展趋势,使得IT人必须了解甚至掌握最新的IT技能.另一方面,云计算和大数据乃至其他助推各个行业发展的