Hadoop2.x环境搭建
备注:#开头表示root用户执行,$开头表示普通用户执行
准备工作
一、Linux环境
1.修改主机名【不能数字开头,不能特殊字符】
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoopeasy
# cat /etc/sysconfig/network
2.主机映射
# vim /etc/hosts
ip地址 主机名
# 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
# ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.128 hadoopeasy hadoop
如果是window开发,linux是环境,那么必须在windows上也配置映射
windows下主机映射
C:\Windows\System32\drivers\etc\hosts
二、添加普通用户(一般情况下,hadoop环境搭建使用普通用户)
useradd hadoop
passwd hadoop
配置SSH免密码登录(所有机器之间都做)
$ ssh-keygen -t rsa
$ ssh-copy-id hadoopeasy
三、jdk
(推荐)用户只有一个(不要是root),hadoop
创建两个目录
$ mkdir ~/software ~/modules
~/software 存放*.tag.gz
~/modules 放置安装文件
安装jdk
$ tar -zxvf ~/software/jdk-7u79-linux-x64.tar.gz -C ~/modules/
卸载openJDK(root用户)
# rpm -qa | grep jdk
# rpm -e --nodeps XXX.rpm //如果存在jdk就进行不验证依赖进行卸载
配置环境变量 用pwd查看目录路径
$ vim ~/.bash_profile
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
使配置生效
$ source ~/.bash_profile
Linux 防火墙(root用户)
# service iptables status ##查看防火墙状态
iptables: Firewall is not running.
# service iptables stop ##关闭防火墙
关闭开机启动防火墙
# chkconfig iptables off ##不随着机器启动
关闭安全子系统
# vim /etc/sysconfig/selinux
SELINUX=disabled
四、配置Hadoop ${HADOOP_HOME}---hadoop的安装目录
解压安装hadoop【注意上传和解压过程中的用户权限问题】
$ tar -zxvf ./software/hadoop-2.5.0-cdh5.3.6.tar.gz -C ./modules/
配置环境变量
$ vim ~/.bash_profile
export HADOOP_HOME=/home/hadoop/modules/hadoop-2.5.0-cdh5.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
$ source ~/.bash_profile
五. 给Hadoop添加JDK依赖
$ vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/hadoop/modules/jdk1.7.0_79
六、配置HDFS相关内容
$ mkdir $HADOOP_HOME/data
$ vim $HADOOP_HOME/etc/hadoop/core-site.xml
1)core-site.xml
=============core-site.xml===================
fs.defaultFS
hdfs://hadoopeasy:8020
hadoop.tmp.dir
/home/hadoop/modules/hadoop-2.5.0-cdh5.3.6/data/tmp
$ vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
2)hdfs-site.xml
=============hdfs-site.xml============
dfs.replication
1
dfs.permissions.enabled
false
七、给定DataNode节点位置(一行一个DataNode的主机名)
$ vim $HADOOP_HOME/etc/hadoop/slaves
hadoopeasy
八、配置MapReduce相关配置
$ cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
$ vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
=============mapred-site.xml============
mapreduce.framework.name
yarn
九、配置Yarn相关配置
$ vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
===================yarn-site.xml=====
yarn.resourcemanager.hostname
hadoopeasy
yarn.nodemanager.aux-services
mapreduce_shuffle
十、格式化namenode 只能格式化一遍,不要重复格式化(如果重复格式化,需要删除$HADOOP_HOME/data文件夹下所有内容)
添加环境变量后执行如下代码:(可以在$HADOOP_HOME/data/tmp文件夹下看到dfs文件夹)
$ hdfs namenode -format
18/05/31 09:33:05 INFO common.Storage: Storage directory /home/hadoop/modules/hadoop-2.5.0-cdh5.3.6/data/tmp/dfs/name has been successfully formatted.
十一、启动HDFS
添加环境变量后执行如下代码:
$ hadoop-daemon.sh start namenode //启动namenode进程
$ hadoop-daemon.sh start datanode //启动datanode
或者
start-dfs.sh
十二、检测HDFS
$ jps
24672 DataNode
24884 Jps
24561 NameNode
Web界面
http://hadoopeasy:50070/dfshealth.html#tab-overview
HDFS相关命令(添加环境变量):
$ hdfs dfs -ls /
$ hdfs dfs -mkdir /test
$ hdfs dfs -mkdir -p /test1/input
$ hdfs dfs -rmdir /test1/input
$ hdfs dfs -put ~/software/jdk-7u79-linux-x64.tar.gz /test
$ vim wc.txt
hadoop spark hbase spark
hadoop spark hbase spark hive
hive hbase spark
$ hdfs dfs -mkdir -p /test/input
$ hdfs dfs -put ./wc.txt /test/input
$ hdfs dfs -text /test/input/wc.txt
十三、启动Yarn
$ hadoop-daemon.sh start namenode(必须启动)
$ hadoop-daemons.sh start datanode(必须启动)
$ yarn-daemon.sh start resourcemanager
$ yarn-daemons.sh start nodemanager
十四、检测YARN
$ jps
24672 DataNode
25341 ResourceManager
25751 Jps
24561 NameNode
25624 NodeManager
Web界面
http://hadoopeasy:8088/cluster
十五、MapReduce测试
1) WordCount测试
上传文本到hdfs上
查看上传好的文件
$ hdfs dfs -text /test/input/wc.txt
要求输出文件夹/test/output02不存在,否则会报错
$ yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /test/input/wc.txt /test/output02
查看执行结果
$ hdfs dfs -text /test/output02/*