ubuntu中安装伪分布式Hadoop问题总结

最近开始学习hadoop,把老婆新买笔记本抢来装了个Ubuntu12.04,准备在此基础上安装伪分布式Hadoop

一、准备工作

1.Hadoop有三种运行方式:单机模式、伪分布式和完全分布式。

单机模式无需配置,Hadoop被认为是一个单独的java进程,常用来调试

伪分布式的Hadoop看做只有一个节点的集群,这个节点既是Master,也是Slave;既是NameNode,也是DataNode;既是JobTracker,也是TaskTracker。

2.安装文件准备

hadoop-1.2.0.tar.gz

jdk1.7.0_21.tar.gz

二、安装步骤

1、新建hadoop组及hadoop用户,专门操作hadoop相关工作

sudo addgroup hadoop

sudo adduser -ingroup hadoop hadoop

给hadoop用户授权,管理员权限

sudo gedit /etc/sudoers

编辑/etc/sudoers文件,在#user privilege区域root ALL=(ALL) ALL添加

hadoop ALL=(ALL) ALL

2、安装openssh

ssh网络协议,实现字符界面的远程登陆管理,默认端口22,采用密文形式传输数据,取代明文的telnet,压缩数据同时安全性更高

Ubuntu默认安装了openssh-client,需手动安装open-server

切换为hadoop用户:

su hadoop

sudo apt-get update(有时安装open-server提示没有安装包,需升级一下,此步可省)

sudo apt-get install openssh-server

(sudo apt-get purge openssh-server:删除ssh)

配置无密钥登陆,即生成公钥和私钥,通过获取公钥来登陆主机:

ssh-keygen -t rsa

一路回车:默认设定文件目录(~/.ssh)、密码为空

将公钥加入已验证钥目录:

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

重启sshd服务:

sudo service ssh restart

查看是否已经启动ssh,正常为两个进程:

ps -e | grep ssh

3、安装jdk

用户hadoop

su hadoop

cp jdk1.7.0_21 /usr/local

cd /usr/local

sudo tar -xzf jdk1.7.0_21.tar.gz

sudo mv jdk1.7.0_21 jdk

jdk所有用户均可使用

sudo chmod 777 jdk

配置环境变量,/etc/profile

sudo gedit /etc/profile

profile文件附加以下信息:

#set java environment

export JAVA_HOME=/usr/local/jdk

export JRE_HOME=/usr/local/jdk/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH

使改动生效:source /etc/profile

将jdk1.7设置为默认jdk

sudo update-alternatives --install /usr/bin/java  java   /usr/local/jdk/bin/java  300

sudo update-alternatives --install /usr/bin/javac  javac   /usr/local/jdk/bin/javac  300

sudo update-alternatives  --config  java

sudo update-alternatives  --config  javac

重启测试jdk

java -version

4、安装hadoop

su hadoop

sudo cp hadoop-1.2.0.tar.gz /usr/local

sudo tar -xzf hadoop-1.2.0.tar.gz

sudo mv hadoop-1.2.0  hadoop

将hadoop文件夹权限赋给hadoop用户:

sudo chown -R  hadoop:hadoop  hadoop

要想使用HDFS命令快捷操作,编辑PATH变量

sudo gedit /etc/profile

#set hadoop

export HADOOP_HOME=/usr/local/hadoop

export PATH=HADOOP_HOME/bin:$PATH

是改动生效:source /etc/profile

配置hadoop:

su hadoop

cd /usr/local/hadoop

a.  conf/hadoop-env.sh

sudo gedit conf/hadoop-env.sh

使JAVA_HOME生效,并改为:export JAVA_HOME=/usr/local/jdk

b.  conf/core-site.xml

<configuration>

    <property>

         <name>fs.default.name</name>

         <value>hdfs://localhost:9000</value>

    </property>

    <property>

         <name>hadoop.tmp.dir</name>

         <value>/usr/local/hadoop/hadooptmp</value>

    </property>

</configuration>

c.  conf/mapred-site.xml

<configuration>

    <property>

         <name>mapred.job.tracker</name>

         <value>hdfs://localhost:9001</value>

         <description>jobtracker 标识:端口号,不是uri</description>

    </property>

</configuration>

d.   conf/hdfs-site.xml

<configuration>

<property>
      <name>dfs.name.dir</name>
      <value>/usr/local/hadoop/hdfs/name</value> 

       <description>namenode上存储hdfs名字空间元数据</description>
</property>

<property>
      <name>dfs.data.dir</name>
      <value>/usr/local/hadoop/hdfs/data</value> 

<description>datanode上数据块的物理存储位置</description>
</property>
<property>
      <name>dfs.replication</name>
      <value>1</value> 

      <description>副本个数,默认为3,单机下配1</description>
</property>
</configuration>

格式化hdfs文件系统,初次运行必须此操作,切换到hadoop用户

su hadoop

hadoop namenode -format

启动Hadoop:start-all.sh

检测,显示进程:Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker

jps

问题:

1.java环境变量设置错误,path

常用命令使用如ls时,无效,提示路径无。关机重启,输入密码无法进入系统,始终停留在账号登陆界面,个人处理办法是重装系统。

2.hadoop安装完成,查看目前启动节点时,jps命令无效,因为前面修改了默认的jdk,处理办法,重新设置jps为安装Jdk目录中的jps

sudo update-alternatives --install /usr/bin/jps jps /usr/local/jdk/bin/jps 1

3.有时jps不同时显示namenode和datanode,看log记录提示 can only be replicated 0 nodes, instead of 1。是因为namenodeID和datanodeID冲突。将设定的hadoopTMP和HDFS目录删除,重新hadoop namenode -format即可解决。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值