Linux学习之hadoop(一)–hadoop的安装
最近,开始学习hadoop的相关知识,因此开始安装hadoop。装了好几遍,也遇到不少问题,因此记录下来。
老师直接给了一个虚拟机,里面包含了hadoop-1.21.tar.gz以及jdk.6u45-linux-i586-rpm.bin
1. 安装jdk
- 先确认操作系统是否已安装jdk
[root@localhost Desktop]# rpm -qa | grep java
这样代表并没有安装jdk
-
解压安装bin包至合适的目录
[root@localhost Desktop]# chmod 755 jdk-6u45-linux-i586-rpm.bin [root@localhost Desktop]# ./jdk-6u45-linux-i586-rpm.bin //默认在当前目录
-
配置jdk的环境变量
[root@localhost Desktop]# vi /etc/profile
添加如下:
export JAVA_HOME=/usr/java/jdk1.6.0_45
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export path=$PATH:$JAVA_HOME/bin
JAVA_HOME的路径可以到/usr/java/下找名字为jdkxxxxxxx的文件(xxxxxxx代表后面的版本号,因人而异)
[root@localhost Desktop]# source /etc/profile //使配置生效
2. 配置SSH免密码登陆
- 修改ssh配置文件
[root@localhost Desktop]# vi /etc/ssh/sshd_config
注释掉:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
这里是已经注释掉了。
-
重启ssh服务
[root@localhost Desktop]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
-
用hadoop用户设置无密码登陆
(注意是在/root下)
[root@localhost Desktop]# cd /root [root@localhost ~]# ssh-keygen -t rsa
一直回车
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 0d:f0:28:46:d9:d2:e8:05:81:39:6c:71:3a:b8:7b:d1 root@localhost.localdomain The key's randomart image is: +--[ RSA 2048]----+ | o=.++o | | .ooO+. . | | oo*+.. | | . . *.. | | S E | | o . | | . . | | | | | +-----------------+ [root@localhost ~]#
进入.ssh目录(虚拟目录)
[root@localhost ~]# cd .ssh/ [root@localhost .ssh]# cp id_rsa.pub authorized_keys [root@localhost .ssh]# chmod 600 authorized_keys
3. 安装hadoop
(我把hadoop放在/home/hadoop/Documents下)
[hadoop@localhost Documents]# tar xvf hadoop-1.2.1.tar.gz //解压在当前目录
[hadoop@localhost Documents]# ls
hadoop-1.2.1 VMwareTools-10.1.6-5214329.tar.gz
hadoop-1.2.1.tar.gz vmware-tools-distrib
[hadoop@localhost Documents]# cd hadoop-1.2.1
4. 配置hadoop
-
环境hadoop变量配置conf/hadoop-env.sh
[hadoop@localhost hadoop-1.2.1]# vi conf/hadoop-env.sh
添加或修改JAVA_HOME路径(跟前面一样)
export JAVA_HOME=/usr/java/jdk1.6.0_45/
-
配置conf/core-site.xml文件,Hadoop的核心文件,配置的是HDFS的地址和端口号
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
-
配置conf/hdfs-site.xml,Hadoop中的HDFS的配置,配置的备份方式默认是
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
-
配置conf/mapred-site.xml,Hadoop中MapReduce配置文件,配置JobTracker的地址和端口
<configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration>
5. 启动hadoop
-
格式化hdfs
[root@localhost hadoop-1.2.1]# ./bin/hadoop namenode -format
启动hadoop
[root@localhost hadoop-1.2.1]# ./bin/start-all.sh
注意:这个不要一直按回车!!!要填yes!!! ,否则会出现
尽管输入localhost:50030能显示网站,但是注意红圈位置,Nodes个数是0
比如你想将某个文件放入某个文件夹,也是会报错的
这里将song.txt放入input文件夹
[root@localhost hadoop-1.2.1]# ./bin/hadoop fs -put /home/hadoop/Desktop/song.txt /input
会提示错误:
19/10/13 03:45:06 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /input could only be replicated to 0 nodes, instead of 1
所以正确的做法是!!! 规规矩矩地在(yes/no)?中填上yes
-
检测
在浏览器中输入http://localhost:50030
成功是这样:
这样就结束安装了
总结
要认真看反馈回来的信息,不要一味看着教程安装,很多路径因人而异(?)