首页 > 其他 > 详细

hadoop hive hbase 入门学习

时间:2015-02-16 02:08:28      阅读:446      评论:0      收藏:0      [点我收藏+]

1.hadoop的伪分布安装步骤
1.1 先安装VMWare/VirtualBox,打开镜像文件,使用root用户(密码是hadoop)登录。
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:50070http://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> 删除文件

?
bubuko.com,布布扣
?

?

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拿到的是接口。

?

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);


bubuko.com,布布扣

?

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);
 }

?
bubuko.com,布布扣
?

?


?

?

?

?

?

-----未完 待续------------------------------------------------------------------------------------------

?

hadoop hive hbase 入门学习

原文:http://knight-black-bob.iteye.com/blog/2186044

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!