Linux系统部署hadoop
介绍:
- 虚拟机相关系统:Centos 7
- 操作用户:root
- hadoop版本:2.7.1
- 需要安装3台虚拟机(本文样例主机IP:192.168.188.102 192.168.188.103 192.168.188.104)
Linux安装Hadoop-解压以及环境配置(3台主机都需要相同步骤)
- rz命令上传hadoop-2.7.1.tar.gz至虚拟机中,解压后mv到自定义目录下(若无rz命令,可安装lrzsz:yum install lrzsz)
#解压hadoop-2.7.1.tar.gz
tar -zxf hadoop-2.7.1.tar.gz
- 配置hadoop环境变量,修改/etc/profile文件内容,新增HADOOP_HOME,修改PATH内容,新增 $HADOOP/bin $HADOOP/sbin
export HADOOP_HOME=/tools/hadoop-2.7.1
export PATH=$PATH:${JAVA_PATH}:$MYSQL_HOME/bin:$HADOOP/bin:$HADOOP/sbin
- 关闭防火墙
关闭命令:service iptables stop
永久关闭防火墙:chkconfig iptables off
查看防火墙关闭状态 :service iptables status
- 设置3台虚拟机的HOSTNAME,设置IP映射关系
#查看主机hostname,确保3台虚拟机的hostname不一致
cat /etc/hostname
#修改/etc/hosts文件IP映射关系,新增以下配置
192.168.188.102 main
192.168.188.103 102backup1
192.168.188.104 102backup2
5. 设置主机JDK1.8
#/etc/profile配置文件
export JAVA_HOME=/usr/local/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}:$MYSQL_HOME/bin:$HADOOP/bin:$HADOOP/sbin
- 生成公钥密钥,SSH免密码登入
#生成私钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
#将私钥追加到公钥
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
#将3台主机的公钥配置文件中加入其他两台主机的私钥,注意下图authorized_keys文件圈中的为私钥生成时每台主机对应的用户@HOSTNAME(最开始我3台虚拟机没修改hostname,导致生成私钥的最后那部分是相同的)
vi ~/.ssh/authorized_keys
Linux安装Hadoop-修改hadoop配置文件
- 在解压的hadoop目录下新建目录
#创建tmp、hdfs文件夹,hdfs文件夹下新增name、data文件夹
cd /tools/hadoop-2.7.1
mkdir -p tmp
mkdir -p hdfs/name
mkdir -p hdfs/data
chmod 777 tmp
chmod 777 hdfs
chmod 777 hdfs/name
chmod 777 hdfs/data
- hadoop-2.7.1/etc/hadoop/目录下修改hadoop-env.sh,修改JAVA_HOME配置
#在配置文件中新增或者修改JAVA_HOME,配置为主机上安装的JDK路径
export JAVA_HOME=/usr/local/jdk1.8.0_162
- hadoop-2.7.1/etc/hadoop/目录下修改yarn-env.sh,修改JAVA_HOME配置
#在配置文件中新增或者修改JAVA_HOME,配置为主机上安装的JDK路径
export JAVA_HOME=/usr/local/jdk1.8.0_162
- hadoop-2.7.1/etc/hadoop/目录下修改core-site.xml ,添加property属性配置
#在configuration下新增property配置,设置HDFS的URL,以及临时文件夹路径
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.188.102:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tools/hadoop-2.7.1/tmp</value>
</property>
- hadoop-2.7.1/etc/hadoop/目录下修改hdfs-site.xml ,添加property属性配置
#在configuration下新增property配置,设置namecode元数据,datanode物理存储位置,副本个数,路径为之前新增的name和data文件夹
<property>
<name>dfs.name.dir</name>
<value>/tools/hadoop-2.7.1/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/tools/hadoop-2.7.1/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
- hadoop-2.7.1/etc/hadoop/目录下修改mapred-site.xml ,添加property属性配置
#先将mapred-site.xml.template模板拷贝一份命名为mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
#在configuration下新增property配置,设置整合的yarn,任务历史地址,任务历史web地址
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.188.103:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.188.103:19888</value>
</property>
- hadoop-2.7.1/etc/hadoop/目录下修改yarn-site.xml ,添加property属性配置
#在configuration下新增property配置,设置启动shuffle,yarn的web监视端口
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.188.102:8099</value>
</property>
- hadoop-2.7.1/etc/hadoop/目录下修改slaves ,将文件内容修改成所有主机IP
192.168.188.102
192.168.188.103
192.168.188.104
- 将修改后的hadoop同步至其他两台主机上
#将hadoop拷贝到其他主机
scp -r hadoop-2.7.1/ root@192.168.188.103:/tools/
scp -r hadoop-2.7.1/ root@192.168.188.104:/tools/
10.在主机上格式化
cd /tools/hadoop-2.7.1/bin
./hdfs namenode -format
#格式化之后hdfs目录下会生成文件,若格式化日志出错,需要将tmp目录下以及hsfs目录下data和name目录清理后,修改相关配置,重新格式化生成
11.启停hadoop
start-all.sh
stop-all.sh
12.jps查看java进程
13.web访问hadoop
#若能访问,则说明启动成功
http://192.168.188.102:50070/
http://192.168.188.102:8099/cluster