您的位置:首页 > 运维架构

hadoop 环境搭建要点

2015-10-03 15:15 330 查看

1.下载压缩包并解压

2.设置环境变量

在/etc/profile中添加

export JAVA_HOME="/usr/lib/jdk1.8.0_60"
export HADOOP_HOME=/usr/lib/hadoop-1.0.0
export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin


执行
source /etc/profile


3.在conf目录下的配置文件中添加配置项:

mapred-site.xml


<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
</property>
</configuration>


core-site.xml


<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/lib/hadoop-1.0.0/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>


hadoop-env.xml


export JAVA_HOME="/usr/lib/jdk1.8.0_60"


4.设置免密码登录

ssh-keygen -t rsa
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys


5.启动hadoop

5.1 格式化hdfs

hadoop namenode -format


5.2启动hadoop

start-all.sh


在浏览器中输入http://hadoop0:50030检查mapreduce是否启动成功

输入http://hadoop0:50070检查hdfs是否启动成功

6.错误

通过查看源文件中的
core-default.xml
文件发现默认namenode、secondary namenode和datanode都会将数据存储在本地根目录下的tmp文件夹下,而这个文件夹下的内容每次重启电脑都会被清空,这样我们就会丢失重要数据。下次开机运行
start-all.sh
时,就会报下面的错误:

2015-10-03 13:37:07,467 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.

30 org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.

……

2015-10-03 13:37:07,760 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode : org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.

一个治标不治本的解决方法是重新运行
hadoop namenode -format
麻烦不说,主要是这个方法无法解决丢失数据的问题。

解决方法就是
core-site.xml
中添加如下内容覆盖
core-default.xml
中的值:

<property>
<name>hadoop.tmp.dir</name>
<value>/usr/lib/hadoop-1.0.0/tmp</value>
</property>


然后重新格式化namenode后再启动hadoop。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop