一、JDK安装和配置
1、先卸载原先系统的java
2、先修改权限
chown -R hadoop01:hadoop01 /opt/
3、解压JDK到指定的目录下,目录任意,建议不要装在某个用户主目录下
tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/modules/
4、添加环境变量
(1)修改vi /etc/profile文件,配置jdk环境变量
#JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
(2)生效文件
#source /etc/profile
5、验证是否配置成功:
java -version
jps命令可以查看java 进程
echo $JAVA_HOME
二、hadoop网站镜像源网站
1.cdh
http://archive.cloudera.com/cdh5/cdh/5/
2.apache
http://archive.apache.org/dist/
三、Hadoop伪分布式环境部署
1、解压Hadoop到指定目录下
tar -zxvf hadoop-2.5.0.tar.gz -C /opt/modules/
2、清理Hadoop的目录,将hadoop/share/doc目录删除,节省磁盘空间,通过这个命令查看df -h
rm -rf doc
3、修改三个sh
修改hadoop/etc/hadoop/hadoop-env.sh文件
修改hadoop/etc/hadoop/mapred-env.sh文件
修改hadoop/etc/hadoop/yarn-env.sh文件
指定Java安装路径
export JAVA_HOME=/opt/modules/jdk1.7.0_67
4、注意:hadoop中的四个核心模块对应四个默认配置文件
(1)指定默认的文件系统为HDFS,文件系统的访问入口,namenode所在的机器
(2)Hadoop 1.x使用9000端口,Hadoop 2.x使用的是8020端口。端口用于节点直接内部通信,使用RPC通信机制
5、修改hadoop/etc/hadoop/core-site.xml文件
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata-04:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0/data/tmp</value>
</property>
(1)备注:官网默认配置文件位置:
http://hadoop.apache.org/docs/stable/(找对应版本),拉到最下面的左下角有Configuration,里面有四个配置文件core-default.xml,hdfs-default.xml,mapred-default.xml,yarn-default.xml
(2)注意:/tmp表示临时存储目录,系统每次重启会按照脚本预先设置好的删除里面的文件。重新自定义系统生成的文件路径,/tmp会被清空,无法保证数据文件安全性
6、修改hadoop/etc/hadoop/hdfs-site.xml文件
指定HDFS文件存储的副本数个数,默认是3个,这里是单台机器就设置为1,这个数字要小于datanode的节点数
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
7、修改hadoop/etc/hadoop/slaves文件
-》指定从节点的机器位置,添加主机名即可
hadoop01
8、格式化namenode
bin/hdfs namenode -format
9、启动命令
sbin/hadoop-daemon.sh start namenode
sbin/hadoop-daemon.sh start datanode
10、查看HDFS外部UI界面
hadoop01或者IP地址 跟上50070端口号,外部通信
http://hadoop01:50070/
如果不可以则关闭防火墙
(1)查看防火墙状态
service iptables status
(2)关闭防火墙
service iptables stop
(3)永久关闭
chkconfig iptables off
11、测试HDFS环境
创建文件夹,HDFS中有用户主目录的概念,和Linux一样
bin/hdfs dfs -mkdir -p hadoop01/iuput
12、上传文件到HDFS
bin/hdfs dfs -put etc/hadoop/core-site.xml etc/hadoop/hdfs-site.xml /
13、读取HDFS的文件
bin/hdfs dfs -text /core-site.xml
14、下载文件到本地(指定下载到哪里,同时可以重命名成get-site.xml)
bin/hdfs dfs -get /core-site.xml /home/hadoop01/get-site.xml
15、删除hdfs上文件
bin/hdfs dfs -rm -R /output
16、核心:日志位置
(1)hadoop根目录下logs里面!
(2)一般查看.log结尾文件
.out里面是一些基本开启参数
.log里面是日志信息
四、yarn的配置
1、Yarn环境变量
yarn-env.sh
export HADOOP_YARN_USER=/opt/jdk1.8.0_151
mapred-env.sh
export JAVA_HOME=/opt/jdk1.8.0_151
2、修改hadoop/etc/hadoop/mapred-site.xml文件
指定mapreduce计算模型运行在yarn上
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
3、修改hadoop/etc/hadoop/yarn-site.xml文件
指定启动运行mapreduce上的nodemanager的运行服务
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
4、指定resourcemanager主节点机器,可选项,不一定要配置,默认是本机,但是指定了之后在其他机器上启动,就会报错
hadoop/etc/hadoop/yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
5、启动yarn
sbin/yarn-daemon.sh start resourcemanager
sbin/yarn-daemon.sh start nodemanager
6、查看yarn外部web界面
hadoop01或者IP地址 跟上8088端口号,外部通信http
http://hadoop01:8088/
7、测试环境,运行一个mapreduce,wordcount单词统计案例
(1)一个mapreduce分为五个阶段
input -> map() -> shuffle -> reduce() -> output
(2)将数据文件从本地上传到HDFS
bin/hdfs dfs -put /opt/datas/1.txt /user/hadoop01/iuput/
(3)将mapreduce运行在yarn上,需要打jar包,新建一个数据文件,用于测试mapreduce,使用官方提供的示例jar包:
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar
8、运行
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/hadoop01/1.txt /user/output