一、环境
硬件:虚拟机VMware、win7
操作系统:Centos-7 64位
主机名: hadoopServerOne
安装用户:root
软件:jdk1.8.0_181、Hadoop-2.9.2
二、安装jdk
1.到普通用户目录/home/lims
2.下载jdk-8u181-linux-x64.tar.gz移动到hadoop目录下,解压。
tar -zxvf jdk-8u181-linux-x64.tar.gz
mv jdk1..0_181 jdk1.8.0
三、配置ssh无密码登录
(我并没有这一步,前面配置过)
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
验证ssh,# ssh localhost
不需要输入密码即可登录。
四、安装Hadoop
1.下载Hadoop-2.9.2
2,解压安装
1),复制 Hadoop-2.9.2.tar.gz 到/home/lims目录下,
然后#tar -xzvf hadoop-2.9.2.tar.gz 解压,解压后目录为:/home/lims/hadoop-2.9.2
2),在/home/lims/目录下,建立tmp、hdfs/name、hdfs/data目录,执行如下命令 (PS:可以略过,格式化namenode时会根据配置文件创建)
#mkdir /home/lims/tmp
#mkdir /home/lims/hdfs
#mkdir /home/lims/hdfs/data
#mkdir /home/lims/hdfs/name
3),设置环境变量,#vi ~/.bash_profile
编辑insert
保存退出esc :wq :q!(退出不保存)
# set hadoop path
export HADOOP_HOME=/home/lims/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin
4),使环境变量生效,$source ~/.bash_profile
3,Hadoop配置
进入$HADOOP_HOME/etc/hadoop目录,配置 hadoop-env.sh等。涉及的配置文件如下:
hadoop-2.9.2/etc/hadoop/hadoop-env.sh
hadoop-2.9.2/etc/hadoop/yarn-env.sh
hadoop-2.9.2/etc/hadoop/core-site.xml
hadoop-2.9.2/etc/hadoop/hdfs-site.xml
hadoop-2.9.2/etc/hadoop/mapred-site.xml
hadoop-2.9.2/etc/hadoop/yarn-site.xml
1)配置hadoop-env.sh
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/hadoop/jdk1.8.0
2)配置yarn-env.sh
#export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/hadoop/jdk1.8.0
3)配置core-site.xml
添加如下配置(为了让Windows浏览器能访问到,写虚拟机地址,而不是localhost):
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.3.132:9000</value>
<description>HDFS的URI,文件系统://namenode标识:端口号</description>
</property> <property>
<name>hadoop.tmp.dir</name>
<value>/home/lims/tmp</value>
<description>namenode上本地的hadoop临时文件夹</description>
</property>
</configuration>
4),配置hdfs-site.xml
添加如下配置
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/lims/hdfs/name</value>
<description>namenode上存储hdfs名字空间元数据 </description>
</property> <property>
<name>dfs.data.dir</name>
<value>/home/lims/hdfs/data</value>
<description>datanode上数据块的物理存储位置</description>
</property> <property>
<name>dfs.replication</name>
<value>1</value>
<description>副本个数,配置默认是3,应小于datanode机器数量</description>
</property>
</configuration>
5),配置mapred-site.xml
添加如下配置:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6),配置yarn-site.xml
添加如下配置(端口改为了8099):
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8099</value>
</property>
</configuration>
4.安装后启动步骤:
1).格式化hdfs文件系统
bin/hadoop namenode -format
2).启动namenode
sbin/hadoop-daemon.sh start namenode
3).启动datanode
sbin/hadoop-daemon.sh start datanode
4).启动yarn
sbin/start-yarn.sh
5.验证
1)执行jps命令,有如下进程,说明Hadoop正常启动
2)在浏览器中输入:http://192.168.2.2:8099/cluster 即可看到YARN的ResourceManager的界面。PS:默认端口是8088,这里设置了yarn.resourcemanager.webapp.address为:${yarn.resourcemanager.hostname}:8099
namenode查看:http://192.168.2.2:50070
启动MapReduce作业运行查看结果
进入Hadoop目录
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9..jar pi
注意(linux防火墙打开端口)
PS:在Windows浏览器中访问虚拟机中的Linux,需要centos防火墙打开相应端口
打开8099端口:
firewall-cmd --permanent --add-port=/tcp
重新载入:
firewall-cmd --reload
宿主机访问页面需要开启的端口
1. 50070(HDFS端口)
2. 8099(yarn页面端口)
3. 50075(datanode页面端口)
4. 8042(作业运行过程yarn页面查看application端口)
常见问题:
1. 采用虚拟机安装后,每次重启虚拟机Hadoop无法启动成功
在core-site.xml中增加两个配置:
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/lims/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/lims/hadoop/dfs/data</value>
</property>