hadoop笔记

来源:互联网 发布:乐清知临与公立哪个好 编辑:程序博客网 时间:2024/04/29 14:56
在linux系统打开终端,进行如下操作
一、关闭防火墙(如果有)
(1)执行命令service iptables status查看防火墙开闭状态(如果开,接下步)
执行命令service iptables stop关闭防火墙
执行命令service iptables status验证是否关闭了(验证很关键,确保每一步的成功,否则后面"死"的很惨)

(2)执行命令chkconfig --list|grep iptables 查看是否有on(此步目的:看是否打开了自动运行防火墙,因为自动运行默认打开的情况下,下次关机重启后,防火墙又打开了,还要重新关闭,麻烦,于是我们直接关闭掉自动运行...)
执行命令chkconfig iptables off关闭防火墙自动运行
执行命令chkconfig --list|grep iptables查看是否有on(同样是验证,我们一定要仔细,因为需要配置的内容很多,避免后面开启hadoop出错后,找不到哪里出错,不如在这里一步一步,保证每一步都正确)
二、修改主机名
(1)执行命令hostname查看当前的主机名
执行命令hostname theo设置当前会话的主机名(注意,在这里修改完主机名之后,重启之后主机名又自动变回修改前的主机名,我们还要执行下一步操作,就可以一劳永逸了)
执行命令vi /etc/sysconfig/network(必须修改这个文件中的主机名,否则,机器重启后,主机名变回以前)
保存退出
三、映射ip与主机名
(1)执行命令vi /etc/hosts文件
增加一行文本192.168.56.100 theo(注意空格)
保存退出
执行命令ping theo是否有回包(无敌的验证,一定要保证配置的成功)
四、设置ssh免密码登录
(1)执行命令ssh-keygen -trsa,三次回车,在~/.ssh下面会产生两个文件,分别是id_rsa和id_rsa.pub
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys(注意空格)
执行命令ssh localhost查看是否需要输入密码
执行命令ssh theo查看是否需要输入密码

注意:执行ssh登陆成功后,要记得exit退出ssh。
五、配置hadoop

总共需要修改4个文件,"hadoop-env.sh","core-site.xml"、"hdfs-site.xml"和"mapred-site.xml"。

1.hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_45

2.core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

 3.hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

 4.mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>

修改之后,设置环境变量
#set Environment
export JAVA_HOME=/usr/java/jdk1.7.0_45
export HADOOP_INSTALL=/home/luffy/Development/hadoop-1.2.1
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_INSTALL/bin:$PATH

六、hadoop测试

1.hadoop namenode -format
2.start-all.sh
3.访问浏览器,地址是http://主机名:50070(查看node) http://主机名:50030(查看tracker)
如果在windows下用浏览器访问的话,在配置文件c:/windows/system32/drivers/etc/hosts增加一行记录 linux主机的IP 主机名

4.cd /home/luffy/Development/hadoop-1.2.1/
hadoop fs -put conf input
5.hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'
6.hadoop fs -cat output/*
7.stop-all.sh
执行命令jps,查看到新的java进程5个,分别是
NameNode、DataNode、SecondaryNameNode、JobTracker、TaskTracker

如果要重新格式化hadoop,一定要先删除/usr/local/hadoop/tmp文件夹。
 
postscrip: hadoop启动时NameNode不见,常见原因
(1)忘记格式化
(2)配置文件没有改成自己的主机名
(3)主机名与ip没有绑定
(4)绑定的ip错误,不是自己的真实ip

(5)防火墙忘记关闭

http://wiki.apache.org/hadoop/

http://kangfoo.u.qiniudn.com/article/2013/12/hadoop-eclipse-plugin-1.2.1/

http://note.youdao.com/share/?id=8551f8d1f7888d3b75f2413881349508&type=note

http://blog.csdn.net/chengfei112233/article/details/7252404  eclipse编译

导入hadoop-core-1.2.1.jar(含有org.apache.hadoop):

project -> Build Path -> Configure Build Path -> Libraries -> Add External Jar

含有org.apache.commons.cli的包在hadoop根目录下lib里,commons-cli-*.jar

运行时报错:java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

处理:导入commons-logging*.jar


原创粉丝点击