1.上传Hadoop包
2解压Hadoop包
创建一个目录 mkdir /itcast
tar -zxvf hadoop-2.7.2.tar.gz -C /itcast
3.配置Hadoop伪分布式(修改五个文件)
首先转到hadoop目录下
cd /itcast/hadoop-2.7.2/etc/hadoop
第一个修改hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_79
第二个修改core-site.xml
vim core-site.xml
<configuration>
<!--用来指定HDFS的NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://senwen1:9000</value>
</property>
<!--用来指定Hadoop运行时产生文件的存放目录-->
<name>hadoop.tmp.dir</name>
<value>/itcast/hadoop-2.7.2/tmp</value>
</property>
</configuration>
第三个修改hdfs-site.xml
<configuration>
<!-- 指定HDFS保存数据副本的数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
第四个修改mapred-site.xml
原目录下没有该文件,只有一个示例文件,需要将该示例文件重命名后进行修改。
[root@senwen1 hadoop]# mv mapred-site.xml.template mapred-site.xml
<configuration>
<!-- 告诉Hadoop以后MR运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第五个修改yarn-site.xml
<!--NodeManager获取数据的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--指定yarn的老大(ResourceManager)的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>senwen1</value>
</configuration>
4配置Hadoop的环境变量
[root@senwen1 hadoop]# vim /etc/profile
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
export HADOOP_HOME=/itcast/hadoop-2.7.2
刷新配置:
[root@senwen1 hadoop]# source /etc/profile
修改.bashrc文件
vim .bashrc
export HADOOP_HOME=/itcast/hadoop-2.7.2
export CLASSPATH=JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=$PATH:$HADOOP_HOME/bin
5初始化HDFS(格式化文件系统)
#hadoop namenode -format (过时)还可以用
用hdfs namenode -format
改了之后显示16/06/1614:58:17 INFO common.Storage:
Storage directory /itcast/hadoop-2.7.2/hadoop_root/dfs/name has been successfully formatted.
./start-all.sh也过时了This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
这种方式需要多次输入密码
还可以通过浏览器的方式验证
http://192.168.56.8:50070 (hdfs管理界面)
http://192.168.56.8:8088 (yarn管理界面)
到这里连不上50070,并且jps命令后并没有出现Namenode
解决办法:
namenode 默认在/tmp下建立临时文件,但关机后,/tmp下文档自动删除,再次启动Master造成文件不匹配,所以namenode启动失败。
在core-site.xml中指定临时文件位置,然后重新格式化,终极解决!
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/grid/hadoop1.7.0_17/hadoop_${user.name}</value>
<property>
value中的路径只要不是/tmp就行。
6.上传linux系统中一个文件到hdfs上
[root@senwen1 ~]# hadoop fs -put /root/jdk-7u79-linux-i586.tar.gz hdfs://senwen1:9000/jdk
通过Browsing HDFS查看上传的文件
7.使用命令下载:
[root@senwen1 ~]# hadoop fs -get hdfs://senwen1:9000/jdk /home/jdk1.7
8.测试MR 和YARN
[root@senwen1 mapreduce]# hadoop jar hadoop-mapreduce-examples-2.7.2.jar wordcount hdfs://senwen1:9000/words hdfs://senwen1:9000/wcout
9.配置hadoop ssh免密码登陆
生成ssh免登陆密钥
ssh-keygen -t rsa
执行完后会生成两个文件id_rsa(私钥)、id rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上
ssh-copy-id senwen1