1.用winscp将JDK的Linux版本和Hadoop文件包传送到Linux虚拟机中。。。效果如图:
打开wincap后,左边是Windows的文件,右边是Linux的文件目录,将hadoop和jdk拉入urs/local/文件夹中,讲其余的文件都递归删除用命令:rm {,,,,,} -rf
4.解压缩安装包;用(./jdk -1_5_0_22-linux-i586-rpm.bin)命令解压缩会提示没有权限,修改权限命令:(chmod u+x jdk-1_5_0_22-linux-)赋予执行权限。
(cd /usr/local/)进入local用户。
解压总是失败图:
5.换个JDK版本,重新再战:
哦,格式错了,郁闷!
6.Linux也有32位和64位之分,执行命令:uname –r |grep x86_64;没有任何操作即为32位,下面也有选择,i586就是32位版本,x86_64为64位版本
两个版本一个是操作位错误,一个不是bin文件。
7.重新下载:
此版本完美运行!
解压完成,
8.安装完成后,ls一下,会看到一个文件夹jdk1.6.0,此时将其重命名为jdk:
命令行是:mv jdk1.6.0 jdk
接下来配置环境变量:vi /etc/profile
加入两行:
让其立即生效:source /etc/profile
视频上的:
我的:又出现错误!java –version 执行命令提示错误。
此贴说的有道理,打开jdk/lib文件中没有类库tool.jar和rt.jar,重新装一下也没有用,,,
只能再下载一个低级版本:jdk-6u20。我成功了!!!!!
可以看出我装了3个版本,已经被我改名的jdk(原来版本1.6.0_20)和jdk1.6.0.0(最开始的版本)和jdk1.6.0(第二个版本);目前还不会卸载,所以我先把他们名字改一下:
9.安装Hadoop:
执行命令 tar –zxvf hadoop-1.1.2.tar.gz
解压后,重命名为hadoop,然后设置环境变量:
增加了HADOOP_HOME的路径,修改了PATH。
修改Hadoop的配置文件,位于$HADOOP_HOME/conf目录下修改4个配置文件,分别是hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml。。
在winSCP中进入<root>-usr-local-hadoop-conf路径进入文件夹,找到这四个文件:
第一个:hadoop-env.sh修改第九行,把注释用的#去掉,将JAVA_HOME路径改成/usr/local/jdk
第二个:修改core-site.xml如下:
如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
第三个:修改hdfs-site.xml内容:
如下:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
第四个:修改mapred-site.xml
如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
</property>
</configuration>
10.启动hadoop,执行hadoop namenode -format先对hadoop进行格式化
再start-all.sh开始执行。会看到:
Starting namenode………………………………………..
Starting datanode………………………………………..
Starting jobtracker………………………………………..
Starting tasktracker………………………………………..
Starting secongdarynamenode………………………………………..
5个java进程。
我的机器上有错误,需要重新对SSH建立互信的过程。
11.这是本机的一些常用路径,cd~和cd /urer/local/ hadoop/两个,在hadoop中执行start-all.sh后,发现启动的jps文件只有一个,原因是没有建立互信:
下面是建立互信的过程(SSH的免密码登录):
1.执行命令 ssh-keygen –t rsa 产生秘钥,秘钥位于~/.ssh文件夹中
2. 如果遇到登录失败的情况:我用的是centos版本是6.5,centos6.5对网络管理相当严格,需要在原来的基础上关闭selinux, 到/etc/selinux/config下,把SELINUX=enforcing修改为SELINUX=disabled,重启
3.一定要以root用户登录,以下是产生秘钥的过程:
可以看到两个文件id_rsa,和id_rsa.pub
4.拷贝秘钥id_rsa.pub内的内容放进authorized _keys中:
5.连接的时候用 ssh localhost 命令,输入yes就会连接
验证一下:exit后会退出localhost。
12.再次实验hadoop,命令行:start-all.sh
看见jps只有三个,还有两个没启动,再次启动,发现依然有错误process information unavailable解决办法:
上面这个方法我没有用;
13.使用start-all.sh命令行后,jps发现几个节点都成功在运行。
做法如下:
查看core-site.xml和mapred-site.xml文件
core-site.xml文件中
1.
2. fs.default.name
3. hdfs://localhost:9000
4.
mapred-site.xml文件中
1.
2. mapred.job.tracker
3. localhost:9001
4.
一个有hdfs://开头,一个没有
这时应该可以启动5个进程了,一般是DataNode没有启动;
14.hadoop:50070是自身namenode;hadoop:50030是自身的jobtacker
15.总结: