[hadoop]Hadoop环境的搭建
Posted 爱折腾的稻草
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[hadoop]Hadoop环境的搭建相关的知识,希望对你有一定的参考价值。
No.1 硬件配置
Centos 7 64位
IP:192.168.42.129
主机名:admin
安装用户:root/root
新建用户: hadoop/hadoop
创建用户:useradd -d /user/hadoop -m hadoop
用户密码:passwd hadoop
用useradd新增的用户不能直接用ssh远程访问,需要修改ssh相关配置,如下:
vi /etc/ssh/sshd_config
添加:
# 多个用户用空格隔开
AllowUsers root@192.168.1.32 admin
No.2 安装JDK
安装JDK1.7或者以上版本。这里以jdk1.7.0_79为例。
2.1、下载jdk-7u79-Linux-x64.gz,解压到/usr/Java/jdk1.7.0_79。
2.2、在/root/.bash_profile中添加如下配置:
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
2.3、使环境变量生效
#source ~/.bash_profile
2.4、安装验证
# java -version
Java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
No.3 配置SSH无密码登陆
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
验证ssh
# ssh localhost
不需要输入密码即可登录。
No.4 安装Hadoop2.7
4.1、下载Hadoop2.7.1
4.2、解压安装
1)复制 Hadoop-2.7.1.tar.gz 到/usr/hadoop目录下并执行解压:
//解压后目录为:/usr/hadoop/hadoop-2.7.1
#tar -xzvf hadoop-2.7.1.tar.gz
2)在/usr/hadoop/目录下,建立tmp、hdfs/name、hdfs/data目录
#mkdir /usr/hadoop/soft --存放安装文件
#mkdir /usr/hadoop/tmp
#mkdir /usr/hadoop/hdfs
#mkdir /usr/hadoop/hdfs/data
#mkdir /usr/hadoop/hdfs/name
3)设置环境变量
#vi ~/.bash_profile
//添加如下配置
# set hadoop path
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin
4),使环境变量生效
$source ~/.bash_profile
4.3,Hadoop配置
伪分布式安装:只有一个节点的集群,在这个集群中,这个节点既是Master,也是Slave,既是NameNode,也是DataNode,既是JobTracker,也是TaskTracker
进入$HADOOP_HOME/etc/hadoop目录,配置 hadoop-env.sh等。涉及的配置文件如下:
hadoop-2.7.1/etc/hadoop/hadoop-env.sh
hadoop-2.7.1/etc/hadoop/yarn-env.sh
hadoop-2.7.1/etc/hadoop/core-site.xml
hadoop-2.7.1/etc/hadoop/hdfs-site.xml
hadoop-2.7.1/etc/hadoop/mapred-site.xml
hadoop-2.7.1/etc/hadoop/yarn-site.xml
1)配置hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/java/jdk1.8.0_111
2)配置yarn-env.sh
#export JAVA_HOME=/home/y/libexec/jdk1.7.0/
export JAVA_HOME=/usr/java/jdk1.8.0_111
3)配置core-site.xml 添加如下配置:
<configuration>
<property>
<!-- fs.default.name 在Yarn中是fs.defaultFS -->
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
<description>定义HadoopMaster的URI和端口URI,文件系统://namenode标识:端口号</description>
</property>
<property>
<name>fs.checkpoint.dir</name>
<value>/opt/data/hadoop1/hdfs/namesecondary1</value>
<description>定义hadoop的name备份的路径,官方文档说是读取这个,写入dfs.name.dir</description>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>1800</value>
<description>定义name备份的备份间隔时间,秒为单位,只对snn生效,默认一小时</description>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>33554432</value>
<description>以日志大小间隔做备份间隔,只对snn生效,默认64M</description>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>33554432</value>
<description>以日志大小间隔做备份间隔,只对snn生效,默认64M</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
<description>namenode上本地的hadoop临时文件夹</description>
</property>
</configuration>
4)配置hdfs-site.xml 添加如下配置
<configuration>
<!—hdfs-site.xml-->
<property>
<!-—dfs.name.dir 在新框架中:分成 dfs.namenode.name.dir( 存放 naname table 和 dfs.namenode.edits.dir(存放 edit 文件),默认是同一个目录-->
<name>dfs.namenode.name.dir</name>
<value>/usr/hadoop/hdfs/namenode/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property>
<property>
<!-—dfs.name.dir 在新框架中:分成 dfs.namenode.name.dir( 存放 naname table 和 dfs.namenode.edits.dir(存放 edit 文件),默认是同一个目录-->
<name>dfs.namenode.edits.dir</name>
<value>/usr/hadoop/hdfs/namenode/edits</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/hdfs/data</value>
<description>datanode上数据块的物理存储位置,可以写多块硬盘,逗号分隔</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>副本个数,配置默认是3,应小于datanode机器数量,理论上份数越多跑数速度越快,但是需要的存储空间也更多。有钱人可以调5或者6</description>
</property>
<property>
<name>dfs.datanode.du.reserved</name>
<value>1073741824</value>
<description>每块磁盘所保留的空间大小,需要设置一些,主要是给非hdfs文件使用,默认是不保留,0字节</description>
</property>
<property>
<name>dfs.web.ugi</name>
<value>nobody,nobody</value>
<description>NN,JT等所使用的web tracker页面服务器所使用的用户和组</description>
</property>
<property>
<name>dfs.df.interval</name>
<value>6000</value>
<description>磁盘用量统计自动刷新时间,单位是毫秒</description>
</property>
<property>
<name>dfs.client.block.write.retries</name>
<value>3</value>
<description>数据块写入的最多重试次数,在此次数之前不会捕获失败。</description>
</property>
<property>
<name>dfs.client.block.write.retries</name>
<value>3</value>
<description>数据块写入的最多重试次数,在此次数之前不会捕获失败。</description>
</property>
<property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
<description>datanode心跳检测时间间隔,单位秒。</description>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>10</value>
<description>namenode启动后开启的线程数。</description>
</property>
<property>
<name>dfs.datanode.http.address</name>
<value>0.0.0.0:50075</value>
<description>DN的tracker页面监听地址和端口。</description>
</property>
<property>
<name>dfs.http.address</name>
<value>192.168.42.129:50070</value>
<description>NN的tracker页面监听地址和端口。</description>
</property>
</configuration>
5)配置mapred-site.xml 添加如下配置:
<configuration>
<!-- 新框架支持第三方 MapReduce 开发框架以支持如 SmartTalk/DGSG 等非 Yarn 架构,注意通常情况下这个配置的值都设置为 Yarn,如果没有配置这项,那么提交的 Yarn job 只会运行在 locale 模式,而不是分布式模式。-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 新框架中已改为 Yarn-site.xml 中的 resouceManager 及 nodeManager 具体配置项,新框架中历史 job 的查询已从 Job tracker 剥离,归入单独的 mapreduce.jobtracker.jobhistory 相关配置,
<property>
<name>mapred.job.tracker.http.address</name>
<value>0.0.0.0:50030</value>
<description>jobtracker的tracker页面服务监听地址</description>
</property>
<property>
<name>mapred.job.tracker.handler.count</name>
<value>15</value>
<description>jobtracker服务的线程数</description>
</property>
<property>
<name>mapred.jobtracker.taskScheduler</name>
<value>0.0.0.0:50030</value>
<description>重要的东西,开启任务管理器,不设置的话,hadoop默认是FIFO调度器,其他可以使用公平和计算能力调度器</description>
</property>
-->
</configuration>
6)配置yarn-site.xml 添加如下配置:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!-- 新框架中各个 task 的资源调度及运行状况通过通过该 web 界面访问 -->
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.42.129:8099</value>
</property>
</configuration>
4.4、Hadoop启动
1)格式化namenode
$ bin/hdfs namenode –format
2)启动NameNode 和 DataNode 守护进程
$ sbin/start-dfs.sh
3)启动ResourceManager 和 NodeManager 守护进程
$ sbin/start-yarn.sh
4.5、启动验证
执行jps命令,有如下进程,说明Hadoop正常启动
# jps
6097 NodeManager
11044 Jps
7497 -- process information unavailable
8256 Worker
5999 ResourceManager
5122 SecondaryNameNode
8106 Master
4836 NameNode
4957 DataNode
4.6、打开浏览器输入:
http://192.168.42.129:50070 查看的信息
如果无法访问,则查看linux系统是否被防火墙拦截了。
·end·
- 如果喜欢,快分享给你的朋友们吧 -
我们一起愉快的玩耍吧
以上是关于[hadoop]Hadoop环境的搭建的主要内容,如果未能解决你的问题,请参考以下文章