今天把hadoop伪分布的步骤一步步写下来作学习交流之用。
前奏:
需要安装一台vm虚拟机,并且安装好一个linux系统,我这里选择了centerOS的linux作为参考只有,如何安装虚拟机和linux在网上自行查找,这里不作为重点讨论。
需要下载好一个linux 版本的JDK,并且JDK的版本必须在1.6以上,我这选用的是jdk1.6.0_45。然后再下载一个hadoop,我这里选用的是hadoop-1.1.2。
还有就是需要下载好一个ftp上传工具用于把JDK和hadoop上传到linux
前奏的工具准备好了就可以开始着手部署了。
1.首先把虚拟机中的linux的网络适配器改为hosts-only,如果是中文版的就是仅主机模式。
修改完虚拟机的网络连接方式后,就要修改ip,以保证虚拟机和主机能够通信。
主机在网络适配器中选择VMnet1,修改ip,VMnet8不用管
修改后的VMnet1的ip为
接着再修改linux的ip地址,右键点击linux的图标
选择编辑连接方式
修改完后保存,通过ifconfig查看是否已经修改ip
2.修改完ip后,接着修改主机名 vim /etc/sysconfig/network,把主机名修改为hadoop01。
再修改linux中的ip和主机名的映射 vim /etc/hosts,修改如下
然后重启linux,用命令reboot。
3.关闭防火墙 通过命令 service iptables stop,通过service iptables status 查看是否关闭,如下图则已关闭。
再关闭防火墙开机启动,chkconfig iptables off,通过chkconfig iptables --list 查看,如下图则已关闭。
4.在linux的根目录创建一个文件夹soft,我这里用通过用ftp创建的,不做描述。然后把,jdk和hadoop上传到soft的目录下。
在命令行中进入到soft文件夹,通过命令 cd /soft。 然后再命令行解压JDK,但是没有权限,所以要先赋权限 通过命令 chmod u+x jdk-6u45-linux-i586.bin a
然后 ./jdk-6u45-linux-i586.bin 解压
解压完后,创建一个新的文件夹在usr目录下mkdir /usr/java,把加压好的JDK拷贝到这个新的文件夹下,mv jdk1.6.0_45/ /usr/java,以上操作都是在soft文件夹下完成。
接着,修改JDK的环境变量。 打开文件 vim /etc/profile
打开文件后增加这几行代码
export JAVA_HOME=/usr/java/jdk1.6.0_45
export PATH=$PATH:$JAVA_HOME/bin
保存退出后,执行 source /etx/profile。
通过下面两条命令,创建一个文件,并且把hadoop解压到刚新建的文件夹下。这两天命令都是在soft的目录下进行的。
mkdir /cloud
tar -zxvf hadoop-1.1.2.tar.gz -C /cloud/
接着修改hadoop的配置文件,这几个配置文件都在conf下,通过cd /cloud/hadoop-1.1.2/conf 进入这个文件夹
具体修改的文件内容如下
第一个:hadoop-env.sh
#第9行:导入JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.6.0_45
第二个:core-site.xml
<configuration>
<!-- 配置HDFS的老大(namenode)的地址 -->
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop01:9000</value>
</property>
<!-- 配置hadoop运行时产生的文件的目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/cloud/hadoop01-1.1.2/tmp</value>
</property>
</configuration>
第三个:hdfs-site.xml
<configuration>
<!-- 配置HDFS的副本数量为1 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
第四个:mapred-site.xml
<configuration>
<!-- 配置MR的老大(jobtracker)的通信地址 -->
<property>
<name>mapred.job.tracker</name>
<value>hadoop:9001</value>
</property>
</configuration>
然后将hadoop加入到环境变量
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.6.0_45
export HADOOP_HOME=/cloud/hadoop-1.1.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
保存退出会后,执行source /etc/profile
接着格式化文件管理系统,就是格式化namenode
hadoop namenode -format
需要输入3次linux的登陆密码,最后看到如下就说明格式化成功。
最后通过 start-all.sh 命令启动hadoop,然后用jps查看Java进程 ,有NameNode,DataNode,secondnamenode,jobtracker,taskertracker,这5个线程就算成功了