////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
hadoop 自学系列
hadoop hive hbase 入门学习 (一) hadoop安装、hdfs学习及mapreduce学习
hadoop 软件下载 (hadoop-1.2.1.tar.gz) 点击下载
hadoop hive hbase 入门学习 (二) hbase 安装、hbase语句学习
hbase 软件下载 (hbase-0.94.26.tar.gz) 点击下载
hadoop hive hbase 入门学习 (三) hive安装、及hive语句学习
hive软件下载 (hive-0.9.0.tar.gz)点击下载
mysql 客户端软件下载 (MySQL-client-5.5.23-1.linux2.6.i386.rpm)点击下载
mysql 服务端软件下载 (MySQL-server-5.5.23-1.linux2.6.i386.rpm)点击下载
mysql connector软件下载 (mysql-connector-java-5.1.16-bin.jar)点击下载
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.hadoop的伪分布安装步骤
1.1 先安装VMWare/VirtualBox,打开镜像文件,使用root用户登录。
1.2 设置静态ip地址
在windows上设置的VMNet1的ip是192.168.80.1
在linux上设置的ip是192.168.80.100,掩码是255.255.255.0,网关是192.168.80.1
设置ip后,执行命令service network restart重启虚拟网卡设置
验证:ifconfig
1.3 设置主机名
(1)执行命令hostname hadoop0 该操作只对当前会话有效
(2)编辑文件vi /etc/sysconfig/network 修改为hadoop0
验证:重启linux,查看是否生效
reboot -h now(重启)
1.4 把ip和hostname绑定
编辑文件vi /etc/hosts 增加一行记录 192.168.80.100 hadoop0
验证:ping hadoop0
1.5 关闭防火墙
执行命令service iptables stop
验证:service iptables status
1.6 关闭防护墙的自动运行
执行命令chkconfig iptables off
验证:chkconfig --list | grep iptables
1.7 使用SSH(Secure Shell)进行免密码登陆
(1)执行命令ssh-keygen -t rsa 产生秘钥,秘钥文件位于~/.ssh
(2)执行命令 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys 把公钥放到文件authorized_keys.
(3)执行命令ssh-copy-id -i ~/.ssh/authorized_keys Master
验证:ssh hadoop0
1.8 安装oracle的jdk
(1)复制jdk到/usr/local目录,然后转到该目录 cd /usr/local
(2)执行命令 chmod u+x jdk-6u24-linux-i586.bin 赋予执行权限
(3)解压缩./jdk-6u24-linux-i586.bin
(4)重命名 mv jdk-1.6.0_24 jdk
(5)编辑文件vi /etc/profile 设置环境变量
export JAVA_HOME=/usr/local/jdk
export PATH=.:$JAVA_HOME/bin:$PATH
保持退出
(6)source /etc/profile
验证:java -version
1.9 安装hadoop
(1)复制jdk到/usr/local目录,然后转到该目录
(2)执行命令 tar -zxvf hadoop-1.1.2.tar.gz 进行解压缩
(3)重命名 mv hadoop-1.1.2 hadoop
(4)编辑文件 vi /etc/profile 设置环境变量
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
保持退出
(5)source /etc/profile
(6)修改4个配置文件
<1>修改hadoop-env.sh,内容如下
export JAVA_HOME=/usr/local/jdk/
<2>修改core-site.xml,内容如下
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
<description>change your own hostname</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
<3>修改hdfs-site.xml,内容如下
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
<4>修改mapred-site.xml,内容如下
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001</value>
<description>change your own hostname</description>
</property>
</configuration>
(7)格式化文件系统,执行命令hadoop namenode -format
(8)启动,执行命令start-all.sh
验证:<1>执行命令jps,可以看到5个新增的java进程,分别是NameNode、DataNode、SecondaryNameNode、JobTracker、TaskTracker
<2>通过浏览器,访问http://hadoop0:50070和http://hadoop0:50030
注意:格式化操作不能多次执行。删除文件夹/usr/local/hadoop/tmp之后再执行格式化。
注意:可以在windows下配置hosts文件,位于C:\Windows\System32\drivers\etc路径下的。
2.hadoop fs Shell操作(格式hadoop fs -XXXX)
2.1 查看列表
hadoop fs -ls hdfs://hadoop0:9000/ 查看hadoop0上的hdfs的根目录
hadoop fs -lsr hdfs://hadoop0:9000/ 递归查看hadoop0上的hdfs的根目录
hadoop fs -ls / 查看hadoop0上的hdfs的根目录
hadoop fs -ls 查看hadoop0上的hdfs的/user/<user>目录
2.2 hadoop fs -mkdir <path> 创建文件夹
2.3 hadoop fs -rmr <path> 删除文件夹
2.4 hadoop fs -put <linux src> <hdfs des> 上传文件
2.5 hadoop fs -get <hdfs src> <linux des> 下载文件
2.6 hadoop fs -rm <path> 删除文件
页面查看:
http://192.168.32.128:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/
3.RPC(remote procedure call)
3.1 指的是2个java进程之间的调用。进一步讲,是一个java进程(client)调用另一个java进程(server)的对象中的方法。
3.2 RPC是hadoop体系构建的基础,各个进程之间(如NameNode与DataNode之间、DataNode之间、JobTracker与TaskTracker之间)的通信是通过RPC实现的。
4.通过例子获得认识
4.1 RPC指的是2个java进程之间的调用
4.2 client调用server中的对象的方法,要求对象implements VersionedProtocol,要求对象具有接口,对象中的方法位于接口中。
4.3 client拿到的是接口。
public interface MyBizable extends VersionedProtocol{ public abstract String hello(String name); }
public class MyBiz implements MyBizable{ public static final String SERVER_ADDRESS = "localhost"; public static final int SERVER_PORT = 1234; public static long VERSION = 1112332323L; public MyBiz(){ try{ /** * 构造一个 RPC服务端. * @param instance 实例中的方法会被客户端调用 * @param bindAddress 绑定的地址用来监听连接的到来 * @param port 绑定的端口用来监听连接的到来 * @param conf the configuration to use */ final Server server = RPC.getServer(this, SERVER_ADDRESS, SERVER_PORT, new Configuration()); server.start(); }catch (Exception e) { e.printStackTrace(); } } /* (non-Javadoc) * @see rpc.MyBizable#hello(java.lang.String) */ @Override public String hello(String name){ System.out.println("我被调用了"); return "hello "+name; } @Override public long getProtocolVersion(String arg0, long arg1) throws IOException { return MyBiz.VERSION; } public static void main(String[] args) throws Exception{ final MyBiz myBiz = new MyBiz(); } }
public class MyClient { public static void main(String[] args) throws Exception { /** 构造一个实现了命名的协议的客户端的代理对象 ,可以和服务端的指定地址通信*/ MyBizable proxy = (MyBizable)RPC.waitForProxy(MyBizable.class, MyBiz.VERSION, new InetSocketAddress(MyBiz.SERVER_ADDRESS, MyBiz.SERVER_PORT), new Configuration() ); final String result = proxy.hello("world"); System.out.println(result); RPC.stopProxy(proxy); } }
5.分析用户代码如何与NameNode通信
5.1 以App2中的上传代码为例;
5.2 App2中通过调用fileSystem.create(...)获得的FsDataOutputStream对象,
来自于DistributedFileSystem的create(...),见P188.
public static final String PATH = "hdfs://192.168.60.128:9000/hello/hello";
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory()); final URL url = new URL(PATH); final InputStream in = url.openStream(); IOUtils.copyBytes(in, System.out, 1024, true);
createDir
if(!fileSystem.exists(new Path(DIR1))){ fileSystem.mkdirs(new Path(DIR1)); }
deleteDir
if(fileSystem.exists(new Path(DIR1))){ fileSystem.delete(new Path(DIR1), true); }
getData
final FSDataInputStream in = fileSystem.open(new Path(F1)); IOUtils.copyBytes(in, System.out, 1024, true);
putdata
final FSDataOutputStream out = fileSystem.create(new Path(F1)); final FileInputStream in = new FileInputStream("C:/Windows/System32/drivers/etc/hosts"); IOUtils.copyBytes(in, out, 1024, true);
liststatus
final FileSystem fileSystem = FileSystem.get(new URI(PATH), new Configuration());
final FileStatus[] listStatus = fileSystem.listStatus(new Path("/")); for (FileStatus fileStatus : listStatus) { String isDir = fileStatus.isDir()?"d":"-"; final String permission = fileStatus.getPermission().toString(); final short replication = fileStatus.getReplication(); final String owner = fileStatus.getOwner(); final String group = fileStatus.getGroup(); final long len = fileStatus.getLen(); final long modificationTime = fileStatus.getModificationTime(); final String path = fileStatus.getPath().toString(); System.out.println(isDir+permission+"\t"+replication+"\t"+owner+"\t"+group+"\t"+len+"\t"+modificationTime+"\t"+path); }
connection exception: java.net.ConnectException: Connection refused: no further information
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
**Hadoop** 是一个由Apache基金会开发的开源分布式系统基础架构。它通过提供一个高效、可靠且可扩展的平台来解决大数据存储与处理的需求。Hadoop的核心组件包括**HDFS**(Hadoop Distributed File System)和**...
小牛学堂-大数据24期-04-Hadoop Hive Hbase Flume Sqoop-12天适合初学者.txt
spark学习 hadoop hive hbase flink教程 linux 从入门到精通 一个开源、成体系的大数据学习教程。spark学习 hadoop hive hbase flink教程 linux 从入门到精通 一个开源、成体系的大数据学习教程。spark学习 hadoop ...
在构建大数据处理环境时,Hadoop、HBase、Spark和Hive是四个核心组件,它们协同工作以实现高效的数据存储、处理和分析。本教程将详细介绍如何在Ubuntu系统上搭建这些组件的集群。 1. **Hadoop**:Hadoop是Apache...
在本文档中,我们将详细介绍如何搭建一个大数据集群环境,包括 Hadoop、HBase、Hive 和 Sqoop 的安装配置及使用。该文档将分为四部分:Hadoop 集群环境搭建、HBase 集群环境搭建、Hive 集群环境搭建和 Sqoop 集成...
### Hadoop、Hive、HBase 的安装配置详解 #### 一、Hadoop 安装配置 ##### 1. 创建用户与安装 JDK 在安装 Hadoop 前,首先需要创建一个专用的用户账户用于运行 Hadoop 相关服务,并确保 Java 环境已经正确安装。 ...
Hadoop+Hbase+Spark+Hive搭建指南 Hadoop是Apache开源的大数据处理框架,它提供了可靠的高效的数据存储和处理能力。Hbase是基于Hadoop的分布式NoSQL数据库,提供了高效的数据存储和检索能力。Spark是基于内存的数据...
Hive是一个数据仓库基础构架,建立在Hadoop之上,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。ZooKeeper是一个开源的分布式协调服务,它为分布式应用提供一致性服务。 为了整合这些组件,首先...
【标题】:“hadoop,hive,hbase学习资料”是一份综合性的学习资源,涵盖了大数据处理领域中的三个核心组件——Hadoop、Hive和Hbase。这些工具在大数据处理和分析中发挥着至关重要的作用。 【描述】:描述指出这份...
在大数据处理领域,Hadoop、HBase和Hive是三个非常关键的组件,它们共同构建了一个高效、可扩展的数据处理框架。本文件“hadoop,hbase,hive版本兼容性说明.zip”显然提供了关于这三个组件之间如何协同工作的详细信息...
对于Hadoop、HBase和Hive的版本对应关系问题,新手朋友们在入门时除了参考这些官方的文档以外,还可以通过查找社区论坛、博客文章等了解他人在升级过程中遇到的问题和解决方案,这将大大降低尝试和错误成本,快速...
该文档保护了目前比较流行的大数据平台的原理过程梳理。Hadoop,Hive,Hbase,Spark,MapReduce,Storm
jdk1.8.0_131、apache-zookeeper-3.8.0、hadoop-3.3.2、hbase-2.4.12 mysql5.7.38、mysql jdbc驱动mysql-connector-java-8.0.8-dmr-bin.jar、 apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 ...
构建Hadoop+HBase+Hive集群是一项复杂而细致的工作,涉及到时间同步、网络配置、用户管理、软件安装与配置等多个方面。每一环节都需精心设计和实施,才能确保集群的高效、稳定运行。上述步骤涵盖了从基础设施搭建到...
在大数据处理领域,Hadoop、HBase和Hive是三个重要的组件,它们分别扮演着不同的角色,共同构建了一个高效、可扩展的数据处理生态系统。本文将详细介绍这三个组件的整合工程和相关文档,帮助读者理解如何在实际项目...
首先,Hadoop作为基础平台,其版本选择会直接影响到HBase和Hive的运行。Hadoop的主要组件包括HDFS(分布式文件系统)和MapReduce(分布式计算框架)。不同版本的Hadoop可能会对HDFS的API或MapReduce的执行模型进行...
在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...
清华大学精品大数据实战课程(Hadoop、Hbase、Hive、Spark)PPT课件含习题 第2章 Hadoop基础(32页).pptx 清华大学精品大数据实战课程(Hadoop、Hbase、Hive、Spark)PPT课件含习题 第3章 Hadoop数据库HBase(59页...
自己整理的Hadoop环境的一些安装,和一些简单的使用,其中包括Hadoop、hbase、hive、mysql、zookeeper、Kafka、flume。都是一些简单的安装步骤和使用,只在自己的虚拟机(Linux centOS7)上使用测试过。按照步骤一步...