论Hadoop在大数据领域重要性,应该从入门谈起,Hadoop安装

知识要点:

什么是Hadoop

运行Hadoop先决条件

安装配置Hadoop

什么是Hadoop(Hadoop技术分享版本:Apache Hadoop 2.8.5


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

  • HDFS为海量的数据提供了存储
  • MapReduce则为海量的数据提供了计算
准备环境
  • Java Development Kit8(JDK8)
  • CentOS7.4、虚拟机三台(分布式)或者一台虚拟机(单节点)
    硬件要求
    16G或者16G+内存,4核-8核CPU,200GB硬盘空间
    先决条件(版本选择)
    HBase和Hadoop版本对应
Hadoop版本 HBase-1.2.x,HBase-1.3.x HBase-1.4.x HBase-1.5.x HBase-2.0.x HBase-2.1.x HBase-2.2.x
Hadoop-2.4.x 支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.5.x 支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.6.0 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.6.1+ 支持 不支持 不支持 支持 不支持 不支持
Hadoop-2.7.0 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.7.1+ 支持 支持 不支持 支持支持 不支持
Hadoop-2.8.[0-2] 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.8.[3-4] 未测试 未测试 不支持 支持 支持 不支持
Hadoop-2.8.5+ 未测试 未测试 支持 支持 支持 支持
Hadoop-2.9.[0-1] 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-2.9.2+ 未测试 未测试 支持 未测试 未测试 支持
Hadoop-3.0.[0-2] 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-3.0.3+ 不支持 不支持 不支持 支持 支持 不支持
Hadoop-3.1.0 不支持 不支持 不支持 不支持 不支持 不支持
Hadoop-3.1.1+ 不支持 不支持 不支持 支持 支持 支持

HBase与JDK

HBase版本 JDK 7 JDK 8 JDK 9 JDK 10 JDK 11
2.0+ 不支持 支持 未测试 未测试 未测试
1.2+ 支持 支持 未测试 未测试 未测试
安装配置Hadoop

Hadoop安装步骤易记总结:442阵型里有7个小矮人(只针对想自己安装hadoop体验受虐过程的,如果使用CDH或其他商业发行版中集成的安装工具,可以略过此步骤)。该步骤同样适用于其他版本的Apache Hadoop

下载和解压
# 下载文件
$bin wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
# 解压文件
$bin tar xvzf hadoop-2.8.5.tar.gz
# 把解压好的目录移动到你的软件目录
$bin mv ./hadoop-2.8.5 /path/to/你的软件目录
Linux系统设置
  • 创建用户
$bin useradd hadoop
  • 修改linux配置文件
192.168.56.105 master
192.168.56.107 docker01
192.168.56.109 docker02

修改/etc/sysconfig/network

NETWORKING=yes
HOSTNAME=你的主机名
  • 关闭防火墙
$bin systemctl stop firewalld.service
$bin systemctl disable firewalld.service
  • 设置免密登录
    打开sshd服务
    编辑/etc/ssh/sshd_config
RSAAuthentication       yes
PubkeyAuthentication    yes
AuthorizedKeysFile      .ssh/authorized_keys

重启sshd服务

$bin systemctl restart sshd.service

设置免密

$bin su hadoop
# 在master主机上生成RSA公私钥对
$bin ssh-keygen -t rsa

# 到hadoop用户的用户目录下的.ssh目录
$bin cd ~/.ssh

# 生成authorized_keys文件
$bin cat id_rsa.pub >> authorized_keys
# 对authorized_keys文件进行权限修复
$bin chmod 644 ./authorized_keys

# 分发authorized_keys到docker01 docker02
$bin ssh-copy-id hadoop@docker01
$bin ssh-copy-id hadoop@docker02

# 在主机上对免密登录进行测试,除第一外后面再登录都不需要输入登录密码
# master主机上免密登录到docker01
$bin ssh docker01
# master主机上免密登录到docker02
$bin shh docker02
Hadoop设置
  • 设置目录权限
$bin chown -R hadoop:hadoop /usr/local/bigdata/hadoop-2.8.5
  • 准备Hadoop数据目录
$bin cd

$bin mkdir -p ./hdfs/name ./hdfs/data
  • 修改Hadoop配置文件
    配置文件目录路径:/path/to/hadoop-2.8.5/etc/hadoop
    ①hadoop-env.sh
    ②yarn-env.sh
    ③core-site.xml
    ④hdfs-site.xml
    ⑤mapred-site.xml
    ⑥yarn-site.xml
    ⑦slaves
    hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_171
export HADOOP_PREFIX=/usr/local/bigdata/hadoop-2.8.5

yarn-env.sh

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

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.home.dir</name>
        <value>file:/usr/local/bigdata/hadoop-2.8.5</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hdfs</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hdfs/data</value>
    </property>

    <property>
        <name>dfs.hosts</name>
        <value>/usr/local/bigdata/hadoop-2.8.5/etc/hadoop/slaves</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
    <property>
        <name>mapred.job.tracker.http.address</name>
        <value>master:50030</value>
    </property>
    <property>
        <name>mapred.task.tracker.http.address</name>
        <value>master:50060</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

slaves

docker01
docker02
  • 节点分发
$bin scp -r /usr/local/bigdata/hadoop-2.8.5 docker01:/usr/local/bigdata
$bin scp -r /usr/local/bigdata/hadoop-2.8.5 docker02:/usr/local/bigdata
验证
  • 初始化Hadoop
    对namenode进行格式化(必须在主节点上进行)
hdfs namenode -format
  • 启动服务
# 第一种启动方式
$bin start-all.sh

# 第二种启动方式
$bin start-dfs.sh
$bin start-yarn.sh

正常启动有五个进程:

NameNode
SecondaryNameNode
ResourceManager
NodeManager
DataNode

DFS WebUI地址:http://192.168.56.105:50090/
Yarn WebUI地址:http://192.168.56.105:8088/
页面正常,说明服务正常启动。可以进行下一步验证,如执行一条hdfs命令:

# 查看hdfs系统中的目录或者文件
$bin hdfs dfs -ls /

注:大家学习的时候一定要对照好版本,并且如果自己练习的话,应该与我的节点架构是一样的,这样才能避免学习的时候遇到一些没有必要的麻烦!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容