我用过的linux命令--安装Hadoop
1. hadoop软件传送给虚拟机
还是利用WinSCP把hadoop软件安装包,放到linux的Downloads文件夹中。
2. 选择安装目录
把hadoop安装包copy到这个安装目录中,这里我们选择CentOS中的/usr/local目录中。
3. 解压缩安装包
看到hadoop安装包的后缀是.tar.gz。所以直接用tar命令解压缩
#tar -zxvf xxx //解压.tar.gz的文件
解压完之后会产生一个文件夹,名字为hadoop-1.1.2,这个名字太长了,不好用,重命名一下
#mv hadoop-1.1.2 hadoop
4. hadoop设置环境变量
解压完了之后,hadoop这个目录中肯定有一个目录结构,先不管是什么,肯定有一个bin目录,里面放置了各种的可以执行的命令。所以要把这个bin目录添加到环境变量中去。
#vi /etc/profile
在配置文件中加入:
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
使配置文件生效:
#source /etc/profile
5. 修改配置文件
为了适合hadoop的伪分布的安装,这里要修改一些配置文件。hadoop的配置文件的目录是$HADOOP_HOME/conf目录下。要修改的文件是:
hadoop-enc.sh、core-site.xml、hdfs-site.xml、mapred-site.xml
为了方便修改,这里我们不用vi修改文件,而是利用WinSCP直接在Windows下修改。
在WinSCP中找到这个文件,然后编辑这个文件就好了。
(1)hadoop-env.sh文件修改内容:
export JAVA_HOME=/usr/local/jdk
(2)core-site.xml文件修改内容:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop:9000</value> <description>change your own hostname</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>
注意:这里的fs.default.name的值说明了NameNode的所在主机的IP地址和NameNode使用的端口号码,一般都是选用9000。
hadoop.tmp.dir说明了Namenode存放临时fsimage和edits的文件路径。
(3)hdfs-site.xml文件修改内容:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.data.dir</name> <value>/usr/local/hadoop/data</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>
注意:dfs.replication的值说明了数据的备份数目,这个备份数目跟dataNode的数目相同。
dfs.data.dir的值说明了dataNode存储数据的目录。
(4)mapred-site.xml文件修改内容:
<configuration> <property> <name>mapred.job.tracker</name> <value>hdfs://hadoop:9001</value> <description>change your own hostname</description> </property> </configuration>
注意:这里的mapred.job.tracker的值说明了JobTracker的所在主机的IP地址和JobTracker使用的端口号码,一般都是选用9001。
6. 对Hadoop进行格式化
对HDFS文件系统重新整理
#hadoop namenode -format //格式化hadoop的HDFS文件系统
7. 启动Hadoop
启动命令脚本在$HADOOP_HOME/bin目录中,所以可以直接运行
#start-all.sh
前面说过hadoop运行的都是一些java的进程,所以启动完hadoop能看到相应的java进程,查看方式:
#jps //查看当前运行的java进程
这个命令不是操作系统的,是位于jdk中的,专门用来查看java进程的
8. 通过浏览器查看hadoop
在Linux的浏览器中输入hadoop:50070可以看到namenode,说明NameNode进程是活着的,同时还说明NameNode本身是一个web server。
在Linux的浏览器中输入hadoop:50030可以看到JobTracker,说明JobTracker进程是活着的,同时还说明JobTracker本身是一个web server。
同样在Windows宿主机器中通过ip地址:50070、ip地址:50030也能看到相同的内容。如果想通过主机名hadoop访问,要把IP地址和hadoop的主机名绑定:
在Windows的C:\Windows\System32\drivers\etc\hosts这个文件中添加:
192.168.80.100 hadoop
然后就能在Windows下通过主机名:端口号的方式访问hadoop了。
注意:这个能访问,首先要能互相ping通。
9. 问题纠错
<1>NameNode进程没有启动成功?
(1)没有格式化
(2)配置文件只copy,没有修改主机名
(3)hostname与ip地址没有绑定
(4)ssh免密码登陆没有配置成功
<2>多次格式化hadoop也是错误的?
解决方法:删除/usr/local/hadoop/tmp文件夹,重新格式化就能解决。