Hadoop实战的作品目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop实战的作品目录相关的知识,希望对你有一定的参考价值。

参考技术A

第一部分 Hadoop——一种分布式编程框架
第1章 Hadoop简介 2
1.1 为什么写《Hadoop 实战》 3
1.2 什么是Hadoop 3
1.3 了解分布式系统和Hadoop 4
1.4 比较SQL数据库和Hadoop 5
1.5 理解MapReduce 6
1.5.1 动手扩展一个简单程序 7
1.5.2 相同程序在MapReduce中的扩展 9
1.6 用Hadoop统计单词——运行第一个程序 11
1.7 Hadoop历史 15
1.8 小结 16
1.9 资源 16
第2章 初识Hadoop 17
2.1 Hadoop的构造模块 17
2.1.1 NameNode 17
2.1.2 DataNode 18
2.1.3 Secondary NameNode 19
2.1.4 JobTracker 19
2.1.5 TaskTracker 19
2.2 为Hadoop集群安装SSH 21
2.2.1 定义一个公共账号 21
2.2.2 验证SSH安装 21
2.2.3 生成SSH密钥对 21
2.2.4 将公钥分布并登录验证 22
2.3 运行Hadoop 22
2.3.1 本地(单机)模式 23
2.3.2 伪分布模式 24
2.3.3 全分布模式 25
2.4 基于Web的集群用户界面 28
2.5 小结 30
第3章 Hadoop组件 31
3.1 HDFS文件操作 31
3.1.1 基本文件命令 32
3.1.2 编程读写HDFS 35
3.2 剖析MapReduce程序 37
3.2.1 Hadoop数据类型 39
3.2.2 Mapper 40
3.2.3 Reducer 41
3.2.4 Partitioner:重定向Mapper输出 41
3.2.5 Combiner:本地reduce 43
3.2.6 预定义mapper和Reducer类的单词计数 43
3.3 读和写 43
3.3.1 InputFormat 44
3.3.2 OutputFormat 49
3.4 小结 50
第二部分 实战
第4章 编写MapReduce基础程序 52
4.1 获得专利数据集 52
4.1.1 专利引用数据 53
4.1.2 专利描述数据 54
4.2 构建MapReduce程序的基础模板 55
4.3 计数 60
4.4 适应Hadoop API的改变 64
4.5 Hadoop的Streaming 67
4.5.1 通过Unix命令使用Streaming 68
4.5.2 通过脚本使用Streaming 69
4.5.3 用Streaming处理键/值对 72
4.5.4 通过Aggregate包使用Streaming 75
4.6 使用combiner提升性能 80
4.7 温故知新 83
4.8 小结 84
4.9 更多资源 84
第5章 高阶MapReduce 85
5.1 链接MapReduce作业 85
5.1.1 顺序链接MapReduce作业 85
5.1.2 具有复杂依赖的MapReduce链接 86
5.1.3 预处理和后处理阶段的链接 86
5.2 联结不同来源的数据 89
5.2.1 Reduce侧的联结 90
5.2.2 基于DistributedCache的复制联结 98
5.2.3 半联结:map侧过滤后在reduce侧联结 101
5.3 创建一个Bloom filter 102
5.3.1 Bloom filter做了什么 102
5.3.2 实现一个Bloom filter 104
5.3.3 Hadoop 0.20以上版本的Bloom filter 110
5.4 温故知新 110
5.5 小结 111
5.6 更多资源 112
第6章 编程实践 113
6.1 开发MapReduce程序 113
6.1.1 本地模式 114
6.1.2 伪分布模式 118
6.2 生产集群上的监视和调试 123
6.2.1 计数器 123
6.2.2 跳过坏记录 125
6.2.3 用IsolationRunner重新运行出错的任务 128
6.3 性能调优 129
6.3.1 通过combiner来减少网络流量 129
6.3.2 减少输入数据量 129
6.3.3 使用压缩 129
6.3.4 重用JVM 132
6.3.5 根据猜测执行来运行 132
6.3.6 代码重构与算法重写 133
6.4 小结 134
第7章 细则手册 135
7.1 向任务传递作业定制的参数 135
7.2 探查任务特定信息 137
7.3 划分为多个输出文件 138
7.4 以数据库作为输入输出 143
7.5 保持输出的顺序 145
7.6 小结 146
第8章 管理Hadoop 147
8.1 为实际应用设置特定参数值 147
8.2 系统体检 149
8.3 权限设置 151
8.4 配额管理 151
8.5 启用回收站 152
8.6 删减DataNode 152
8.7 增加DataNode 153
8.8 管理NameNode和SNN 153
8.9 恢复失效的NameNode 155
8.10 感知网络布局和机架的设计 156
8.11 多用户作业的调度 157
8.11.1 多个JobTracker 158
8.11.2 公平调度器 158
8.12 小结 160
第三部分 Hadoop也疯狂
第9章 在云上运行Hadoop 162
9.1 Amazon Web Services简介 162
9.2 安装AWS 163
9.2.1 获得AWS身份认证凭据 164
9.2.2 获得命令行工具 166
9.2.3 准备SSH密钥对 168
9.3 在EC2上安装Hadoop 169
9.3.1 配置安全参数 169
9.3.2 配置集群类型 169
9.4 在EC2上运行MapReduce程序 171
9.4.1 将代码转移到Hadoop集群上 171
9.4.2 访问Hadoop集群上的数据 172
9.5 清空和关闭EC2实例 175
9.6 Amazon Elastic MapReduce和其他AWS服务 176
9.6.1 Amazon Elastic MapReduce 176
9.6.2 AWS导入/导出 177
9.7 小结 177
第10章 用Pig编程 178
10.1 像Pig一样思考 178
10.1.1 数据流语言 179
10.1.2 数据类型 179
10.1.3 用户定义函数 179
10.2 安装Pig 179
10.3 运行Pig 180
10.4 通过Grunt学习Pig Latin 182
10.5 谈谈Pig Latin 186
10.5.1 数据类型和schema 186
10.5.2 表达式和函数 187
10.5.3 关系型运算符 189
10.5.4 执行优化 196
10.6 用户定义函数 196
10.6.1 使用UDF 196
10.6.2 编写UDF 197
10.7 脚本 199
10.7.1 注释 199
10.7.2 参数替换 200
10.7.3 多查询执行 201
10.8 Pig实战——计算相似专利的例子 201
10.9 小结 206
第11章 Hive及Hadoop群 207
11.1 Hive 207
11.1.1 安装与配置Hive 208
11.1.2 查询的示例 210
11.1.3 深入HiveQL 213
11.1.4 Hive小结 221
11.2 其他Hadoop相关的部分 221
11.2.1 HBase 221
11.2.2 ZooKeeper 221
11.2.3 Cascading 221
11.2.4 Cloudera 222
11.2.5 Katta 222
11.2.6 CloudBase 222
11.2.7 Aster Data和Greenplum 222
11.2.8 Hama和Mahout 223
11.3 小结 223
第12章 案例研究 224
12.1 转换《纽约时报》1100万个库存图片文档 224
12.2 挖掘中国移动的数据 225
12.3 在StumbleUpon推荐最佳网站 229
12.3.1 分布式StumbleUpon的开端 230
12.3.2 HBase和StumbleUpon 230
12.3.3 StumbleUpon上的更多Hadoop应用 236
12.4 搭建面向企业查询的分析系统——IBM的ES2项目 238
12.4.1 ES2系统结构 240
12.4.2 ES2爬虫 241
12.4.3 ES2分析 242
12.4.4 小结 249
12.4.5 参考文献 250
附录A HDFS文件命令 251

Hadoop最简单入门实战

一、部署Hadoop本地模式

  1. 搭建linux环境
    我用的centos7
  2. 在/opt目录下创建目录
mkdir module
  1. 安装jdk
  2. 下载hadoop https://hadoop.apache.org/releases.html 并解压到/opt/module目录
  3. 配置hadoop环境变量

vi /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_151
HADOOP_HOME=/opt/module/hadoop-2.10.0
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME/bin
export JAVA_HOME CLASSPATH PATH

配置完毕,刷新

source /etc/profile

这就安装完毕了,简单吧。。。

二、运行Demo

  1. 建立一个测试用的输入文件

echo \'hadoop mapreduce hivehbase spark stormsqoop hadoop hivespark\' > data/wc.input

  1. 运行命令
    官方提供的计算单词数量的程序

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount ../data/wc.input output

  1. 运行完成后,会创建一个output目录,里面中有 _SUCCESS 文件说明 JOB 运行成功,part-r-00000 是输出结果文件。结果示例如下:

三、伪分布式部署

进入hadoop目录

cd /opt/module/hadoop-2.10.0/etc/hadoop

  1. 配置hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_151
  1. 配置core-site.xml
<configuration>
   <!-- 指定HDFS中namenode的路径  -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://eshop01:9000</value>
    </property>
   <!-- 指定HDFS运行时产生的文件的存储目录  -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.10.0/data/tmp</value>
    </property>

</configuration>

  1. 配置hdfs-site.xml
<property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  1. 启动集群
  • 格式化NameNode(第一次启动格式化)

bin/hdfs namenode -format

  • 启动namenode

sbin/hadoop-daemon.sh start namenode

  • 启动datanode

sbin/hadoop-daemon.sh start datanode

四、HDFS操作

  1. hdfs创建目录

bin/hdfs dfs -mkdir -p /usr/mmc

  1. 上传本地文件到hdfs

bin/hdfs dfs -put /opt/module/data/wc.input /usr/mmc

  1. 删除文件

bin/hdfs dfs -rm -r /usr/mmc

网页上查看效果:

五、启动YARN

  1. 配置yarn-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_151

  1. 配置yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop101</value>
</property>

</configuration>


hadoop101那里要配置为你虚拟机的hostname

  1. 配置mapred-env.sh

export JAVA_HOME=/usr/local/jdk1.8.0_151

  1. 配置mapred-site.xml(由mapred-site.xml.template重命名得到)

mv mapred-site.xml.template mapred-site.xml

<configuration>
        <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
</configuration>

  1. 启动yarn
 sbin/yarn-daemon.sh start resourcemanager
 sbin/yarn-daemon.sh start nodemanager
  1. 运行mapreduce程序
  • 先传一个文件到hdfs上
hdfs dfs -mkdir -p /usr/mmc/input
hdfs dfs -put ../data/wc.input /usr/mmc/input
  • 运行程序

注意:运行之前用jps查看下,这些都启动没有NameNode、NodeManager 、DataNode、ResourceManager

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /usr/mmc/input /usr/mmc/output
  • 查看运行进度

http://192.168.1.21:8088/cluster

此时可以看到执行的进度了,但是那个History链接还是点不动,需要启动历史服务器

  1. 配置历史服务器
  • 打开mapred-site.xml
<configuration>
        <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
        <property>
        <name>mapreduce.jobhistory.address</name>
        <value>eshop01:10020</value>
        </property>
        <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>eshop01:19888</value>
        </property>
</configuration>

  • 启动

sbin/mr-jobhistory-daemon.sh start historyserver

六、日志聚集

注意:开启日志聚集需要重启Nodemanager,resourcemanager,historymanager

  1. 配置yarn-site.xml,增加如下配置
<!--开启日志聚集功能  -->
<property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
</property>
<!-- 日志保留时间  -->
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
</property>

  1. 启动Nodemanager,resourcemanager,historymanager

  2. 运行实例程序

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount /usr/mmc/input /usr/mmc/output
  1. 查看log
    http://192.168.1.21:19888/jobhistory 点击指定job进去,点log

以上是关于Hadoop实战的作品目录的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop最简单入门实战

Hadoop集群部署实战

Hadoop分布式集群实战

Hadoop-2.4.1学习之FileSystem及实战

hadoop实战之eclipse插件的安装《上》

大数据实战——hadoop集群实现免密登录和文件互传