本文的目的
Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的扎实程度,会决定在大数据技术道路上走多远。首先我们要搭建一个适用于个人学习、和使用各组件的开发环境,一般采用伪分布式的方式,接下来就是我们的搭建方法和过程。
一、准备
vmware14
centos7.2
jdk1.8
hadoop2.x
二、安装基础环境
1.安装vmware并设置内存、磁盘、cpu等配置
2.新建虚拟机安装Centos系统
3.基础环境配置
①虚拟机网络设置NAT模式
②静态化IP地址和网络设置
设置主机名称:
hostnamectl set-hostname master
静态化IP: vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
BOOTPROTO=static #dhcp改为static
IPADDR=192.168.8.20 #静态IP
GATEWAY=192.168.8.2 #默认网关
NETMASK=255.255.255.0 #子网掩码
DNS1=10.30.20.254 #DNS 配置
DNS2=192.168.31.1
配置hosts文件: vi /etc/hosts
192.168.8.20 hadoop
③关闭防火墙等操作
systemctl stop firewalld
systemctl disable firewalld
查看状态:systemctl status firewalld
vi /etc/selinux/config
把SELINUX=enforcing 改成 SELINUX=disabled
重启电脑就可以了
4.jdk安装
由于centos自带为openjdk,在运行过程中会遇到一些问题和错误,因此需要卸载安装oracle的jdk,方法如下,并配置相关变量。
linux版本:http://www.oracle.com/technetwork/java/javase/downloads/index.htm
查看:rpm -qa | grep java
卸载openjdk:
rpm -e –nodeps tzdata-java-2015g-1.el7.noarch
rpm -e –nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
rpm -e –nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
rpm -e –nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
rpm -e –nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
上传java安装文件。
执行权限:
chmod +x jdk-8u121-linux-x64.rpm
安装:
rpm -ivh jdk-8u121-linux-x64.rpm
配置环境变量:
vim /etc/profile
#set java environment
JAVA_HOME=/usr/java/jdk1.8.0_121
JRE_HOME=/usr/java/jdk1.8.0_121/jre
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH
使配置文件生效:source /etc/profile
三、安装配置Hadoop
1.从官网下载发布版本的tar文件,并上传到/usr/local/hadoop目录下
http://hadoop.apache.org/releases.html
2.解压hadoop
tar -zxvf ./hadoop/hadoop-2.8.4.tar.gz
3.环境变量配置
vim /etc/profile
export HADOOP_HOME="/usr/local/hadoop-2.8.4"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
使配置文件生效:source /etc/profile
并验证:echo $HADOOP_HOME
4.配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件的JAVA_HOME参数
sudo vim ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
5.配置core-site.xml
<configuration> <property> <!– 用于设置Hadoop的文件系统,由URI指定 –> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <!– 配置Hadoop的临时目录,默认在/tmp目录下,但是/tmp上面可能会被系统自动清理掉。–> <name>hadoop.tmp.dir</name> <!– 目录如果不存在,需要手动创建 –> <value>/usr/local/hadoop_tmp</value> <description>A base for other temperary directory</description> </property> </configuration> |
创建目录:sudo mkdir -p /usr/local/hadoop_tmp
6.配置hdfs,格式化,启动hdfs
①配置hdfs
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
②格式化
hdfs namenode -format
制定的目录下有dfs文件夹,证明初始化成功
查看ll ./dfs/name/current
fsimage是NameNode元数据在内存满了后,持久化保存到的文件。
fsimage*.md5
是校验文件,用于校验fsimage的完整性。
seen_txid
是hadoop的版本
vession文件里保存:
-
namespaceID:NameNode的唯一ID。
-
clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群。
③启动
可以单独启动namenode、datanode、secondarynamenode
在sbin目录下,是所有课执行的命令操作
启动namenode:${HADOOP_HOME}/sbin/hadoop-daemon.sh start namenode
启动datanode:hadoop-daemon.sh start datanode
启动secondarynamenode:
hadoop-daemon.sh start secondarynamenode
验证启动jps,如下启动成功。
7.接下来我们可以验证hdfs读写、上传、下载等功能
hadoop fs -ls / #显示根目录下所有的hdfs文件
hadoop fs -mkdir /test # 创建test目录
hadoop fs -put /** /** #上传文件到对应路径下
hadoop fs -cat /** #读取文件内容
hadoop fs
总结
Hadoop的HDFS环境已配置成功,接下来我们会深入理解hdfs的原理和工作机制,并会学习Mapreduce、yarn等组件。