一、开发环境搭建
参考文章《史上最详细的Hadoop环境搭建》
地址: https://blog.csdn.net/hliq5399/article/details/78193113
我目前采用的是单机伪集群模式。
二、查看hadoop环境变量
[hadoop@hcb hcb]$ echo $HADOOP_HOME
三、hdfs操作
1、查看hdfs目录
${HADOOP_HOME}/bin/hdfs dfs -ls /
bin/hdfs dfs -ls /wordcountdemo/output
简写
hdfs dfs -cat /demo1/output/part-r-00000
2、查看hdfs文件内容
bin/hdfs dfs -cat /wordcountdemo2/output/part-r-00000
3、上传文件到hdfs
${HADOOP_HOME}/bin/hdfs dfs -put ${HADOOP_HOME}/etc/hadoop/core-site.xml /demo1
4、创建hadoop目录命令
hdfs dfs -mkdir /demo1/test2
5、修改hadoop目录、文件权限
sudo bin/hadoop dfs -chmod -R 755 /
6、删除hadoop目录
hdfs dfs -rm -r /demo1/test1
7、创建hadoop文件
先在本机上创建一个文件,然后hdfs dfs -put input.txt /demo1
四、启动hadoop
1、可以采用如下两种方式
方式一、su hadoop
${HADOOP_HOME}/sbin/hadoop-daemon.sh start namenode
${HADOOP_HOME}/sbin/hadoop-daemon.sh start datanode
${HADOOP_HOME}/sbin/hadoop-daemon.sh start secondarynamenode
方式二、start-dfs.sh
启动过程中要输入几次密码。
2、验证启动是否成功
有两种方式
方式一、执行jps命令,查看进程
方式二、访问hdfs管理页面
http://192.168.175.128:50070
五、启动yarn
1、方式一、
${HADOOP_HOME}/sbin/yarn-daemon.sh start resourcemanager
${HADOOP_HOME}/sbin/yarn-daemon.sh start nodemanager
2、方式二、
start-yarn.sh
六、访问hadoop管理页面
1、http://192.168.175.128:50070 hdfs管理页面
2、http://192.168.175.128:8088/cluster 访问yarn管理页面
3、注意:要按照如下方式配置hosts文件,否则其他机器无法通过浏览器访问管理页面
[hadoop@hcb hcb]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.175.128 hcb.com
七、hadoop程序执行
列举如下几种执行方式
1、jar包方式运行
上传到hadoop所在服务器的任意路径,执行如下命令即可:
hadoop jar hello.jar
运行情况如下图所示:
2、yarn方式运行
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /wordcountdemo/input /wordcountdemo/output
3、IDE(如eclipse)中远程执行
首先,在工程的lib中添加如下几类jar包
3.1、 /opt/modules/hadoop-2.5.0/share/hadoop/common/lib的所有jar包;
3.2、/opt/modules/hadoop-2.5.0/share/hadoop/hdfs/lib的所有jar包;
3.3、hadoop-common-2.5.0.jar和hadoop-hdfs-2.5.0.jar
其次,代码如下:
package hdfs;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class TestReadFile {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.175.128:8020/");
FileSystem fs =FileSystem.get(conf);
Path path = new Path("/wordcountdemo2/output/part-r-00000");
FSDataInputStream fis = fs.open(path);
byte b[] = new byte[200];
int i = fis.read(b);
System.out.println(new String(b, 0, i));
}
}
IDE中运行上述代码即可。
八、常见问题汇总
1、运行程序报错,Permission denied: user=Administrator, access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x
解决办法:
在conf/hdfs-site.xml中加入以下配置:
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>