整理系列-20161111-Spark学习周记_1

25 篇文章 0 订阅
11 篇文章 0 订阅
双十一是大丰收之日,不如也来个blog大丰收吧!(其实是因为,我没有抢到想要的!「呵呵」)

2016.02.05

Hadoop学习

51CTO是一个神奇的网站!

Hadoop安装

要点:
1. HADOOP_HOME不可用(/bin和/sbin中可能会生成对于该系统变量的使用),所以用HADOOP_INSTALL来替代
2. 在Linux中配置path是用:冒号进行分隔的
3. which gedit 可以查看gedit的目录
4. 若用Ubuntu或者debain系统,sudo gedit environment可以编辑path值
5. source environment或者其他配置文件名,可以使得配置文件中的内容立即生效
6. echo $HADOOP_INSTALL可以查看path是否已经生效
7. hadoop version查看hadoop是否已经生效,若未生效,则重启Ubuntu
8. Hadoop的安装过程:
(1) hadoop下载(apache-releases-binary-复制链接)
挂载目录-cd /mnt/hgfs
解压缩-tar zxvf
Binary直接就是可执行目录!我的天!!!
(2) 安装
(3) 配置HADOOP_INSTALLPATH环境变量/etc/environment
(4) 测试安装 hadoop version

Hadoop简介

  • 特点:分布式、可靠性、可伸缩
  • 擅长:搜索引擎、海量数据存储

发展史

  • 2002年Apache Nutch
  • 2003年GFS论文
  • 2004年Nutch NDFS->HDFS
  • 2004年Google-MapReduce

现状

  • Yahoo:广告/用户行为分析/反垃圾邮件
  • 阿里:淘宝/天猫/支付宝/秒杀
  • 腾讯:游戏/QQ/财付通

需要解决的核心问题(网页/网络)Hadoop集群!商业价值!!

海量数据(量级:t/p/e/z/y)

1. 怎么存储?分隔开来,放到多个主机上—->分布式存储dfs:distributed file system(hadoop)
2. 怎么运算?MapReduce->映射&化简
存储是基础,并发执行!

VMware安装与配置

  • Virtualbox属于oracle?
  • VMware workstation pro->x86版本(硬件要求:8G内存以上+SSD硬盘)

Ubuntu下载与虚拟机下安装

Ubuntu-Server-12.04-amd64

Hadoop配置

三种模式:独立模式(本地模式)MapReduce、伪分布式、完全分布式
1. 独立模式没有守护程序运行:jps命令行后发现除了jps外没有其他java进程正在运行
2. Hadoop fs -ls /:向hadoop发送ls / 指令 发现独立模式下是本地模式
3. Local job runner

2016.02.06

Hadoop配置伪分布式

  • Core-site.xml - 名称节点配置(hdfs://localhost/)
  • Hdfs-site.xml - 数据节点的个数(伪分布式下为1)
  • mapred-site.xml - mapreduce的框架(Hadoop2.0下为yarn)
  • Yarn-site.xml - yarn的资源管理器及节点管理器(localhost & mapreduce shuffle)

忘记从哪里扒来的了

  • Namenode-NN存放整个文件系统的目录(备份文件称为Secondary node)
  • Datanode-DN存放实际数据(备份文件称为副本)

大概来自一个很厉害的地方1

大概来自一个很厉害的地方2

  • config ssh:并没有区分伪分布模式和完全分布模式,在单个主机上运行的伪分布式是完全分布模式的一种特例。
  • sudo apt-cache search xxx 查询所有满足xxx名称的开源包
  • sudo apt-get install xxx
  • ssh-keygen 生成秘钥(网络上的一种非对称加密通信:用公钥加密,私钥解密)
  • ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa(.ssh表示其为隐藏文件目录)
  • cat id_rsa.pub >> authorized_keys

  • 开启过程

start-dfs.sh --config $HADOOP_INSTALL/etc/hadoop/hadoop-pseudo
start-yarn.sh --config $HADOOP_INSTALL/etc/hadoop/hadoop-pseudo
Mr-jobhistory-daemon.sh start history server

# 或者使用
start-all.sh
  • 关闭过程
    stop-yarn.sh-关闭集群管理器(yarn-resourcemanager-nodemanager)
    stop-dfs.sh-关闭dfs
    Localhost:50070-可以访问namenode
    Localhost:8088-可以访问资源管理器节点cluster
    Localhost:19888-历史服务器

  • 设置hadoop_conf_dir环境变量:

export HADOOP_CONF_DIR=$HADOOP_INSTALL/hadoop/pseudo
# Hadoop中的文件操作与基本的Linux下的文件操作基本保持一致。

Hadoop win7下

  • Dexpot - 多窗口管理页面
  • Hadoop-Common-master-2.2.0:解压master.zip\bin* 复制到${hadoop_install}\bin\下,忽略覆盖

MapReduce编程

  • Jar包引入:
    必须加入所有的hadoop项目中的jar包,并去除所有的test和source包
  • Mapper中的参数「keyIn,valueIn,keyOut,valueOut」 -> import hadoop.io
  • Context.write(new Text(year), new IntWritable(teparature))//必须和extends Mapper中的输出结果相同,泛型!!
  • Refactor->rename可以一次性改变所有相同的变量的名称
  • Math.max(),我的天,惊呆了!
  • 补充一下一个神奇的eclipse快捷键用法:
    Alt+Shift+J(光标放在方法名上) -> 快速生成如下的注释行!
/**
* @param str
* @return
* @throws  ParseException
*/
/*光标放在其他位置一般效果为生成文件Author注释行!*/
/**
* @author ZF *
*/
/*你值得拥有! */
  • APP类 - 入口函数
Job job = new Job();// Mapred 为旧版本的 API;mapreduce 为新版本的 API
Job.setJarByClass(Max Temprature);//本类 job.setJobName(“max”);//设置作业名称,便与调试
FileInputFormat.addInputPath(job, new Path(arg[0]));//添加输入路径,可以添加多个路 径,且 //输入文件不仅可以是一个具体文件,也可以是一个文件夹(路径,但不是递归 引入的)
FileOutFormat.setOutPath(job, new Path(arg[1])); //设置输出路径,而且不能存在该输出路径,不然会报错//引入 hadoop.fs.Path 包
job.setMapperClass(MaxTemparatureMapper.class);//设置 mapper 类
job.setReducerClass(MaxTemparatureReducer.class);//设置 reducer 类 
job.setOutputKeyClass(Text.class);//设置输出的 key 类型
job.setOutputValueClass(IntWritable.class);//设置输出的 value 类型
job.waitForCompletion(true);//等待作业的完成,之后可以再这里解决乱码问题
  • 最终运行
    导出 jar 包(java->jar 文件) / 设置 main class / 查看 jar / 运行 设置环境变量
    • Win7: set HADOOP_CLASSPATH=HadoopDemo2.jar
    • Linux:
      • export HADOOP_CLASSPATH=HadoopDemo2.jar //记得设置堆内存大小
      • hadoop -Xmx1000m jar com.shu.zhou.main file:///c:\a\19*.gz d:\x\out
  • 在集群中运行(非常相似) 上传文件到 hadoop 集群中:
Hadoop fs -put /path  #  (-R表示递归显示)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值