Linux环境安装Hadoop集群

准备工作

安装JDK,自行百度一下
配置免秘登录,查看另外一篇文章//www.greatytc.com/p/fa06f3d77094
安装Zookeeper,查看另外一篇文章//www.greatytc.com/p/d6967310777c

1、下载Hadoop安装包

apache版本
https://hadoop.apache.org/releases.html
cdh版本
http://archive.cloudera.com/cdh5/cdh/5/

2、配置文件说明

文件名 格式 功能描述
hadoop-env.sh Bash脚本 Hadoop运行环境变量设置
core-site.xml xml 配置Hadoop core,如IO
hdfs-site.xml xml 配置HDFS守护进程:NN、JN、DN
yarn-env.sh Bash脚本 Yarn运行环境变量设置
yarn-site.xml xml Yarn框架配置环境
mapred-site.xml xml MR属性设置
capacity-scheduler.xml xml Yarn调度属性设置
container-executor.cfg Cfg Yarn Container配置
mapred-queues.xml xml MR队列设置
hadoop-metrics.properties Java属性 Hadoop Metrics配置
hadoop-metrics2.properties Java属性 Hadoop Metrics配置
slaves PlainText DN节点配置
exclude PlainText 移除DN节点配置文件
log4j.properties 系统日志设置

3、hadoop-env.sh配置

#Java环境变量
export JAVA_HOME=~/jdk1.8.0_101
#Hadoop配置文件路径
export HADOOP_CONF_DIR=~/hadoop-2.5.0-cdh5.2.1-och4.0.1/etc/hadoop
#Hadoop环境变量
export HADOOP_HOME=~/hadoop-2.5.0-cdh5.2.1-och4.0.1
#进程id路径
export HADOOP_PID_DIR=~/data/hadoop/pids
# hadoop为各个守护进程
#【namenode,secondarynamenode,jobtracker,datanode,tasktracker】
# 统一分配的内存在hadoop-env.sh中设置
export HADOOP_HEAPSIZE=8192
# NameNode内存(系统内存足够时,设置成16384M)
export HADOOP_NAMENODE_OPTS="-Xmx4096m –Xms4096m -Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS"
# DataNode内存(系统内存足够时,设置成2-4G)
export HADOOP_DATANODE_OPTS="-Xmx3072m –Xms3072m -Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS"
# secondrynamenode的内存,与NameNode保持一致
export HADOOP_SECONDARYNAMENODE_OPTS="-Xmx4096m –Xms4096m -Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS"
# 调整客户端操作时的内存
export HADOOP_CLIENT_OPTS="-Xmx2048m $HADOOP_CLIENT_OPTS"
# 配置hadoop相关日志
export HADOOP_LOGFILE=hadoop-${HADOOP_IDENT_STRING}-${command}-${HOSTNAME}.log
export HADOOP_ROOT_LOGGER=${HADOOP_ROOT_LOGGER:-"INFO,console"}
export HADOOP_SECURITY_LOGGER=${HADOOP_SECURITY_LOGGER:-"WARN,RFAS"}
export HDFS_AUDIT_LOGGER=${HDFS_AUDIT_LOGGER:-"WARN,NullAppender"}

4、core-site.xml配置

<!--默认端口是8020,但是由于其接收Client连接的RPC端口,所以如果在hdfs-site.xml中配置了RPC端口9000,所以fs.defaultFS端口变为9000-->
<property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
</property>
<!--注意修改此路径-->
<property>
<name>hadoop.tmp.dir</name>
    <value>/home/ocetl/data/hadoop/hadoop-${user.name}</value>
</property>

5、hdfs-site.xml配置

<!--注意修改此路径-->
<!--data存放路径-->
<property>
  <name>dfs.datanode.data.dir</name>
  <value>/data1,/data2,/data3,/data4,/data5,/data6</value>
  <final>true</final>
</property>
<!--NameNode持久存储命名空间和事务日志的本地文件系统上的路径-->
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///home/ocetl/data/hadoop/hdfs/name</value>
    <final>true</final>
</property>
<property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/home/ocetl/data/hadoop/journal</value>
</property>
<property>
    <name>dfs.hosts.exclude</name>
<value>/home/ocetl/app/hadoop-2.5.0-cdh5.2.1-och4.0.1/etc/hadoop/excludes</value>
</property>
<!--注意修改主机名,einvoice243为NameNode主,einvoice244为NameNode备-->
<property>
    <name>dfs.namenode.rpc-address.ocetl.nn1</name>
    <value>einvoice243:8030</value>
</property>
<property>
    <name>dfs.namenode.rpc-address.ocetl.nn2</name>
    <value>einvoice244:8030</value>
</property>
<property>
    <name>dfs.namenode.http-address.ocetl.nn1</name>
    <value>einvoice243:50082</value>
</property>
<property>
    <name>dfs.namenode.http-address.ocetl.nn2</name>
    <value>einvoice244:50082</value>
</property>
<!--einvoice243/einvoice244/einvoice247均为ZooKeeper节点-->
<property>
    <name>dfs.namenode.shared.edits.dir</name>
 <value>qjournal://einvoice243:8488;einvoice244:8488;einvoice247:8488/ocetl</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
 <value>einvoice243:21810,einvoice244:21810,einvoice247:21810</value>
</property>

6、yarn-site.xml配置

<property>
    <name>yarn.resourcemanager.zk.state-store.address</name>
    <value>einvoice243:21810,einvoice244:21810,einvoice247:21810</value>
</property>
<property>
    <name>yarn.resourcemanager.zk-address</name>
 <value>einvoice243:21810,einvoice244:21810,einvoice247:21810</value>
</property>
<!--配置文件中einvoice243为resourcemanager主,einvoice244为resourcemanager备-->
<!-- RM1 configs -->改为resourcemanager主机节点主机名
<!-- RM2 configs -->改为resourcemanager备机节点主机名
<!--检查其他配置项的主机名,注意修改-->
<!-- RM1 configs -->
<property>
    <name>yarn.resourcemanager.address.rm1</name>
    <value>einvoice243:23140</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address.rm1</name>
    <value>einvoice243:23130</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address.rm1</name>
    <value>einvoice243:23188</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
    <value>einvoice243:23125</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address.rm1</name>
    <value>einvoice243:23141</value>
</property>
<property>
    <name>yarn.resourcemanager.ha.admin.address.rm1</name>
    <value>einvoice243:23142</value>
</property>
<!-- RM2 configs -->
<property>
    <name>yarn.resourcemanager.address.rm2</name>
    <value>einvoice244:23140</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address.rm2</name>
    <value>einvoice244:23130</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address.rm2</name>
    <value>einvoice244:23188</value>
</property>
<property>
    <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
    <value>einvoice244:23125</value>
</property>
<property>
    <name>yarn.resourcemanager.admin.address.rm2</name>
    <value>einvoice244:23141</value>
</property>
<property>
    <name>yarn.resourcemanager.ha.admin.address.rm2</name>
    <value>einvoice244:23142</value>
</property>
<property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
</property>
<property>
    <name>yarn.resourcemanager.ha.id</name>
    <!-- on rm1 set to rm1, on rm2 set to rm2 -->
    <value>rm1</value>    
</property>
<!-- 路径修改 -->
<property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data1/yarn/local,/data2/yarn/local,/data3/yarn/local,/data4/yarn/local,/data5/yarn/local,/data6/yarn/local</value>
</property>
<property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/data1/yarn/log,/data2/yarn/log,/data3/yarn/log,/data4/yarn/log,/data5/yarn/log,/data6/yarn/log</value>
</property>

7、mapred-env.sh配置

export HADOOP_MAPRED_PID_DIR=~/data/hadoop/pids

8、mapred-site.xml配置

<!-- jobhistory properties -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>0.0.0.0:10120</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>0.0.0.0:19988</value>
</property>

9、slaves配置

将Datanode的IP或hostname写入slaves文件。

einvoice247
einvoice248
einvoice249
einvoice250

10、设置Hadoop环境变量

vi ~/.bash_profile
export HADOOP_HOME=~/hadoop-2.5.0-cdh5.2.1-och4.0.1
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
export HADOOP_MAPRED_HOME=${HADOOP_HOME}
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_HDFS_HOME=${HADOOP_HOME}
export HADOOP_PREFIX=${HADOOP_HOME}
export HADOOP_COMMON_HOME=${HADOOP_HOME}
export HADOOP_YARN_HOME=${HADOOP_HOME}
export YARN_HOME=${HADOOP_HOME}
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export YARN_LOG_DIR=${HADOOP_HOME}/logs
export YARN_PREFIX=${HADOOP_HOME}

使环境变量生效

source ~/.bash_profile

11、分发到对应主机

12、Hadoop启动前准备

注意:此小节所有操作只有第一次安装才执行,后面操作禁用/慎用此处命令。

格式化data目录
启动journalnod前,格式化前先删除data目录除zookeeper外都可以删。
rm -r ~/data/hadoop/hdfs/name/*
rm -r ~/data/hadoop/journal/*
rm -r ~/data/hadoop/pids/*
启动ZooKeeper
zkServer.sh start
# 格式化ZK,创建命名空间,在一台namenode上执行【einvoice243】
hdfs zkfc -formatZK
启动JournalNode
# 安装奇数个,与zookeeper相同主机
hadoop-daemon.sh start journalnode
注:einvoice243,einvoice244,einvoice247三台主机
格式化NameNode
# NameNode主节点上执行【einvoice243】
hdfs namenode -format
格式化DataNode
# slaves文件中配置的所有主机上都有执行【einvoice247-250】
hdfs datanode -format
启动Hadoop进程
# 主namenode节点执行【einvoice243】
hadoop-daemon.sh start namenode
# 备namenode节点执行【einvoice244】
hdfs namenode -bootstrapStandby # 只是同步数据,不是启动
# 主节点和备节点,启动所有进程【einvoice243、einvoice244】
start-all.sh
# 验证压缩方式,查看基本的压缩库是否正常
hadoop org.apache.hadoop.util.NativeLibraryChecker 

13、Hadoop启动

注:第一次启动hadoop时按照上述步骤启动,以后启停hadoop时只需直接在主节点或者备节点执行

start-all.sh
stop-all.sh

14、验证Hadoop是否启动成功

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

推荐阅读更多精彩内容

  • (搭建集群部分借鉴了kiwenlau/hadoop-cluster-docker中的内容,不过那里的基础环境是Ub...
    ProteanBear阅读 3,837评论 0 12
  • 一、系统参数配置优化 1、系统内核参数优化配置 修改文件/etc/sysctl.conf,添加如下配置,然后执行s...
    张伟科阅读 3,748评论 0 14
  • 前言 Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的...
    piziyang12138阅读 1,968评论 0 3
  • 我在电话这一端 你在电话那一端 絮絮叨叨的细数着日常 偶尔 我说你听着 偶尔 你说我笑着 亦或我俩都安静着 我们就...
    二点儿阅读 364评论 0 1
  • 本周是学校的创新周,昨天下午十二点半开始,听了三节课。连续三节课,感觉累!想想也是,上一次参加这类活动是去...
    clarazxh阅读 299评论 2 2