本次实验参考了官方文档如下:
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html
版本说明:
操作系统:rhel-linux-64
hadoop版本:hadoop-3.0.0-alpha1 下载地址:http://hadoop.apache.org/releases.html
Java版本:jdk 1.8 下载地址:https://www.java.com/en/download/manual.jsp#lin
一:环境配置
1、安装jdk: [root@test2 setup]# rpm -ivh jre-8u111-linux-x64.rpm 2、安装配置pdsh [root@test2 setup]# tar -jxf pdsh-2.26.tar.bz2 && cd pdsh-2.26 [root@test2 pdsh-2.26]# ./configure --with-ssh --without-rsh && make && make install [hadoop@test2 pdsh-2.26] # pdsh -v 3、创建hadoop 用户: [root@test1 ~]# useradd hadoop [root@test1 ~]# passwd hadoop 4、Hadoop用户解压缩安装包: [hadoop@test2 setup]# gunzip hadoop-3.0.0-alpha1.tar.gz [hadoop@test2 setup]# tar -xvf hadoop-3.0.0-alpha1.tar 5、在hadoop环境变量文件中设置java环境变量 [hadoop@test2 hadoop-3.0.0-alpha1]$ vi etc/hadoop/hadoop-env.sh export JAVA_HOME=/usr/java/jre1.8.0_111 6、Hadoop用户设置java环境变量 [hadoop@test2 latest]$ export JAVA_HOME=/usr/java/jre1.8.0_111 7、查看java为1.8版本 [hadoop@test2 latest]$ java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build25.111-b14, mixed mode)
二:搭建伪分布式hadoop
伪分布式搭建(Hadoop的伪分布式就是可以运行在一个节点上但hadoop守护进程运行在每个独立的java进程中)
1、修改core-site.xml文件 hadoop-3.0.0-alpha1/etc/hadoop/core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> 2、修改hdfs-site.xml文件 hadoop-3.0.0-alpha1/etc/hadoop/ hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> 3、设置ssh信任 [hadoop@test2 ~]$ ssh-keygen -t rsa [hadoop@test2 ~]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys [hadoop@test2 ~]$ cd .ssh [hadoop@test2 .ssh]$ chmod 0600 authorized_keys 无需密码既能返回日期即表示成功 [hadoop@test2 .ssh]$ ssh localhost date Fri Nov 18 10:17:14 CST 2016 4、格式化文件系统 [hadoop@test2 hadoop-3.0.0-alpha1]$ ./bin/hdfs namenode -format 5、启动NameNode和DataNode [hadoop@test2 hadoop-3.0.0-alpha1]$./sbin/start-dfs.sh 注:hadoop的日志写入到 $HADOOP_LOG_DIR 目录 (默认是 $HADOOP_LOG_DIR /logs)
6、NameNode 的默认地址:http://localhost:9870/
(本次测试服务器的IP是192.168.56.59)
7、生成HDFS的目录以便执行MapReduce任务 [hadoop@test2 hadoop-3.0.0-alpha1]$./bin/hdfs dfs -mkdir /user [hadoop@test2 hadoop-3.0.0-alpha1]$./bin/hdfs dfs -mkdir /user/hadoopuser 8、把输入文件拷贝一份到分布式文件系统中 [hadoop@test2 hadoop-3.0.0-alpha1]$./bin/hdfs dfs -mkdir /user/hadoopuser/input [hadoop@test2 hadoop-3.0.0-alpha1]$./bin/hdfs dfs -put etc/hadoop/*.xml /user/hadoopuser/input 9、运行一些示例程序 [hadoop@test2 hadoop-3.0.0-alpha1]$./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha1.jar grep /user/hadoopuser/input output 'dfs[a-z.]+' 10、查看输出文件,将输出文件从分布式文件系统拷贝到本地然后查看 [hadoop@test2 hadoop-3.0.0-alpha1]$./bin/hdfs dfs -get output output [hadoop@test2 hadoop-3.0.0-alpha1]$ cat output/* 或者在分布式文件系统上查看输出文件 [hadoop@test2 hadoop-3.0.0-alpha1]$./bin/hdfs dfs -cat output/* 11、停止服务进程 [hadoop@test2 hadoop-3.0.0-alpha1]$ ./sbin/stop-dfs.sh
三:YARN的配置
1、修改mapred-site.xml文件 hadoop-3.0.0-alpha1/etc/hadoop/mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.admin.user.env</name> <value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value> </property> </configuration> 2、修改yarn-site.xml文件 hadoop-3.0.0-alpha1/etc/hadoop/yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 3、开启资源管理和节点管理 [hadoop@test2 hadoop-3.0.0-alpha1]$./sbin/start-yarn.sh
4、资源管理的默认地址:http://localhost:8088/
(本次测试服务器的IP是192.168.56.59)
5、关闭资源管理和节点管理 [hadoop@test2 hadoop-3.0.0-alpha1]$./sbin/stop-yarn.sh