搭建Hadoop的全分布模式

此教程仅供参考

注意:此文档目的是为了本人方便以后复习,不适合当教程,以免误导萌新...

1、安装三台Linux
2、在每台机器上安装JDK
3、配置每台机器的免密码登录
(*) 生成每台机器的公钥和私钥
hadoop112: ssh-keygen -t rsa
hadoop113: ssh-keygen -t rsa
hadoop114: ssh-keygen -t rsa

(*) 把hadoop112的公钥给hadoop112,Hadoop113 和hadoop114
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.112
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.113
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.114

(*) 把hadoop113的公钥给hadoop112,Hadoop113 和hadoop114
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.112
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.113
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.114

(*) 把hadoop114的公钥给hadoop112,Hadoop113 和hadoop114
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.112
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.113
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.137.114

4、在主节点(hadoop112)配置Hadoop
(*) 加压: tar -zxvf hadoop-2.4.1.tar.gz -C ~/training/
(*) 设置环境变量方式1
vi ~/.bash_profile
HADOOP_HOME=/opt/hadoop-2.6.4
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH

生效
source ~/.bash_profile
设置环境变量方式2
vi /etc/profile
HADOOP_HOME=/opt/hadoop-2.6.4
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH

生效ii
source /etc/profile


(*) 修改配置文件
(1)hadoop-env.sh
25行: export JAVA_HOME=/opt/modules/jdk1.8.0_91

 



(2) hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

(3) core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.8.101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.6.4/tmp</value>
</property>

(4) mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

(5) yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.8.101</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

(6) slaves 从节点
192.168.8.101
192.168.8.102
192.168.8.103

(*) 进行格式化
hdfs namenode -format

出现日志:说明格式化成功
Storage directory /root/training/hadoop-2.4.1/tmp/dfs/name has been successfully formatted.

(*) 把配置好的Hadoop(112机器上),拷贝到101,102,103上
scp -r /opt/hadoop-2.6.4/ root@192.168.80.101:/opt
scp -r hadoop-2.4.1/ root@192.168.80.102:/root/training
scp -r hadoop-2.4.1/ root@192.168.80.103:/root/training

5、 修改101,102和103的环境变量
vi ~/.bash_profile
HADOOP_HOME=/root/training/hadoop-2.4.1
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH

生效
source ~/.bash_profile
环境变量配置方式2也可以

6、在主节点上(hadoop100)启动hadoop集群

start-dfs.sh

 


start-yarn.sh

只能在主节点上启动yarn,否则会报错!

上面的图是主节点的截图.

下面的是从节点的截图.

 

下图是HDFS的UI界面:

下图是yarn的UI界面:

 



7、日志:
Starting namenodes on [192.168.137.112]
192.168.137.112: starting namenode
192.168.137.113: starting datanode
192.168.137.114: starting datanode

starting resourcemanager
192.168.137.113: starting nodemanager
192.168.137.114: starting nodemanager

8、进程信息:
主节点: hadoop111
19589 ResourceManager
19458 SecondaryNameNode
19288 NameNode

从节点1:hadoop113
19220 NodeManager
19121 DataNode

从节点2:hadoop114
14159 NodeManager
13739 DataNode

9、错误:
org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException: Datanode denied communication with namenode because hostname cannot be resolved

10、配置主机名(hadoop112 hadoop113 hadoop114)
vi /etc/hosts
192.168.8.101 Dog
192.168.8.102 Pig
192.168.8.103 Cat

11、web console:
HDFS: http://192.168.137.112:50070
Yarn: http://192.168.137.112:8088/


二、小结:HDFS和MapReducer
(一)什么是大数据?
(*) 天气预报
(*) 商品推荐

(*) 问题:(1)如何存储?如何找到? ----> 分布式的文件系统
(2)如何计算? ----> PageRank ---> MapReduce

(二)数据仓库:就是一个数据库,一般只做查询
(三)OLTP和OLAP
OLTP: online transaction processing
OLAP: online analyse processing

(四)Google的三篇论文
(1) GFS
(2) PageRank
(3) Bigtable ---> HBase

(五)搭建环境
(1) 本地模式:不具备HDFS的功能,只能测试MapReduce程序
(2) 伪分布模式:具备Hadoop的所有功能,在一台机器模拟分布式的环境
(3) 全分布模式:三台机器,具备Hadoop的所有功能

(六)HDFS
(1) 操作:命令行,JAVA API,Web Console(端口:50070)
(2) 上传数据和下载数据过程
(3) NameNode: 接收客户端请求
维护文件的元信息,默认在内存中,保存1000M的元信息
DataNode: 数据节点
SeondaryNameNode: 第二名称节点,元信息的合并(edits和fsimage)

(4) edits文件:日志文件,记录了客户端操作
使用edits viewer查看 hdfs oev *****
(5) fsimage文件:HDFS中文件的元信息文件
使用image viewer查看 hdfs ofv

(6) 高级特性:回收站(时间) ----> Oracle数据库的回收站 drop table---> 闪回 flashback
快照
配额:名称配额,空间配额
权限: 4种方式
安全模式:HDFS只读,检查数据块的副本率(0.999)
(7) RPC和动态代理(包装设计模式,增强方法的功能---> Proxy类)

(七)MapReduce(Yarn)
(1) ResourceManager:分配任务和资源
NodeManager:从DataNode获取数据(就近原则),执行任务

(2)Yarn调度任务的过程
(3) WordCount:(*)数据的流动
(*)Mapper Reducer Job

(4)序列化:WritableComparable,写的顺序和读的顺序一样
(5)排序:按照Key2排序、自然排序(LongWritable.Compartor)
多个列排序
对象排序(WritableComparable)
(6)合并Combiner:谨慎使用,不能改变原来的逻辑,是一种特殊的Reducer
(7)分区Parition
(8)Shuffle过程
(9)案例:(*)数据去重
(*)单表关联(自连接)
(*)多表关联(等值连接)
(*)倒排索引(Combiner不能改变原来的逻辑)

 

转载于:https://www.cnblogs.com/wzlbigdata/p/8343436.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值