Ubuntu 14.04下Hadoop 2.7.2安装配置详述

注意:以下实践实在Ubuntu 14.0.4以及Hadoop2.7.2所做的,如果环境不同,效果可能不理想。

首先,以下默认我们已经下载好了jdk以及hadoop的压缩包,没有的话,需要这里->JDK下载 | Hadoop下载下载

一. 配置jdk

Ubuntu默认是使用的OpenJDK,似乎也可以,不过因为惯性,我还是先配置了Sun的JDK,以防万一。

修改环境文件

运行命令:sudo gedit ~/.bashrc
末尾另起一行加入

export JAVA_HOME=[your_jdk_path] export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

例如:

export JAVA_HOME=/home/lq/jdk1.8 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

修改bashrc文件,可以参考文章设置Linux环境变量的方法和区别 

二. 设为默认jdk

命令行中输入命令

sudo update-alternatives --install /usr/bin/java java [your_jdk_path]/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac [your_jdk_path]/bin/javac 300

例如:

sudo update-alternatives --install /usr/bin/java java /home/lq/jdk1.8/bin/java 300` sudo update-alternatives --install /usr/bin/javac javac /home/lq/jdk1.8/bin/javac 300` 三. 配置ssh:

因为是hadoop伪分布试配置,hadoop需要设置ssh登录,一般设为无密码登录
1. 安装SSH server

运行命令:sudo apt-get install openssh-server
2. 登录

运行命令:ssh localhost
3. 配置无密码登录

运行以下4条命令:

exit #退出刚才的 ssh localhost

cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost

ssh-keygen -t rsa # 会有提示,都按回车就可以

cat ./id_rsa.pub >> ./authorized_keys # 加入授权

四. 配置Hadoop环境

运行命令:
sudo gedit ~/.bashrc
末尾加入如下语句:

export HADOOP_HOME=[your_hadoop_path] export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

例如:

export HADOOP_HOME=/home/lq/hadoop-2.7 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 五. 修改Hadoop默认的配置文件

修改hadoop-env.sh文件

在文件中找到export JAVA_HOME=${JAVA_HOME},修改为export JAVA_HOME=[your_jdk_path]

例如: export JAVA_HOME=/home/lq/jdk1.8

在hadoop的目录中找文件夹etc,修改其中的core-site.xml

<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:[your_hadoop_temp_path]</value>//这里填写的是你的hadoop的临时文件夹,一般放到hadoop_home文件夹的目录下 <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>

例如:

<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/home/lq/hadoop-2.7/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>

修改hdfs-site.xml文件

<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:[your_hadoop_temp_path]/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:[your_hadoop_temp_path]/tmp/dfs/data</value> </property> </configuration>

例如:

<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/lq/hadoop-2.7/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/lq/hadoop-2.7/tmp/dfs/data</value> </property> </configuration> 六. 启动hadoop

首先需要先格式化namenode,在hadoop的安装目录下执行
bin/hadoop namenode -format

这条语句执行一次就可以了,无需次次启动都执行,成功的话会有下面图片上的信息 而且格式化namenode会造成HDFS文件系统内的数据丢失,如果有重要数据的话需要先保存。

另外,遇到格式化不成功的情况,再次启动hadoop,使用jps语句查看会发现Datanode进程不存在,这时可以将hadoop的临时目录(在hdfs-site.xml中配置的)清空后再次格式化、启动,就可以了。
* 启动hadoop
sbin/start-all.sh

启动后使用命令jps可查看现在运行的java进程,如下

格式化成功提示以及使用JPS命令查看进程的显示

停止hadoop
sbin/stop-all.sh

如你所想,启动和停止命令是两个总命令,还可以通过两个小命令(start-dfs.sh start-yarn.sh stop-dfs.sh stop-yarn.sh)实现同样的功能。

至此,如果启动关闭过程中命令行没有报错,那么就配置成功了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/69e73e768e30f10609dedd17a14638a0.html