hadoop的配置以及Eclipse编程

 hadoop集群把我配置得要吐血,从各种无厘头的问题的出现到疯狂无脑搜索问题的解决方案,青春一点一点地被虚度。

好吧废话不说,以下是我总结的配置步骤:

 1, 装Linux的时候将机群每台机器都配置成不同的机器名为 hostname1,hostname2,………. 每台机器上都有个同名的用户,最好有管理员权限方便操作,选一台比较可靠的机器作为主机,以后的操作都在主机上进行。(以下规定主机名叫master 其余叫slave)

   2,命令行里输入ssh,如果该命令无法识别则需要先安装ssh  用apt-get安装即可。如果已经装过则跳过这步

   3,试试输入ssh xxx.xxx.xxx.xxx(其他机器ip)。如果不要求输入密码则跳过该步,如果需要密码则按如下步骤操作:命令行输入 ssh–keygen –t rsa, ssh和-keygen之间无空格。全部确定 让输入y/n 就输入y。然后输入 ls .ssh可以看到生成了个叫id_rsa.pub的文件  .ssh大概是主文件夹里边的一个包含ssh的密码和公钥的隐藏文件夹,用scp命令把.ssh文件夹里的id_rsa.pub 拷贝到各个机器包括主机 格式为 scp .ssh/id_rsa.pub slave:.ssh/ id_rsa.pub  然后再把id_rsa.pub拷贝到各个机器重命名为authorized_keys:scp .ssh/id_rsa.pub slave:.ssh/ authorized_keys  .  输入ssh别的机器ip  若能登陆其他机器且不要密码就可以了。若scp不能用则用u盘拷 每台机上输入 cat id_rsa.pub路径>>.ssh/authorized_keys

   4,配置ip映射:在/etc/hosts 文件的开头加上主机ip以及主机名各副机ip及计算机名,一行一对ip和机器名  试试ssh slave 若能登陆则可。用scp将hosts文件夹拷贝至各个分机

5,下载hadoop 0.21 随便解压到某个文件夹即可,同时把java jdk也下载下来

6,添加环境变量:

把以下三行添加到/etc/profile文件的末尾

export JAVA_HOME=/home/chris/jdk1.6.0_13

export HADOOP_HOME=/home/chris/hadoop-0.21

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

若权限不够执行chmod 777 /etc/profile或者sudo gedit /etc/profile

把以下三行添加到Hadoop0.21/conf/hadoop-env.sh末尾

export JAVA_HOME=/home/chris/jdk1.6.0_13

export HADOOP_HOME=/home/chris/hadoop-0.21.0

export HADOOP_HOME_CONF=%HADOOP_HOME/conf

把Hadoop0.21/conf/hadoop-env.sh文件拷贝到各个分机同一位置

   7,配置hadoop的参数。

它的参数以xml格式存在Hadoop0.21/conf/core-site.xml Hadoop0.21/conf/mapred-site.xml   Hadoop0.21/conf/hdfs-site.xml 里

格式为

<configuration>

    <property>

    <name>变量1</name>

    <value>值1</value>

    </property>

    <property>

    <name>变量2</name>

    <value>值2</value>

    </property>

       。。。。。。。。。。。。

</configuration>

Hadoop0.21/conf/core-site.xml:

 

<configuration>

  <property>

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

    <value>hdfs://master:9000</value>

  </property>

<property>

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

    <value>/home/chris/hadooptmp</value>

</property>

</configuration>

 

Hadoop0.21/conf/mapred-site.xml:

<configuration>

  <property>

    <name>mapreduce.jobtracker.address</name>

    <value> master:9001</value>

  </property>

</configuration>

 

Hadoop0.21/conf/hdfs-site.xml:

<configuration>

  <property>

    <name>dfs.replication</name>

<value>1</value>       

(此值在多机器实际运行时最好设为2这样每台机器都会有一个数据备份,运行时数据可以本地读取速度更快)

  </property>

  <property>

    <name>dfs.data.dir</name>

    <value>/home/chris/hadoopdata</value>

  </property>

  <property>

    <name>dfs.name.dir</name>

    <value>/home/chris/hadoopname</value>

  </property>

</configuration>

 

Hadoop0.21/conf/master:(第一行的机器为主节点,如果不止一行则第二行以后的机器为副主节点。)

Master

 

 

Hadoop0.21/conf/slave:(需要哪些机器做分机就写哪些,一个机器一行)

Slave1

Slave2

.。。。。。。。。

 

8,把hadoop和jdk的文件夹整个拷贝到每个分机。/etc/profile ,Hadoop/Conf文件夹里的配置以主机为准 各个分机无所谓。Hadoop0.21/conf/hadoop-env.sh ,/etc/hosts 每台机器都必须一样。

 

9,格式化主节点命令行输入hadoop namenode –format 然后输入start-all.sh 即可启动集群。输入jps 主机应该会有namenode jobtracker secondarynamenode 出现 如果主机也同时是slave 则还会有tasktracker和datanode。在各个slave机上输入jps会有datanode和tasktracker

如果这些少一项则可能是配置错误

用命令hadoop dfsadmin –report在主机查看各个分机启动情况 (该命令输入时可能集群没完全启动,若发现没有节点则等会再输入该命令直到出现 (n total, 0 dead) 且下边详细给出每个节点信息为止) 若发现有死节点则可能配置有错,查看hadoop/logs 里的日志来查找错误。

注意每次格式化主节点前务必删除每个节点hadoop.tmp.dir,dfs.data.dir,dfs.name.dir所指定的文件夹以及hadoop/logs里所有文件,否则格式化后集群的副节点会无法启动

浏览器里输入以下网址也可查看,如果有一个页面无法显示则说明配置错误

http://localhost:50030/ - Hadoop 管理介面

http://localhost:50060/ - Hadoop Task Tracker 状态

http://localhost:50070/ - Hadoop DFS 状态

关闭集群使用stop-all.sh

 

10,开始编程。

下载Eclipse 对于hadoop 0.21 我试过Eclipse的helio Galileo gerrymand 都有致命的问题。所有我推荐用Eclipse官网的最老版本europa,虽然europa还是有问题,但是勉强可以用。下载完后,在hadoop文件夹里搜hadoop-0.21.0-eclipse-plugin.jar搜到后按http://yizhilong28.iteye.com/blog/1030536 里的方法修改。修改后放进Eclipse的plug-in文件夹。

建立hadoop工程,windows->show view->other->map reduce,下边会有个图标为小黄象的选项卡,右键点它,选new hadoop location,左右两边是主机名,端口分别是hadoop/conf里fs.default.name和mapreduce.jobtracker.address的端口。

如果发现选中new hadoop location无效或者连小黄象也没有,或者语法没错但是编译总通不过。那么直接写好代码选file->export->java jar file->代码文件夹 自己随便编一个jar包的名例如 map.jar 主类叫做mymapred.class 打包成jar 即可

运行程序的时候命令行输入hadoop jar map.jar的全路径 mymapred 参数表 即可

如hadoop /home/hadoops/ map.jar mymapred 1000 2000。每次运行前必须把上次运行结果给删了。用hadoop fs –rmr /output

 

11,建文件夹使用hadoop fs –mkdir 路径

程序里读取的文件必须在hdfs里 使用hadoop –put 源路径 hdfs路径 即可

 

 

 

13,附录 常用命令:

Chmod 777 /etc/profile

sudo gedit /etc/profile

Ssh-keygen –r rsa

Ssh 192.168.1.101

Ssh slave

Scp /home/master/a.txt slave:/home/master/b.txt

Hadoop  namenode  –format

Hadoop  dfsadmin  –report

Jps(查看本地java进程)

Hadoop  dfsadmin  –safemode  leave

hadoop  fs  –mkdir  /input

hadoop  –put  /home/master/data  /input

hadoop  –get    /output/part-00000  /home/master/myoutput.txt

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值