深入理解hadoop

Hadoop是什么?

Hadoop是一个分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算

CentOS7安装hadoop

1单台虚拟机:内存4G,硬盘50G.
2vim /etc/sysconfig/network-scripts/ifcfg-eth0
改成
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME=“eth0”
IPADDR=192.168.1.102
PREFIX=24
GATEWAY=192.168.1.2
DNS1=192.168.1.2

安装jdk

查询是否安装Java软件
$ rpm -qa | grep java
卸载该JDK
sudo rpm -e 软件包
查看JDK安装路径:
$ which java
配置JDK环境变量
sudo vim /etc/profile.d/env.sh
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
让修改后的文件生效
source /etc/profile.d/env.sh
测试JDK是否安装成功
java -version

安装hadoop

1)准备3台客户机(关闭防火墙、静态ip、主机名称)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群
分发脚本
!/bin/bash
1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi
2 获取文件名称
p1=$1
fname=basename p 1 e c h o f n a m e = p1 echo fname= p1echofname=fname
3 获取上级目录到绝对路径
pdir=cd -P $(dirname p 1 ) ; p w d e c h o p d i r = p1); pwd echo pdir= p1);pwdechopdir=pdir
4 获取当前用户名称
user=whoami
5 循环
for host in hadoop2 hadoop3 hadoop4
do
echo ------------------- $host --------------
rsync -av p d i r / pdir/ pdir/fname u s e r @ user@ user@host:$pdir
done

修改脚本 xsync 具有执行权限
$ chmod 777 xsync
SSH无密登录配置
ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
ssh-copy-id hadoop2
ssh-copy-id hadoop3
ssh-copy-id hadoop4

hadoop配置

core-site.xml
(1)核心配置文件
$ vi core-site.xml
!-- 指定HDFS中NameNode的地址–>
property>
name>fs.defaultFS
value>hdfs://hadoop2:9000
/property>
!-- 指定Hadoop运行时产生文件的存储目录 -->
property>
name>hadoop.tmp.dir
value>/opt/module/hadoop-2.7.2/data/tmp
/property>
配置hadoop-env.sh
$ vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置hdfs-site.xml
$ vi hdfs-site.xml
property>
name>dfs.replication/name>
value>1/value>
/property>
!-- 指定Hadoop辅助名称节点主机配置 -->
property>
name>dfs.namenode.secondary.http-address/name>
value>hadoop1:50090/value>
/property>
配置yarn-env.sh
vi yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置yarn-site.xml
vi yarn-site.xml
!-- Reducer获取数据的方式 -->
property>
name>yarn.nodemanager.aux-services/name>
value>mapreduce_shuffle/value>
/property>
!-- 指定YARN的ResourceManager的地址 -->
property>
name>yarn.resourcemanager.hostname/name>
value>hadoop3/value>
/property>
!-- 日志聚集功能使能 -->
property>
name>yarn.log-aggregation-enable/name>
value>true/value>
/property>
!-- 日志保留时间设置7天 -->
property>
name>yarn.log-aggregation.retain-seconds/name>
value>604800/value>
/property>
配置mapred-env.sh
vi mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
配置mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
!-- 指定MR运行在Yarn上 -->
property>
name>mapreduce.framework.name/name>
value>yarn/value>
/property>
!-- 历史服务器端地址 -->
property>
name>mapreduce.jobhistory.address/name>
value>hadoop2:10020/value>
/property>
!-- 历史服务器web端地址 -->
property>
name>mapreduce.jobhistory.webapp.address/name>
value>hadoop2:19888/value>
/property>
slaves配置文件/
vi slaves
hadoop2
hadoop3
hadoop4
分发hadoop到集群并配好环境变量
群起集群
(1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除data和log数据)
bin/hdfs namenode -format
sbin/start-dfs.sh
启动YARN
sbin/start-yarn.sh
启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值