Linux下hadoop的安装其实难度不大,按照hadoop官方所提供的文档就可完成,本次实践所采用的环境如下:
操作系统:Ubuntu 12.04 64位的版本
JDK:1.6.0_45,64位版本
Hadoop:1.2.1
首先是分别下载所需的软件版本
jdk-6u45-linux-x64.bin
hadoop-1.2.1.tar.gz
1.加压hadoop的gz包
tar -zxvf hadoop-1.2.1.tar.gz
得到hadoop-1.2.1文件夹
2.安装JDK
赋予可执行权限
chmod +x jdk-6u45-linux-x64.bin
然后执行./jdk-6u45-linux-x64.bin即可完成安装
3.设置JDK,JRE,Hadoop的环境变量
修改用户的根目录下的.bashrc文件将环境变量加进去
根据个人实际情况来定:
export JAVA_HOME=/tools/java/jdk1.6.0_45
export JRE_HOME=/tools/java/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export HADOOP_HOME=/tools/hadoop/hadoop-1.2.1
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
注:.bashrc文件位隐藏文件
设置完成后使用后使用:source .bashrc 使刚设置的环境变量生效
4. 对hadoop进行配置
1>. hadoop的安装有三种模式:
a. 单机模式:Standalone
b. 伪分布式模式:Pseudo-Distributed
c. 分布式模式:Cluster
由于条件有限就采用了伪分布式模式的方式进行安装
这里就按照hadoop官网上的步骤进行完成:
2>. 安装 ssh rsync
$ sudo apt-get install ssh
$ sudo apt-get install rsync
3>. 修改 hadoop-env.sh 文件,对JAVA_HOME进行配置
export JAVA_HOME=/tools/java/jdk1.6.0_45
4>.修改配置文件core-site.xml,hdfs-site.xml,mapred-site.xml
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
注:默认情况下如果不对hdfs-site.xml进行dfs.name.dir,dfs.data.dir进行配置,hadoop将会把目录设置在tmp下面,但是由于tmp目录有时会被系统清理掉,所以每次启动hadoop都需要format以下namenode。如果要避免此操作可以配置上这两个属性,这里要注意的是,dfs.data.dir的属性值所对应的目录的权限须是rwxr-xr-x即755权限,否则在启动hadoop时有可能无法启动datanode
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>127.0.0.1:9001</value>
</property>
</configuration>
5>. 配置无密码SSH登录
执行:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
修改authorized_keys权限
chmod 600 authorized_keys
Hadoop的配置完成
5.启动Hadoop
在没有进行多余配置的情况下hadoop默认的临时文件存放位置位 /tmp/主机名
对namenode进行格式化
hadoop namenode -format
启动hadoop
start-all.sh
启动完成后通过jps命令能够看到以下进程:
21178 DataNode21529 JobTracker
28723 Jps
21802 TaskTracker
21443 SecondaryNameNode
20914 NameNode
说明启动成功
6.使用hadoop命令
bin/ hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
注:官网上的这条命令其实是在hadoop-examples-1.2.1.jar同级目录下执行的,如果你想在任意目录下执行需要加上相应的路径才行,input/output也是可以
加路径的
7.关闭hadoop只需要执行stop-all.sh就可以
8.OK至此Hadoop的安装已经完成,可以开始尝试玩一玩hadoop dfs的操作命令了