精华内容
下载资源
问答
  • 当工程师女朋友的六大好处!各位程序猿女友,你们有木有觉得很幸福呢? 1、男工程师不容易找到女朋友,所以会对你死心塌地。 2、男工程师重实用而不重情调,所以你也不必特别花费心思去取悦他。 3、男工程师以...

    当工程师女朋友的六大好处!各位程序猿女友,你们有木有觉得很幸福呢?

      1、男工程师不容易找到女朋友,所以会对你死心塌地。

      2、男工程师重实用而不重情调,所以你也不必特别花费心思去取悦他。

      3、男工程师以修理东西为娱乐,所以你不爽时,大可以在他前面摔东西出气,他会很乐意帮你修理。

      4、男工程师凡是讲“理”。所以你若理直气壮他就对你没辙,若是你无理取闹,他对你还是没辙。

      5、男工程师口才太差根本讲不过你,所以你可以尽情用言辞凌虐他,让你有当女王的感觉

      6、男工程师对电脑十分在行,所以你等于有了随叫随到的电脑修理工。

    展开全文
  • #程序员爱情# 当工程师女朋友的六大好处!各位程序猿女友,你们有木有觉得很幸福呢?

    #程序员爱情# 当工程师女朋友的六大好处!各位程序猿女友,你们有木有觉得很幸福呢?

    展开全文
  • 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 【不要错过文末彩蛋】 申明: 本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于...

    作者:Fickr孫啟誠
    原文: 三个月大数据研发学习计划实战解析
    关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术

    【不要错过文末彩蛋】

    申明:

    本文旨在为普通程序员(Java程序员最佳)提供一个入门级别的大数据技术学习路径,不适用于大数据工程师的进阶学习,也不适用于零编程基础的同学。


    前言:

    • 一、背景介绍
    • 二、大数据介绍

    正文:

    • 一、大数据相关的工作介绍
    • 二、大数据工程师的技能要求
    • 三、大数据学习规划
    • 四、持续学习资源推荐(书籍,博客,网站)
    • 五、项目案例分析(批处理+实时处理)

    ###前言

    ####一、背景介绍

    本人目前是一名大数据工程师,项目数据50T,日均数据增长20G左右,个人是从Java后端开发,经过3个月的业余自学成功转型大数据工程师。

    ####二、大数据介绍

    大数据本质也是数据,但是又有了新的特征,包括数据来源广数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等。

    针对以上主要的4个特征我们需要考虑以下问题:

    1. 数据来源广,该如何采集汇总?,对应出现了Sqoop,Cammel,Datax等工具。

    2. 数据采集之后,该如何存储?,对应出现了GFS,HDFS,TFS等分布式文件存储系统。

    3. 由于数据增长速度快,数据存储就必须可以水平扩展。

    4. 数据存储之后,该如何通过运算快速转化成一致的格式,该如何快速运算出自己想要的结果?

    对应的MapReduce这样的分布式运算框架解决了这个问题;但是写MapReduce需要Java代码量很大,所以出现了Hive,Pig等将SQL转化成MapReduce的解析引擎;

    普通的MapReduce处理数据只能一批一批地处理,时间延迟太长,为了实现每输入一条数据就能得到结果,于是出现了Storm/JStorm这样的低时延的流式计算框架;

    但是如果同时需要批处理流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于管理,所以出现了Spark这样的一站式的计算框架,既可以进行批处理,又可以进行流处理(实质上是微批处理)。

    1. 而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。

    2. 为了提高工作效率,加快运速度,出现了一些辅助工具:

    • Ozzie,azkaban:定时任务调度的工具。
    • Hue,Zepplin:图形化任务执行管理,结果查看工具。
    • Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。
    • Python语言:编写一些脚本时会用到。
    • Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

    以上大致就把整个大数据生态里面用到的工具所解决的问题列举了一遍,知道了他们为什么而出现或者说出现是为了解决什么问题,进行学习的时候就有的放矢了。

    ###正文

    ####一、大数据相关工作介绍

    大数据方向的工作目前主要分为三个主要方向:

    1. 大数据工程师
    2. 数据分析师
    3. 大数据科学家
    4. 其他(数据挖掘等)

    ####二、大数据工程师的技能要求

    附上大数据工程师技能图:

    enter image description here

    必须掌握的技能11条

    1. Java高级(虚拟机、并发)
    2. Linux 基本操作
    3. Hadoop(HDFS+MapReduce+Yarn )
    4. HBase(JavaAPI操作+Phoenix )
    5. Hive(Hql基本操作和原理理解)
    6. Kafka
    7. Storm/JStorm
    8. Scala
    9. Python
    10. Spark (Core+sparksql+Spark streaming )
    11. 辅助小工具(Sqoop/Flume/Oozie/Hue等)

    高阶技能6条

    1. 机器学习算法以及mahout库加MLlib
    2. R语言
    3. Lambda 架构
    4. Kappa架构
    5. Kylin
    6. Alluxio

    ####三、学习路径

    假设每天可以抽出3个小时的有效学习时间,加上周末每天保证10个小时的有效学习时间;

    3个月会有(213+42*10)*3=423小时的学习时间。

    第一阶段(基础阶段)

    1)Linux学习(跟鸟哥学就ok了)-----20小时

    1. Linux操作系统介绍与安装。
    2. Linux常用命令。
    3. Linux常用软件安装。
    4. Linux网络。
    5. 防火墙。
    6. Shell编程等。

    官网:https://www.centos.org/download/
    中文社区:http://www.linuxidc.com/Linux/2017-09/146919.htm

    2)Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)—30小时

    1. 掌握多线程。
    2. 掌握并发包下的队列。
    3. 了解JMS。
    4. 掌握JVM技术。
    5. 掌握反射和动态代理。

    官网:https://www.java.com/zh_CN/
    中文社区:http://www.java-cn.com/index.html

    3)Zookeeper学习(可以参照这篇博客进行学习:http://www.cnblogs.com/wuxl360/p/5817471.html)

    1. Zookeeper分布式协调服务介绍。
    2. Zookeeper集群的安装部署。
    3. Zookeeper数据结构、命令。
    4. Zookeeper的原理以及选举机制。

    官网:http://zookeeper.apache.org/
    中文社区:http://www.aboutyun.com/forum-149-1.html

    第二阶段(攻坚阶段)

    4)Hadoop (《Hadoop 权威指南》)—80小时

    1. HDFS
    • HDFS的概念和特性。
    • HDFS的shell操作。
    • HDFS的工作机制。
    • HDFS的Java应用开发。
    1. MapReduce

      • 运行WordCount示例程序。
      • 了解MapReduce内部的运行机制。
        • MapReduce程序运行流程解析。
        • MapTask并发数的决定机制。
        • MapReduce中的combiner组件应用。
        • MapReduce中的序列化框架及应用。
        • MapReduce中的排序。
        • MapReduce中的自定义分区实现。
        • MapReduce的shuffle机制。
        • MapReduce利用数据压缩进行优化。
        • MapReduce程序与YARN之间的关系。
        • MapReduce参数优化。
    2. MapReduce的Java应用开发

    官网:http://hadoop.apache.org/
    中文文档:http://hadoop.apache.org/docs/r1.0.4/cn/
    中文社区:http://www.aboutyun.com/forum-143-1.html

    5)Hive(《Hive开发指南》)–20小时

    1. Hive 基本概念

      • Hive 应用场景。
      • Hive 与hadoop的关系。
      • Hive 与传统数据库对比。
      • Hive 的数据存储机制。
    2. Hive 基本操作

      • Hive 中的DDL操作。
      • 在Hive 中如何实现高效的JOIN查询。
      • Hive 的内置函数应用。
      • Hive shell的高级使用方式。
      • Hive 常用参数配置。
      • Hive 自定义函数和Transform的使用技巧。
      • Hive UDF/UDAF开发实例。
    3. Hive 执行过程分析及优化策略

    官网:https://hive.apache.org/
    中文入门文档:http://www.aboutyun.com/thread-11873-1-1.html
    中文社区:http://www.aboutyun.com/thread-7598-1-1.html

    6)HBase(《HBase权威指南》)—20小时

    1. hbase简介。
    2. habse安装。
    3. hbase数据模型。
    4. hbase命令。
    5. hbase开发。
    6. hbase原理。

    官网:http://hbase.apache.org/
    中文文档:http://abloz.com/hbase/book.html
    中文社区:http://www.aboutyun.com/forum-142-1.html

    7)Scala(《快学Scala》)–20小时

    1. Scala概述。
    2. Scala编译器安装。
    3. Scala基础。
    4. 数组、映射、元组、集合。
    5. 类、对象、继承、特质。
    6. 模式匹配和样例类。
    7. 了解Scala Actor并发编程。
    8. 理解Akka。
    9. 理解Scala高阶函数。
    10. 理解Scala隐式转换。

    官网:http://www.scala-lang.org/
    初级中文教程:http://www.runoob.com/scala/scala-tutorial.html

    8)Spark (《Spark 权威指南》)—60小时

    enter image description here

    1. Spark core

      • Spark概述。
      • Spark集群安装。
      • 执行第一个Spark案例程序(求PI)。
    2. RDD

    enter image description here

    • RDD概述。
    • 创建RDD。
    • RDD编程API(Transformation 和 Action Operations)。
    • RDD的依赖关系
    • RDD的缓存
    • DAG(有向无环图)
    1. Spark SQL and DataFrame/DataSet

    enter image description here

    - Spark SQL概述。
    - DataFrames。
    - DataFrame常用操作。
    - 编写Spark SQL查询程序。
    
    1. Spark Streaming

    enter image description here

    enter image description here

    • park Streaming概述。
    • 理解DStream。
    • DStream相关操作(Transformations 和 Output Operations)。
    1. Structured Streaming

    2. 其他(MLlib and GraphX )

    这个部分一般工作中如果不是数据挖掘,机器学习一般用不到,可以等到需要用到的时候再深入学习。

    官网:http://spark.apache.org
    中文文档(但是版本有点老):https://www.gitbook.com/book/aiyanbo/spark-programming-guide-zh-cn/details
    中文社区:http://www.aboutyun.com/forum-146-1.html

    9)Python (推荐廖雪峰的博客—30小时

    10)自己用虚拟机搭建一个集群,把所有工具都装上,自己开发一个小demo —30小时

    可以自己用VMware搭建4台虚拟机,然后安装以上软件,搭建一个小集群(本人亲测,I7,64位,16G内存,完全可以运行起来,以下附上我学习时用虚拟机搭建集群的操作文档)


    集群搭建文档1.0版本

    1. 集群规划

    enter image description here

    所有需要用到的软件:

    链接:http://pan.baidu.com/s/1jIlAz2Y
    密码:kyxl

    2. 前期准备

    2.0 系统安装
    
    2.1 主机名配置
    
    	2.1.0 vi /etc/sysconfig/network
    		NETWORKING=yes
    
    	2.1.1 vi /etc/sysconfig/network
    		NETWORKING=yes
    		HOSTNAME=ys02
    		
    	2.1.2 vi /etc/sysconfig/network
    		NETWORKING=yes
    
    	2.1.3 vi /etc/sysconfig/network
    		NETWORKING=yes
    		HOSTNAME=ys04
    		
    2.2 host文件修改
    	2.2.0 vi /etc/hosts
    		10.1.1.149 ys01
    		10.1.1.148 ys02
    		10.1.1.146 ys03
    		10.1.1.145 ys04
    2.3 关闭防火墙(centos 7默认使用的是firewall,centos 6 默认是iptables)
    
    	2.3.0 systemctl stop firewalld.service (停止firewall)
    
    	2.3.1 systemctl disable firewalld.service (禁止firewall开机启动)
    
    	2.3.2 firewall-cmd --state (查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
    
    2.4 免密登录(ys01 ->ys02,03,04)
        ssh-keygen -t rsa
    	ssh-copy-id ys02(随后输入密码)
        ssh-copy-id ys03(随后输入密码)
    	ssh-copy-id ys04(随后输入密码)
    	ssh ys02(测试是否成功)
    	ssh ys03(测试是否成功)
    	ssh ys04(测试是否成功)
    	
    2.5 系统时区与时间同步
    	tzselect(生成日期文件)
    	cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime(将日期文件copy到本地时间中)
    

    3. 软件安装

    3.0 安装目录规划(软件为所有用户公用)
    	
    	3.0.0所有软件的安装放到/usr/local/ys/soft目录下(mkdir /usr/local/ys/soft)
    
    	3.0.1所有软件安装到/usr/local/ys/app目录下(mkdir /usr/local/ys/app)
    
     3.1 JDK(jdk1.7)安装
    	
    	3.1.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
    	3.1.2解压jdk
          cd /usr/local/ys/soft
    		#解压
    		tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local/ys/app
    	
    	3.1.3将java添加到环境变量中
    	vim /etc/profile
    	#在文件最后添加
    	export JAVA_HOME= /usr/local/ys/app/ jdk-7u80
    	export PATH=$PATH:$JAVA_HOME/bin
    	
    	3.1.4 刷新配置
    	source /etc/profile
    	
    3.2 Zookeeper安装
    	
    	3.2.0解压
    	tar -zxvf zookeeper-3.4.5.tar.gz -C /usr/local/ys/app(解压)
    
    	3.2.1 重命名
    	mv zookeeper-3.4.5 zookeeper(重命名文件夹zookeeper-3.4.5为zookeeper)
    
    	3.2.2修改环境变量
    	vi /etc/profile(修改文件)
    	添加内容:
    	export ZOOKEEPER_HOME=/usr/local/ys/app/zookeeper
    	export PATH=$PATH:$ZOOKEEPER_HOME/bin
    
    	3.2.3 重新编译文件:
    	source /etc/profile
    	注意:3台zookeeper都需要修改
    
    	3.2.4修改配置文件
    	cd zookeeper/conf
    	cp zoo_sample.cfg zoo.cfg
    	vi zoo.cfg
    	添加内容:
    	dataDir=/usr/local/ys/app/zookeeper/data
    	dataLogDir=/usr/local/ys/app/zookeeper/log
    	server.1=ys01:2888:3888 (主机名, 心跳端口、数据端口)
    	server.2=ys02:2888:3888
    	server.3=ys04:2888:3888
    
    	3.2.5 创建文件夹
    	cd /usr/local/ys/app/zookeeper/
    	mkdir -m 755 data
    	mkdir -m 755 log
    
    	3.2.6 在data文件夹下新建myid文件,myid的文件内容为:
    	cd data
    	vi myid
    	添加内容:
    		1
    	将集群下发到其他机器上
    	scp -r /usr/local/ys/app/zookeeper ys02:/usr/local/ys/app/
    	scp -r /usr/local/ys/app/zookeeper ys04:/usr/local/ys/app/
    
        3.2.7修改其他机器的配置文件
    	到ys02上:修改myid为:2
    	到ys02上:修改myid为:3
    
        3.2.8启动(每台机器)
    	zkServer.sh start
    	查看集群状态
    	jps(查看进程)
    	zkServer.sh status(查看集群状态,主从信息)
    
    3.3 Hadoop(HDFS+Yarn)
    
    	3.3.0 alt+p 后出现sftp窗口,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
    	3.3.1 解压jdk
          cd /usr/local/ys/soft
    		#解压
    		tar -zxvf cenos-7-hadoop-2.6.4.tar.gz -C /usr/local/ys/app
    
    	3.3.2 修改配置文件
    
    core-site.xml
    

    enter image description here

    hdfs-site.xml
    

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    yarn-sifite.xml
    

    enter image description here

    svales
    
    ys02
    ys03
    ys04
    
    3.3.3集群启动(严格按照下面的步骤)
    	3.3.3.1启动zookeeper集群(分别在ys01、ys02、ys04上启动zk)
    		cd /usr/local/ys/app/zookeeper-3.4.5/bin/
    		./zkServer.sh start
    		#查看状态:一个leader,两个follower
    		./zkServer.sh status
    	
    	3.3.3.2启动journalnode(分别在在mini5、mini6、mini7上执行)
    		cd /usr/local/ys/app/hadoop-2.6.4
    		sbin/hadoop-daemon.sh start journalnode
    		#运行jps命令检验,ys02、ys03、ys04上多了JournalNode进程
    	
    	3.3.3.3格式化HDFS
    		#在ys01上执行命令:
    		hdfs namenode -format
    		#格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/usr/local/ys/app/hadoop-2.6.4/tmp,然后将/usr/local/ys/app/hadoop-2.6.4/tmp拷贝到ys02的/usr/local/ys/app/hadoop-2.6.4/下。
    		scp -r tmp/ ys02:/usr/local/ys /app/hadoop-2.6.4/
    		##也可以这样,建议hdfs namenode -bootstrapStandby
    	
    	3.3.3.4格式化ZKFC(在ys01上执行一次即可)
    		hdfs zkfc -formatZK
    	
    	3.3.3.5启动HDFS(在ys01上执行)
    		sbin/start-dfs.sh
    	
    	3.3.3.6启动YARN
    		sbin/start-yarn.sh
    
    3.3MySQL-5.6安装
    	略过
    	
    3.4 Hive
    
    	3.4.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    
    	3.4.2解压
    	cd /usr/local/ys/soft
    tar -zxvf hive-0.9.0.tar.gz -C /usr/local/ys/app
    
    	3.4.3 .配置hive
    		
    		3.4.3.1配置HIVE_HOME环境变量  vi conf/hive-env.sh 配置其中的$hadoop_home
    
    		3.4.3.2配置元数据库信息   vi  hive-site.xml 
    

    添加如下内容:

    enter image description here

    enter image description here

    	3.4.4 安装hive和mysq完成后,将mysql的连接jar包拷贝到$HIVE_HOME/lib目录下
    	如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
    	mysql -uroot -p
    	#(执行下面的语句  *.*:所有库下的所有表   %:任何IP地址或主机都可以连接)
    	GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    	FLUSH PRIVILEGES;
    
    	3.4.5 Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的 /usr/local/ys/app/hadoop-2.6.4/share/hadoop/yarn/lib/jline-0.9.94.jar
    
    	3.4.6启动hive
        bin/hive
    
    3.5 Kafka
    	3.5.1 下载安装包
    	http://kafka.apache.org/downloads.html
    	在linux中使用wget命令下载安装包
    	wget http://mirrors.hust.edu.cn/apache/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz
    	
      3.5.2 解压安装包
    	tar -zxvf /usr/local/ys/soft/kafka_2.11-0.8.2.2.tgz -C /usr/local/ys/app/
    cd /usr/local/ys/app/
    ln -s kafka_2.11-0.8.2.2 kafka
    
      3.5.3 修改配置文件
    	cp 
    	/usr/local/ys/app/kafka/config/server.properties
       /usr/local/ys/app/kafka/config/server.properties.bak
    	vi  /usr/local/ys/kafka/config/server.properties
    

    输入以下内容:

    enter image description here

    	3.5.4 分发安装包
    	scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys02: /usr/local/ys/app/
        scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys03: /usr/local/ys/app/
        scp -r /usr/local/ys/app/kafka_2.11-0.8.2.2 ys04: /usr/local/ys/app/
    	然后分别在各机器上创建软连
    	cd /usr/local/ys/app/
    	ln -s kafka_2.11-0.8.2.2 kafka
    
     3.5.5 再次修改配置文件(重要)
       依次修改各服务器上配置文件的的broker.id,分别是0,1,2不得重复。
    
     3.5.6 启动集群
    	依次在各节点上启动kafka
    	bin/kafka-server-start.sh  config/server.properties
    
    3.6 Spark
    
    	3.6.1 alt+p 后出现sftp窗口,cd /usr/local/ys/soft,使用sftp上传tar包到虚机ys01的/usr/local/ys/soft目录下
    	
    	3.6.2  解压安装包
    tar -zxvf /usr/local/ys/soft/ spark-1.6.1-bin-hadoop2.6.tgz -C /usr/local/ys/app/
    
    	3.6.3 修改Spark配置文件(两个配置文件spark-env.sh和slaves)
    	cd /usr/local/ys/soft/spark-1.6.1-bin-hadoop2.6
    	进入conf目录并重命名并修改spark-env.sh.template文件
    	cd conf/
    	mv spark-env.sh.template spark-env.sh
    	vi spark-env.sh
    	在该配置文件中添加如下配置
    	export JAVA_HOME=/usr/java/jdk1.7.0_45
    	export SPARK_MASTER_PORT=7077
    	export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=ys01,ys02,ys04 -Dspark.deploy.zookeeper.dir=/spark"
    	保存退出
    	重命名并修改slaves.template文件
    	mv slaves.template slaves
    	vi slaves
    	在该文件中添加子节点所在的位置(Worker节点)
    	Ys02
    	Ys03
    	Ys04
    	保存退出
    	
        3.6.4 将配置好的Spark拷贝到其他节点上
    	scp -r spark-1.6.1-in-hadoop2.6/ ys02:/usr/local/ys/app
    	scp -r spark-1.6.1-bin-hadoop2.6/ ys03:/usr/local/ys/app
    	scp -r spark-1.6.1-bin-hadoop2.6/ ys04:/usr/local/ys/app
    
    	3.6.5 集群启动
    	在ys01上执行sbin/start-all.sh脚本
    	然后在ys02上执行sbin/start-master.sh启动第二个Master
    
    3.7 Azkaban
    
    	3.7.1 azkaban web服务器安装
    		解压azkaban-web-server-2.5.0.tar.gz
    		命令: tar –zxvf /usr/local/ys/soft/azkaban-web-server-2.5.0.tar.gz -C /usr/local/ys/app/azkaban
           将解压后的azkaban-web-server-2.5.0 移动到 azkaban目录中,并重新命名 webserver
         命令: mv azkaban-web-server-2.5.0 ../azkaban
           cd ../azkaban
            mv azkaban-web-server-2.5.0   webserver
      
         3.7.2 azkaban 执行服器安装
             解压azkaban-executor-server-2.5.0.tar.gz
             命令:tar –zxvf /usr/local/ys/soft/azkaban-executor-server-2.5.0.tar.gz -C /usr/local/ys/app/azkaban
         将解压后的azkaban-executor-server-2.5.0 移动到 azkaban目录中,并重新命名 executor
       命令:mv azkaban-executor-server-2.5.0  ../azkaban
       cd ../azkaban
       mv azkaban-executor-server-2.5.0  executor
    
    	3.7.3 azkaban脚本导入
    		解压: azkaban-sql-script-2.5.0.tar.gz
    		命令:tar –zxvf azkaban-sql-script-2.5.0.tar.gz
    		将解压后的mysql 脚本,导入到mysql中:
    		进入mysql
    		mysql> create database azkaban;
    		mysql> use azkaban;
    		Database changed
    		mysql> source /usr/local/ys/soft/azkaban-2.5.0/create-all-sql-2.5.0.sql;
    
    	3.7.4 创建SSL配置
    	参考地址: http://docs.codehaus.org/display/JETTY/How+to+configure+SSL
    	命令: keytool -keystore keystore -alias jetty -genkey -keyalg RSA
    	运行此命令后,会提示输入当前生成 keystor的密码及相应信息,输入的密码请劳记,信息如下(此处我输入的密码为:123456)
    	输入keystore密码: 
    	再次输入新密码:
    	您的名字与姓氏是什么?
    	[Unknown]: 
    	您的组织单位名称是什么?
    	[Unknown]: 
    	您的组织名称是什么?
    	[Unknown]: 
    	您所在的城市或区域名称是什么?
    	[Unknown]: 
    	您所在的州或省份名称是什么?
    	[Unknown]: 
    	该单位的两字母国家代码是什么
    	 [Unknown]:  CN
    	CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=CN 正确吗?
    	[否]:  y
    输入<jetty>的主密码(如果和 keystore 密码相同,按回车): 
    再次输入新密码
    完成上述工作后,将在当前目录生成 keystore 证书文件,将keystore 考贝到 azkaban web服务器根目录中.如:cp keystore azkaban/webserver
    
    	3.7.5 配置文件
    	注:先配置好服务器节点上的时区
    	先生成时区配置文件Asia/Shanghai,用交互式命令 tzselect 即可
    	拷贝该时区文件,覆盖系统本地时区配置
    	cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  
    
    	3.7.6 azkaban web服务器配置
    	进入azkaban web服务器安装目录 conf目录
    	修改azkaban.properties文件
    	命令vi azkaban.properties
    

    内容说明如下:

    *Azkaban Personalization Settings
    azkaban.name=Test                           #服务器UI名称,用于服务器上方显示的名字
    azkaban.label=My Local Azkaban                               #描述
    azkaban.color=#FF3601                                                 #UI颜色
    azkaban.default.servlet.path=/index                         #
    web.resource.dir=web/                                                 #默认根web目录
    default.timezone.id=Asia/Shanghai                           #默认时区,已改为亚洲/上海 默认为美国
     
    *Azkaban UserManager class
    user.manager.class=azkaban.user.XmlUserManager   #用户权限管理默认类
    user.manager.xml.file=conf/azkaban-users.xml              #用户配置,具体配置参加下文
     
    *Loader for projects
    executor.global.properties=conf/global.properties    # global配置文件所在位置
    azkaban.project.dir=projects                                                #
     
    database.type=mysql                                                              #数据库类型
    mysql.port=3306                                                                       #端口号
    mysql.host=localhost                                                      #数据库连接IP
    mysql.database=azkaban                                                       #数据库实例名
    mysql.user=root                                                                 #数据库用户名
    mysql.password=Root123456                                                        #数据库密码
    mysql.numconnections=100                                                  #最大连接数
     
    * Velocity dev mode
    velocity.dev.mode=false
    * Jetty服务器属性.
    jetty.maxThreads=25                                                               #最大线程数
    jetty.ssl.port=8443                                                                   #Jetty SSL端口
    jetty.port=8081                                                                         #Jetty端口
    jetty.keystore=keystore                                                          #SSL文件名
    jetty.password=123456                                                             #SSL文件密码
    jetty.keypassword=123456                                                      #Jetty主密码 与 keystore文件相同
    jetty.truststore=keystore                                                                #SSL文件名
    jetty.trustpassword=123456                                                   # SSL文件密码
     
    * 执行服务器属性
    executor.port=12321                                                               #执行服务器端
     
    *邮件设置
    mail.sender=xxxxxxxx@163.com                                       #发送邮箱
    mail.host=smtp.163.com                                                       #发送邮箱smtp地址
    mail.user=xxxxxxxx                                       #发送邮件时显示的名称
    mail.password=**********                                                 #邮箱密码
    job.failure.email=xxxxxxxx@163.com                              #任务失败时发送邮件的地址
    job.success.email=xxxxxxxx@163.com                            #任务成功时发送邮件的地址
    lockdown.create.projects=false                                           #
    cache.directory=cache                                                            #缓存目录
    
    		 3.7.7azkaban 执行服务器executor配置
    		 进入执行服务器安装目录conf,修改azkaban.properties
    		 vi azkaban.properties
    *Azkaban
    default.timezone.id=Asia/Shanghai                                              #时区
     
    * Azkaban JobTypes 插件配置
    azkaban.jobtype.plugin.dir=plugins/jobtypes                   #jobtype 插件所在位置
     
    *Loader for projects
    executor.global.properties=conf/global.properties
    azkaban.project.dir=projects
     
    *数据库设置
    database.type=mysql                                                                       #数据库类型(目前只支持mysql)
    mysql.port=3306                                                                                #数据库端口号
    mysql.host=192.168.20.200                                                           #数据库IP地址
    mysql.database=azkaban                                                                #数据库实例名
    mysql.user=root                                                                       #数据库用户名
    mysql.password=Root23456                                #数据库密码
    mysql.numconnections=100                                                           #最大连接数
     
    *执行服务器配置
    executor.maxThreads=50                                                                #最大线程数
    executor.port=12321                                                               #端口号(如修改,请与web服务中一致)
    executor.flow.threads=30                                                                #线程数
    
    	3.7.8用户配置
    	进入azkaban web服务器conf目录,修改azkaban-users.xml
    	vi azkaban-users.xml 增加 管理员用户
    

    enter image description here

    	3.7.9 web服务器启动
    	在azkaban web服务器目录下执行启动命令
    	bin/azkaban-web-start.sh
    	注:在web服务器根目录运行
    	或者启动到后台
    	nohup  bin/azkaban-web-start.sh  1>/tmp/azstd.out  2>/tmp/azerr.out &
    
    	3.7.10执行服务器启动
    
    	在执行服务器目录下执行启动命令
    	bin/azkaban-executor-start.sh
    	注:只能要执行服务器根目录运行
    
    	启动完成后,在浏览器(建议使用谷歌浏览器)中输入https://服务器IP地址:8443 ,即可访问azkaban服务了.在登录中输入刚才新的户用名及密码,点击 login
    
    3.8 Zeppelin
    参照如下文件:
    http://blog.csdn.net/chengxuyuanyonghu/article/details/54915817
    http://blog.csdn.net/chengxuyuanyonghu/article/details/54915962
    
    3.9 HBase
    	3.9.1解压
    	tar –zxvf  /usr/local/ys/soft/hbase-0.99.2-bin.tar.gz  -C /usr/local/ys/app
    
    	3.9.2重命名
    	cd  /usr/local/ys/app
        mv hbase-0.99.2 hbase
    
    	3.9.3修改配置文件
         每个文件的解释如下:
    	hbase-env.sh
    	export JAVA_HOME=/usr/local/ys/app/jdk1.7.0_80   //jdk安装目录
    	export HBASE_CLASSPATH=/usr/local/ys/app/hadoop-2.6.4/etc/hadoop  //hadoop配置文件的位置
    	export HBASE_MANAGES_ZK=false #如果使用独立安装的zookeeper这个地方就是false(此处使用自己的zookeeper)
    
    hbase-site.xml
    

    enter image description here

    enter image description here

    Regionservers    //是从机器的域名
    Ys02
    ys03
    ys04
    
    注:此处HBase配置是针对HA模式的hdfs
    
    	3.9.4将Hadoop的配置文件hdfs-site.xml和core-site.xml拷贝到HBase配置文件中
    	cp /usr/local/ys/app/Hadoop-2.6.4/etc/hadoop/hdfs-site.xml /usr/local/ys/app/hbase/conf
    	cp /usr/local/ys/app/hadoop-2.6.4/etc/hadoop/core-site.xml /usr/local/ys/app/hbase/conf
    
    	3.9.5发放到其他机器
    	scp –r /usr/local/ys/app/hbase ys02: /usr/local/ys/app
    	scp –r /usr/local/ys/app/hbase ys03: /usr/local/ys/app
    	scp –r /usr/local/ys/app/hbase ys04: /usr/local/ys/app
    
    	3.9.6启动
    	cd  /usr/local/ys/app/hbase/bin
        ./ start-hbase.sh
    
    	3.9.7查看
    	进程:jps
    	进入hbase的shell:hbase shell
    	退出hbase的shell:quit
    	页面:http://master:60010/ 
    
    3.10KAfkaOffsetMonitor(Kafka集群的监控程序,本质就是一个jar包)
    
    	3.10.1上传jar包
    	略
    
    3.10.2 运行jar包
    nohup java -cp KafkaOffsetMonitor-assembly-0.2.1.jar com.quantifind.kafka.offsetapp.OffsetGetterWeb --zk ys01,ys02,ys04 --refresh 5.minutes --retain 1.day --port 8089 $
    

    4. 集群调优

    4.1 辅助工具尽量不安装到数据或者运算节点,避免占用过多计算或内存资源。
    
    4.2 dataNode和spark的slave节点尽量在一起;这样运算的时候就可以避免通过网络拉取数据,加快运算速度。
    
    4.3 Hadoop集群机架感知配置,配置之后可以使得数据在同机架的不同机器2份,然后其他机架机器1份,可是两台机器四台虚机没有必要配感知个人感觉。
    
    4.4 配置参数调优
    可以参考http://blog.csdn.net/chndata/article/details/46003399
    

    第三阶段(辅助工具工学习阶段)

    11)Sqoop(CSDN,51CTO ,以及官网)—20小时

    enter image description here

    1. 数据导出概念介绍
    2. Sqoop基础知识
    3. Sqoop原理及配置说明
    4. Sqoop数据导入实战
    5. Sqoop数据导出实战、
    6. Sqoop批量作业操作

    推荐学习博客:http://student-lp.iteye.com/blog/2157983
    官网:http://sqoop.apache.org/

    12)Flume(CSDN,51CTO ,以及官网)—20小时

    enter image description here

    1. FLUME日志采集框架介绍。
    2. FLUME工作机制。
    3. FLUME核心组件。
    4. FLUME参数配置说明。
    5. FLUME采集nginx日志案例(案例一定要实践一下)

    推荐学习博客:http://www.aboutyun.com/thread-8917-1-1.html
    官网:http://flume.apache.org

    13)Oozie(CSDN,51CTO ,以及官网)–20小时

    enter image description here

    1. 任务调度系统概念介绍。
    2. 常用任务调度工具比较。
    3. Oozie介绍。
    4. Oozie核心概念。
    5. Oozie的配置说明。
    6. Oozie实现mapreduce/hive等任务调度实战案例。

    推荐学习博客:http://www.infoq.com/cn/articles/introductionOozie
    官网:http://oozie.apache.org/

    14)Hue(CSDN,51CTO ,以及官网)–20小时

    推荐学习博客:http://ju.outofmemory.cn/entry/105162
    官网:http://gethue.com/

    第四阶段(不断学习阶段)

    每天都会有新的东西出现,需要关注最新技术动态,不断学习。任何一般技术都是先学习理论,然后在实践中不断完善理论的过程。

    备注

    1)如果你觉得自己看书效率太慢,你可以网上搜集一些课程,跟着课程走也OK 。如果看书效率不高就很网课,相反的话就自己看书。

    2)企业目前更倾向于使用Spark进行微批处理,Storm只有在对时效性要求极高的情况下,才会使用,所以可以做了解。重点学习Spark Streaming。

    3)快速学习的能力**、解决问题的能力沟通能力真的很重要。

    4)要善于使用StackOverFlow和Google(遇到解决不了的问题,先Google,如果Google找不到解决方能就去StackOverFlow提问,一般印度三哥都会在2小时内回答你的问题)。

    5)视频课程推荐:

    可以去万能的淘宝购买一些视频课程,你输入“大数据视频课程”,会出现很多,多购买几份(100块以内可以搞定),然后选择一个适合自己的。个人认为小象学院的董西成和陈超的课程含金量会比较高。

    ####四、持续学习资源推荐

    1. Apache 官网(http://apache.org/)
    2. Stackoverflow(https://stackoverflow.com/)
    3. Github(https://github.com/)
    4. Cloudra官网(https://www.cloudera.com/)
    5. Databrick官网(https://databricks.com/)
    6. About 云 :http://www.aboutyun.com/
    7. CSDN,51CTO (http://www.csdn.net/,http://www.51cto.com/)
    8. 至于书籍当当一搜会有很多,其实内容都差不多。

    ####五、项目案例分析

    1)点击流日志项目分析(此处借鉴CSDN博主的文章,由于没有授权,所以就没有贴过来,下面附上链接)----批处理

    http://blog.csdn.net/u014033218/article/details/76847263

    2)Spark Streaming在京东的项目实战(京东的实战案例值得好好研究一下,由于没有授权,所以就没有贴过来,下面附上链接)—实时处理
    http://download.csdn.net/download/csdndataid_123/8079233

    最后但却很重要一点:每天都会有新的技术出现,要多关注技术动向,持续学习。

    以上内容不保证一年以后仍适用。

    【推荐相关图书】

    1. 数据库可靠性工程:数据库系统设计与运维指南
    2. SQL必知必会
    3. 大数据项目管理:从规划到实现
    4. Spark高级数据分析
    5. 数据科学入门

    在这里插入图片描述

    展开全文
  • 前段时间,有几个HR朋友问我: 算法工程师的日常工作...1、 软件工程师、算法工程师、大数据工程师区别 2、 一个算法工程师的日常 3、 算法工程师有哪些类别、涉及的技术、作用领域 4、 算法工程师的段位怎么分...

    前段时间,有几个HR朋友问我:

    算法工程师的日常工作到底是在干嘛?

    平常看起来似乎还挺闲的,工资还那么高。

    有时候算法工程师好像又和大数据工程师是一样的工作?

     

    这到底是怎么回事呢?

     

    大约整理出以下几个疑问:

    1、 软件工程师、算法工程师、大数据工程师区别

    2、 一个算法工程师的日常

    3、 算法工程师有哪些类别、涉及的技术、作用领域

    4、 算法工程师的段位怎么分

    5、 算法工程师常见的面试问题

     

    这次我们先来看看第一个问题。

    软件工程师、算法工程师、大数据工程师有什么区别?

    从事软件开发相关工作的人员的统称。

    其工作内容会比较宽泛,从编程到算法,软件整体架构到编码的实现,都是需要涉及。

    而事实上,我们常规所说的软件工程师,其狭义的定义实际上软件研发工程师、程序员等,他们是主要进行软件架构和编码实现,会使用我们常常听到的JAVA、PHP等开发语言。

    下附目前市场上常规的软件工程师的类别:

    来自知乎

    大数据工程师,其实上并不存在这样的岗位。

    它实际上是与大数据相关联的一类岗位的总称。

    跟大数据有关的职位主要分成2大类:一类是应用类、一类是系统类。

    应用类

    偏向于数据分析、数据应用,比如我们经常讲到的数据分析、数据挖掘,均属于这个类别。这类职位主要的功能是提取数据、挖掘数据中隐含的业务信息,支撑企业决策。

     

    这个类别中的大数据算法,其实我们基本上可以理解算法工程师。

    这是唯一跟算法工程师有交叉的部分

     

    系统类

    偏向于系统开发,比如我们经常听到的hadoop、云计算,就是属于这个类型。这里其实主要是hadoop(一个分布式系统,简单理解为另外一种和Windows或者是MacOS一样的东西)偏多,开发语言一般是Java。而另外数据管理员(DBA)和大数据运维工程师,其实,还是原来的DBA,没有变化。

    他们的职责会更纯粹,他们需要知道如何把现实问题转化为数学的模型,并且把模型调到极致,从而解决问题。

     

    算法工程师工作内容更单一(其实有时候,他们只是在思考问题,而不是真的闲),但是更专,需要更好的数学功底。

     

    不过,目前市面上大部分招聘算法工程师的岗位,特指机器学习、数据挖掘领域的非确定性算法或解决一些非确定性问题(见名词通俗解释)。

     

    因此,有时候所谓的算法工程师,真的和大数据相关的工程师在工作上存在大量的看起来『重叠』。因为,这个工种是想办法从数据中获得规律,通过规律优化目前业务、从而产生价值。

     

    算法工程师大致分成以下2类,其中建模类的算法工程师,实际上的工作会和大数据相关的岗位相似:

    上述简单从职位的定义上做拆解,其实这3个岗位,其工作职责分别处于不同的阶段和层次。

     

    更多时候,一个完整优秀的产品,可能需要上述几个岗位协同进行配合工作。他们的工作流大约是这样的。

    这张图大致描述了不同岗位之前是在什么时候介入工作相互配合的。

     

    其实算法工程师,也可能是数据挖掘工程师。

     

    其实生活中有非常多跟算法有关的现象,只是我们没有发现而已。

    对于我们不是做技术类工作的人而言,我们只是不知道其细节,但我们应该要定位到其位置,这样我们在进行人才招聘的时候,才更容易做到心中有底。

    举例

    我们打开高德导航,从广州东站自驾开车前往祈福新村

     

    一般会出现3条路线,1、广州大道路线;2、新光快速路线;3、华南快速路线。

    每一条路线,均会有一个预估时间。

    这个时间,大约就是多项式时间的意思。

    作为驾驶员,当出现3 条导航规划的路径时,我想选择一条时间上最快的路径规划,这时显示华南快速路线比其他2条路线节约10分钟(这是NP问题,是不是真的可以节约10分钟)。

     

    我到达祈福新村,这时我问走新光快速的邻居A,其到达祈福新村的时间。

    这时他告诉说,他跟我同时到达祈福新村。

    这时,我才验证:华南快速路径规划(答案)不是正确答案。

     

    可能P问题和NP问题,你们会觉得跟我们的生活关联度不大。

    在算法工程师眼中,则是完成不一样的。

     

    以导航的例子来说,若出现绝大部分人验证华南快速这条路都和新光快速这条路的通行时间是一样的,那么说明该路路径并不是最节约时间的路径。

     

    高德导航的路径算法工程师,可能需要重新调整其路径规划的算法公式。

    这样,才能够更好的为高德用户服务了。

     

    也许他在数据库中抽取的数据还应该添加上

    1、车型的不同会导致驾驶速度不同,造成对通行时间的影响

    2、不同品牌的汽车,其加速减速对通行时间造成的影响

    3、男女驾驶员的驾驶技术不同,对通行时间造成的影响

    其实,这个过程就是他们在修改算法公式的参数,所以有时候算法工程师,还有一个外号,叫调参狗。

     

    但即使是这样,其最终的通行预估时间,也不见得一定准确。

    算法工程师想要获取相关的数据,也不见是全网数据。毕竟并不是所有人都使用的导航是高德。

     

    算法工程师通过不断的优化算法公式,让这个时间尽可能与真实的通行时间一致,相似度越高,大家对高德地图的信赖度就越高,用户就越多,高德才能够进一步割用户价值的韭菜。

    跟HR相关的例子:

     

    2018Q4季度要完成10个人的招聘(问题),12就是这个n,Q4,则时间是m。

     

    1、现在公司只有你一个人负责招聘,你个人的招聘能力是平均每个月完成4个人的招聘。那么完成这10个人员的招聘,则是3个月。m(12)=3个月。

     

    2、如果现在公司除你之外,另外一名同事也负责招聘,他的招聘能力是2个人/月,那么第一个月完成招聘人数为6人,第二个月为6人,整体的m(12)=2个月,提前完成任务。

     

    那么,是不是对招聘人员数量的增加,就会提高整个招聘的进度呢?

    答案是不一定。

     

    假如你是这个算法工程师,你觉得最终完成招聘任务的时间,会跟哪些因素有关系?

    答案在下期的《谁说HR不能了解算法工程师的日常?》公布。

    展开全文
  • 从需求分析师到数据仓库架构师、ETL工程师、数据分析工程师、报表开发工程师、数据挖掘工程师等,都可以称为BI工程师。 ETL工程师:从事系统编程、数据库编程和设计,掌握各种常用编程语言的专业技术人员。也称为...
  • 工程师文化不是谈论出来的…” “事实胜于雄辩. 但什么是事实, 则需要雄辩一番. “ 综下所述, 工程师文化是一种能力型文化, 关注可能性, 理性决策. 打造工程师文化有这么几件事可以做...
  • 算法工程师

    2019-12-28 12:30:19
    算法工程师算法工程师基础能力核心能力 算法工程师 算法工程师,从名字上我们就能看出,一名算法工程师首先应该具备算法能力和工程能力,我们可以认为这是基础的技术能力。由于现在开源技术的普及,Sklearn、...
  • 软件测试工程师经典面试题

    万次阅读 多人点赞 2018-10-27 23:55:52
      软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux...
  • 一线工程师告诉你嵌入式真实现状与发展前景

    万次阅读 多人点赞 2018-10-02 18:49:59
    个人说明:本人并不是年薪百万的技术大牛,但总算是一名合格的嵌入式工程师,现在某企业担任嵌入式软件工程师开发一职,以下观点可能会带有片面或者分析不全,但却是一名一线企业嵌入式软件开发者真实感受和所得,...
  • 诸位,咱当工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强!    
  • 什么样的人适合软件工程师

    千次阅读 2018-02-01 15:29:13
    什么样的人适合软件工程师? 下面的职业建议分别来自台湾的侯捷老师,以及美国的著名程序员尼古拉斯.泽卡斯(Nicholas C. Zakas)。我觉得这些建议非常好,很有启发,不仅适合 IT 行业,也适合其他行业。 兴趣...
  • 史上最全的中高级JAVA工程师-面试题汇总

    万次阅读 多人点赞 2019-10-15 18:58:32
    史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师
  • 从需求分析师到数据仓库架构师、ETL工程师、数据分析工程师、报表开发工程师、数据挖掘工程师等,都可以称为BI工程师。 ETL工程师:从事系统编程、数据库编程和设计,掌握各种常用编程语言的专业技术人员。也称为...
  • 什么是前端工程师?前端工程师需要掌握什么技能?前言前端工程师是一个出现了10年左右,而颇受重视则是最近这五六年的事情。受到重视到前端从业人员井喷,也就是这一两年而已。因为前端工程师这个职位出现得太晚,...
  • 就我所了解的,在现在以及可预见的未来,这个行业对软件工程师的需求绝对是碾压硬件工程师的。也就是说,招软件工程师的职位比硬件工程师的职位要多的多,而且软件工程师找工作上来说会比硬件工程师更容易。 先从...
  • 黑客马拉松遇上全栈工程师

    千次阅读 2015-05-04 17:03:03
    其实感觉后端工程师在这种创新类比赛上优势不明显,幸遇@赵青-Q不嫌弃,热情的接纳了我,终于有机会得以参赛。 曾经听前辈们闲聊的时候提到过,黑客马拉松应该是起源于FaceBook的一些小活动。每到了周五的下午...
  • 从实施工程师到研发工程师

    万次阅读 多人点赞 2016-07-09 17:12:01
    从实施工程师到研发工程师 人们常说乘着年轻应该多尝试不同的岗位,实习的时候是一名实施工程师,一年之后转岗研发工程师。 刚做实施的第一个星期,对我来说就是地狱般的感觉,因为带我的师傅非常严格,每天加班...
  • 工程师们同样也在思考如何获得更多成长和晋升的途径。 Eduards Sizovs 是 DevHub 的创始人,立志于为软件工程师群体提供专业的职业咨询服务,同时也是一位欧洲知名的技术布道师。 今天的文章基于 Eduards Sizovs 的...
  • 硬件工程师的十个软件技巧

    千次阅读 2013-04-28 21:33:20
    这些建议是在我从硬件工程师过渡至软件工程师期间,曾经希望得到的建议。 嵌入式系统设计不仅要求了解硬件,还要求了解...当工程师首次迈入软件开发领域时,会有种强烈的诱惑力促使他们立刻投入工作并开始写代码。这
  • 数据库系统工程师

    千次阅读 多人点赞 2020-11-21 21:17:32
    自己也是在大一下的时候,突然就“发了疯”似的喜欢上了数据库,所以就去考了计算机三级数据库技术、数据库系统工程师、计算机四级数据库工程师,下面是自己总结的一些“数据库系统工程师”考点,小伙伴们可以参考...
  • 嵌入式工程师结合经历聊硬件工程师和软件工程师哪个更有前途?我个人对美国这方面了解更多,就先从美国说一说。我相信硬件工程师和软件工程师的就业前景应该是提这...
  • 网络工程师 运维工程师 面试题

    千次阅读 2021-03-23 11:01:35
    26、误把Linux的系统文件删除时,通过哪个命令可以查到删除了什么文件?(rpm -va) 27、用什么软件可以方便管理Linux的ftp服务器? 28、rip、igrp、eigrp、ospf这四个路由协议中,哪些是内部协议? 29、你接触过...
  • 算法工程师之劝退檄文

    千次阅读 2017-12-12 22:01:03
    以下观点不保证客观,仅一家之言,如存在异议,诠做笑谈。 时间成本。...算法工程师的职位大多集中在一线互联网公司,创业型公司在完成一定的融资后,产品成熟的时候才需要算法工程师,因此能提供的工作机
  • 我每个月第一天(也许是第二天,第三天),会爬招聘网站,并在CSDN发布。 趋势 本月全国程序员平均工资为13451元,比上个月略涨。 北上广深杭工资趋势 ...区块链工程师的工资比算法工程师要高哇,后悔...
  • 谷歌工程师薪资有多少 羡慕嫉妒恨

    千次阅读 2015-09-28 20:06:33
    如果你在谷歌当工程师,你的收入堪比华尔街的金融人才。以下是谷歌15个职位的收入: 1. 业务发展经理:159502美元 2. 技术项目经理: 159738美元 3. 营销经理: 160726美元 4. 网站可靠性工程师: 167360...
  • 程序员是做全栈工程师好?还是专注一个领域好?

    万次阅读 多人点赞 2020-04-03 07:45:43
    昨天,有位大一的同学私信我,说他要做全栈工程师。 我一听,这不害了孩子么,必须制止啊。 谁知,讲到最后,更确定了他做全栈程序员的梦想。 但凡做全栈工程师的,要么很惨,要么很牛! 但凡很牛的,绝不是一...
  • 有些朋友在入行网络工程师的时候很担心这种技术类的岗位可能干几年,最后就被行业所淘汰掉了。 所以网工记小编来根据自己的行业经验,给大家分析一下网络工程师是青春饭吗 一 网络工程师也分成不同的技术岗位 ...
  • 工程师文化

    千次阅读 2011-07-27 11:26:10
    百度是国内互联网公司中,比较具有工程师文化的一家公司。尽管作为百度的用户,我常常会觉得不爽,但如果从百度员工的角度考虑,百度也算得上一家相当不错的公司,有自由、有乐趣、有期权、有个人价值的实现……百度...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 430,598
精华内容 172,239
关键字:

怎么当工程师