hadoop踩坑记2--伪分布式配置
第一次安装的时候,不太懂,直接下好装上就开始试着测试。
碰到了大概是这样的Unable to load native-hadoop library for your platform报错吧,查到了是因为直接下的是32位的,系统是64位的,64位的hadoop需要自己编译。
自己编译好64位的后还是报同样的错。
最后给hadoop-env.sh加上export HADOOPOPTS="-Djava.library.path=$HADOOPHOME/lib:$HADOOPHOME/lib/native",再配上JAVAHOME
解决了!
总结:
1、按《踩坑1》装好、环境变量配好以后,给hadoop-env.sh加上HADOOPOPTS和JAVAHOME。
2、修改core-site.xml,加上
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
修改hdfs-site.xml,加上
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:3389</value>
</property>
3、配置完成后,格式化namenode:hdfs namenode -format
4、启动:start-dfs.sh/停止:stop-dfs.sh
5、ok成功,如果有什么问题,可以把tmp删掉重新格式化试下
6、在hdfs中创建用户目录:hdfs dfs -mkdir -p /user/hadoop
7、在目录下创建input:hdfs dfs -mkdir input
8、把本地的文件拷贝到hdfs:hdfs dfs -put 本地文件 input,可以用hdfs dfs -ls input查看hdfs中的文件
9、ok啦,可以用hadoop的example来测试啦
10、hdfs dfs -get output ./output 从hdfs上把结果拷到本地。注意!hadoop运行时输出目录不能存在,再次运行之前,先删除:hdfs dfs -rm -r output
11、关闭hadoop:stop-dfs.sh,下次启动不用再格式化namenode的