Hadoop(学习·2)
Hadoop
操作步骤:
192.168.1.110-113 主机名分别为 nn01(zhuji) node1 node2 node3 个个主机之间要免密 互通/etc/host
1. 安装openjdk-devel
# yum -y install java-1.8.0-openjdk-devel
# yum -y install java-1.8.0-openjdk.x86_64
2. 修改配置文件
# vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
ExportJAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre"
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/usr/local/hadoop/etc/hadoop"}
修改这两行给配置路径
3. 把hadoop包发送到管理机nn01
# mv hadoop /usr/local/hadoop
# cd /usr/local/hadoop/etc/hadoop/
# vim slaves
Node1
Node2
Node3
# core-site.xml
<configuration>
vim<name>fs.defaultFS</name>
<value>hdfs://nn01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/hadoop</value>
</property>
</configuration>
# for i in 192.168.1.11{1..3}; do ssh $i mkdir /var/hadoop; done
# vim hdfs-site.xml
<configuration>
<name>namenode.http-address</name>
<value>nn01:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>nn01:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
4. 上述配置文件中的如<name>dfs.namenode.secondary.http-address</name>中间这些可以在登录dahoop.hapache.org复制
以上可以登录hadoop.apache.org
然后在左下角找与自己安装最近的版本然后
在左下角最下面
然后把hadoop整个文件都发送到其他的节点node1 node2 node3
# for i in 192.168.1.11{1..3}; do scp -r /usr/local/hadoop/ $i:/usr/local/; done
# ./bin/hdfs namenode -format
# ./sbin/start-dfs.sh
# jps
# vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
# vim yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>nn01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
# cd /usr/local/hadoop
# ./sbin/start-yarn.sh 重启
# ./bin/yarn node -list
# http://192.168.1.110:50070
# http://192.168.1.110:50090
# http://192.168.1.110:8088
# http://192.168.1.111:50075
# http://192.168.1.111:8042
5. 成功可以看网页就算为成功
# ./bin/hadoop fs -ls / 查看【集群】文件系统的/情况
ls / 查看【本地】文件系统的/ 情况
# ./bin/hadoop fs -mkdir /oo 在【集群】文件系统创建文件夹
mkdir /oo 在【本地】文件系统创建文件夹
# ./bin/hadoop fs -put 上传到集群文件系统
# ./bin/hadoop fs *.txt -put /oo
# ./bin/hadoop fs -ls /
# ./bin/hadoop fs -get 下载到本地文件系统
调用集群分析
# ./bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.6.jar wordcount /oo /xx
# ./bin/hadoop fs -cat /xx/*
安装两台机器。禁用selinux,卸载firewalld
192.168.1.115 》 nsfgw
192.168.1.120 》 client
注意:Nfsgw配置/etc/hosts 需要把nn01主机的/etc/hosts
在nn01与nfsgw添加用户nsd1802(uid giu都要一样)
1. 停止hadoop集群/usr/local/hadoop/sbin/stop-all.sh
在nn01主机上配置vim core-site.xml
<property>
<name>hadoop.proxyuser.nsd1802.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.nsd1802.hosts</name>
<value>*</value>
</property>
2. 同步配置到node1 node2 node3 重新启动
在nn01机发送/usr/local/hadoop给nfsgw主机
在主机nfsgw
# rm -rf /usr/local/hadoop/logs
# mkdir /usr/local/hadoop/logs
# setfacl -m usr:nsd1802:rwx logs
在nfsgw主机
# yum -y install java-1.8.0-openjdk-devel
# yum -y install java-1.8.0-openjdk.x86_64
# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<property><name>nfs.exports.allowed.hosts</name>
<value>* rw</value>
</property>
<property>
<name>dfs.namenode.accesstime.precision</name>
<value>3600000</value>
</property>
<name>nfs.dump.dir</name>
<value>/var/nfstemp</value>
</property>
<property>
<name>nfs.rtmax</name>
<value>4194304</value>
</property>
<property>
<name>nfs.wtmax</name>
<value>1048576</value>
</property>
<property>
<name>nfs.port.monitoring.disabled</name>
<value>false</value>
</property>
</configuration>
3. 创建/var/hadoop
创建/var/nfstemp
# chown nsd1802:users /var/nfstemp
# yum remove rpcbind nfs-utils
# /usr/local/hadoop/sbin/hadoop-daemon.sh --script ./bin/hdfs start portmap
# su -l nsd1802
# /usr/local/hadoop/sbin/hadoop-daemon.sh --script ./bin/hdfs start nfs3
# jps
1141 Nfs3
1047 Portmap
1327 Jps
4. 在client的机
# yum -y install nfs-utilsmount -t nfs -o
# mount -t nfs -o vers=3,proto=tcp,nolock,noacl,noatime,sync 192.168.1.115:/ /mnt/
zookeeper
• Zookeeper 实验
– 搭建 zookeeper 集群知
– 添加 observer
– 查找 leader
– 模拟 leader 故障
– 模拟 follower 故障
– 故障恢复
kafka集群
• kafka是什么?
– Kafka是由LinkedIn开发的一个分布式的消息系统
– kafka是使用Scala编写
– kafka是一种消息中间件
• 为什么要使用 kafka
– 解耦、冗余、提高扩展性、缓冲
– 保证顺序,灵活,削峰填谷
– 异步通信
kafka集群
• kafka 角色不集群结构
– producer:生产者,负责发布消息
– consumer:消费者,负责读取处理消息
– topic:消息的类别
– Parition:每个Topic包含一个戒多个Partition.
– Broker:Kafka集群包含一个戒多个服务器
– Kafka通过Zookeeper管理集群配置,选丼leader
l kafka集群
• kafka 角色不集群结构
l kafka集群
• kafka 集群的安装配置
– kafka 集 群 的 安 装 配 置 是 依 赖 zookeeper 的 , 搭 建kafka 集群乊前,首先请创建好一个可用 zookeeper集群
– 安装 openjdk 运行环境
– 分发 kafka 拷贝到所有集群主机kafka集群
• kafka 集群的安装配置
• server.properties
– broker.id
– 每台服务器的broker.id都丌能相同
– zookeeper.connect
– zookeeper 集群地址,丌用都列出,写一部分即可
– 修改配置文件
– 吭劢不验证
• kafka 集群的安装配置
– 在所有主机吭劢服务
– /usr/local/kafka/bin/kafka-server-start.sh
-daemon /usr/local/kafka/config/server.properties
– 验证
– jps 命令应该能看到 kafka 模块
– netstat 应该能看到 9092 在监听
l kafka集群
• 集群验证不消息发布
– 创建一个 topic
./bin/kafka-topics.sh --create --partitions 2 --replication-
factor 2 --zookeeper node3:2181 --topic mymsg
– 查看已经存在的 topic
./bin/kafka-topics.sh --list --zookeeper node2:2181
– 查看刚刚创建的 topic
./bin/kafka-topics.sh --describe --zookeeper node1:2181 --topic mymsg
l kafka集群
• 集群验证不消息发布
– 在两个终端里面,生产者发布消息,消费者读取消息
– 生产者
./bin/kafka-console-producer.sh --broker-list master:9092,node1:9092 --topic mymsg
– 消费者
./bin/kafka-console-consumer.sh --bootstrap-server node2:9092,node3:9092 --topic mymsg
– --from-beginning 表示从开始读取消息
l kafka集群实验
• 利用 zookeeper 搭建一个 kafka 集群
• 创建一个 topic
• 查看系统 topic 情冴
• 模拟生产者发布消息
• 模拟消费者接收消息
Hadoop(学习·2)的更多相关文章
- Hadoop学习之旅二:HDFS
本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- Hadoop学习之旅三:MapReduce
MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...
- [Hadoop] Hadoop学习历程 [持续更新中…]
1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成 ...
- Hadoop学习笔记—2.不怕故障的海量存储:HDFS基础入门
一.HDFS出现的背景 随着社会的进步,需要处理数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是却不方便管理和维护—>因此,迫切需要一种系统来管理多 ...
- Hadoop学习路线图
Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括, ...
- Hadoop学习(5)-- Hadoop2
在Hadoop1(版本<=0.22)中,由于NameNode和JobTracker存在单点中,这制约了hadoop的发展,当集群规模超过2000台时,NameNode和JobTracker已经不 ...
- Hadoop学习总结之五:Hadoop的运行痕迹
Hadoop学习总结之五:Hadoop的运行痕迹 Hadoop 学习总结之一:HDFS简介 Hadoop学习总结之二:HDFS读写过程解析 Hadoop学习总结之三:Map-Reduce入门 Ha ...
- Hadoop学习笔记(7) ——高级编程
Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...
- Hadoop学习笔记(6) ——重新认识Hadoop
Hadoop学习笔记(6) ——重新认识Hadoop 之前,我们把hadoop从下载包部署到编写了helloworld,看到了结果.现是得开始稍微更深入地了解hadoop了. Hadoop包含了两大功 ...
随机推荐
- Rust入坑指南:齐头并进(上)
我们知道,如今CPU的计算能力已经非常强大,其速度比内存要高出许多个数量级.为了充分利用CPU资源,多数编程语言都提供了并发编程的能力,Rust也不例外. 聊到并发,就离不开多进程和多线程这两个概念. ...
- 建议5:比较function语句和function表达式
在Javascript语言中,既有function语句,也有函数表达式,这是令人困惑的.因为它们看起来是相同的.一个function语句就是一个值为一个函数的var语句的简写形式. 下面语句: fun ...
- How to do error checking in CUDA(如何在CUDA里做错误检查)
https://codeyarns.com/2011/03/02/how-to-do-error-checking-in-cuda/ Error checks in CUDA code can hel ...
- JavaScript隐式类型转换(详解 +,-,*,/,==)
JavaScript 在 运算 或 比较 之前, 会自动进行隐式类型转换. 下面我们来仔细讲一讲 + - * / == 运算符经历了哪些过程. 类型转换 ECMAScript 运行时系统会在需要时从事 ...
- Scikit-Learn 源码研读 (第二期)基类的实现细节
目录 BaseEstimator `get_params` `set_params` ClassifierMixin RegressorMixin 检查传入的对象 检查样本数和权重系数 实现$R^2$ ...
- Go语言defer分析
什么是defer? defer语句是专门在函数结束以后做一些清理工作的.我们先举一个例子来更好的理解,现在有一个函数,它的作用是把一个文件内容拷贝到另一个文件. func CopyFile(dstNa ...
- Dapper操作MySQL数据库获取JSON数据中文乱码
前言 在项目中利用Dapper将JSON数据存储到MySQL数据库,结果发现JSON数据中的中文乱码,特此记录,希望对存储JSON的童鞋能有所帮助,文中若有错误之处,还望批评指正. Dapper获取J ...
- JavaScript----DOM和事件的简单学习
##DOM简单学习 * 功能:控制html文档的内容 * 代码:获取页面标签(元素)对象:Element * document.getElementById("id值"):通 ...
- 洛谷 P2568 GCD 题解
原题链接 庆祝一下:数论紫题达成成就! 第一道数论紫题.写个题解庆祝一下吧. 简要题意:求 \[\sum_{i=1}^n \sum_{j=1}^n [gcd(i,j)==p] \] 其中 \(p\) ...
- UCF Local Programming Contest 2016 J题(二分+bfs)
题目链接如下: https://nanti.jisuanke.com/t/43321 思路: 显然我们要采用二分的方法来寻找答案,给定一个高度如果能确定在这个高度时是否可以安全到达终点,那我们就可以很 ...