大数据开发之Hadoop工程师学习笔记(一)

第一课:实施Hadoop集群;CDH家族
1.Hadoop
大数据:目前软件和硬件无法处理的数据称为大数据。
Hadoop擅长离线数据分析,有时间差,难以做实时数据处理。文件系统是半只读数据,不能修该,只能追加,随机读写很麻烦。
Hadoop不是数据库,Hbase才是数据库。
两大板块:分布式文件系统+计算框架yarm(并行计算)

2.Namenode
HDFS的守护程序。
记录文件是如何分割成数据块的,以及这些数据数据块被存储到哪些节点上。
堆内存和I/O进行集中处理。
是单个节点,发生故障将使集群崩溃。

3.Secondary Namenode (冗余Namenode节点)
监控HDFS状态的辅助后台程序。
每个集群都有一个。
与NameNode进行通讯,定期保存HDFS元数据快照。
当NameNode故障可以作为备用NameNode使用。

4.DataNode
每台服务器都运行一个。
负责把HDFS数据块读到本地文件系统。

5.JobTracker (作业跟踪器)
用于处理作业(用户提交代码)的后台程序。
决定有哪些文件参与处理,然后切割task并分配节点。
监控task,重启失败的task(于不同的节点)。
每个集群只有唯一一个JobTracker,位于Master节点。

6.TaskTracker(任务跟踪器)
位于slave节点上,与datanode结合(代码与数据一起的原则)。
管理各自节点上的task(由jobtracker分配)。
每个节点只有一个tasktracker,但一个tasktracker可以启动多个JVM,用于并行执行map或reduce任务。
与jobtracker交互。

7.ssh免密码登陆
ssh-keygen -t rsa :创建rsa算法的公钥和私钥
ls -a :查看隐藏文件
cd .ssh :存放公钥和私钥的目录
id_rsa :私钥(权限600)
id_rsa.pub :公钥(权限644)
scp ./id_rsa.pub 用户名@192.168.x.xx:/home/用户名/.ssh/authorized_keys :用scp将公钥传送到远程连接的节点上
【注意:本机到本机的ssh也需要配置免密码,将id_rsa.pub内容拷贝到authorized_keys中即可】

8.Hadoop安装
conf:存放所有的配置文件的文件夹。
hadoop目录下创建三个文件夹,data放数据块(Slave用),name放源数据(namenode用),tmp存临时文件(很重要)。
·需修改的文件:
1.hadoop-env.sh:系统环境文件。
在里面添加java的环境变量JAVA_HOME
[export JAVA_HOME=........]
2.core-site.xml
在configuration中间加参数
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://backup01:9000</value>

<property>
<name>hadoop.tmp.dir</name>【指定临时路径】
<value>/home/用户名/hadoop文件名/tmp</value>
</property>
</configuration>

ps:backup01是主机名,需要在host文件里面将主机名映射为IP地址。

3.hdfs-site.xml
在configuration中间加参数
<configuration>
<property>
<name>dfs.replication</name>【hdfs的复制因子】
<value>2</value>【复制几份,1为不复制,有多少个slave节点复制多少分】
</property>
</configuration>

4.mapred-site.xml
在configuration中间加参数
<configuration>
<property>
<name>mapred.job.tracker</name>【指定job.tracker地址和监听端口】
<value>backup01:9001</value>【backup01主机名,host中映射IP地址,9001端口号】
</property>
</configuration>

5.masters 此文件是修改充当master的主机名
backup01

6.slaves 此文件是修改充当slave的主机名
backup02

7./etc/hosts 映射主机名和IP地址
192.168.0.2 backup01
192.168.0.4 backup02

·因为hadoop安装masters机和slaves机的配置是一样的,所以只需要scp复制过去就行。
scp -r 文件地址 root@目的IP:/root/home
修改slave机的host文件

·格式化名称节点
bin/hadoop namenode -format (此命令在hadoop的目录下,运行完后出现has been successful formatted即成功格式化)

·启动hadoop
启动前检查进程:..jdk路径/bin/jps
【记得关闭防火墙】
如有进程需kill: kill -9 进程号
启动hadoop整个进程:bin/start-all.sh
master机上有JobTracker和NameNode进程,slave机上有TaskTracker和DataNode进程。

9.Hadoop相关部署
·以下命令在centOs中执行。
1.yum install svn
2.yum install antoconfautomake libtool cmake
3.yum install ncurses-devel
4.yum install openssl-devel
5.yum install gcc*
·安装maven(注意适配hadoop的版本)
1.下载maven包
2.解压移动到一个公众文件夹(例如./maven/usr/local)
3.将maven路径加入到path中。

·安装protobuf:google用于数据交换的软件,如果不装可能在安装hadoop中有命令无法识别。
2.tar xzvf ./protobuf-2.5.0.tar.gz
3.cd protobuf-2.5.0 全是源代码,需要进行编译
4../configure 根据机器目前的情况进行检测,产生一个编译文件makefile
5.make
6.make check
7.make install
8.编译完后,在/usr/local/bin中出现文件protoc,编译时需要用到。此路径需要加入到path中。

·hadoop安装
2.编译 mvn package -Pdist,native -DskipTests -Dtar
mvn:maven; dist:放到distination的目录中,在pom.xml中指定; native: 编译本地库; skipTests: 跳过一些中间细节; tar: 生成一个tar包。(编译过程大概一个小时)
3.生成了hadoop-2.3.0文件夹。

·hadoop测试
1.在根目录下建立子目录input,在input中添加两个文本测试文件,
echo "hello world" > test1.txt
echo "hello hadoop" > test2.txt
2.将input下的文件拷贝到hadoop中。
【注】:hadoop没有当前目录,只可使用全目录。
cd hadoop-1.1.2
bin/hadoop fs -ls 查看hadoop目录下的文件。
bin/hadoop fs -put ../input ./in 将input中的内容put到hadoop目录的in目录下。
bin/hadoop fs -ls ./in/* 查看in目录下的所有文件。
bin/hadoop jar hadoop-examples-1.1.2.jar wordcount in out
[bin/hadoop 路径]
[jar 标识运行jar包内的东西]
[hadoop-examples-1.1.2.jar jar包的名称]
[wordcouint jar包内需要使用的函数的名称]
[in 源文件存放地址]
[out 输出文件存放地址]
bin/hadoop fs -ls ./out 打开out输出文件夹。
bin/hadoop fs -cat ./out/part-r-00000 查看输出的结果。
如果结果和预测是一样的,表示hadoop的作业系统可以正常工作。
3.通过web了解Hadoop的活动
http访问jobtracker所在的节点50030端口监控jobtracker。
http访问namenode所在节点的50070端口监控集群。

·Hadoop版本的演进
Append:支持文件追加功能,如果想使用HBase,需要这个特性。
RAID:在保证数据可靠的前提下,通过引入校检码减少数据块的数目。
Symlink:支持HDFS文件链接。
Security:Hadoop安全性。
NameNode HA:
HDFS Federation:
YARN:

2010年
第一版:0.20.2 经典版本,稳定可用于生产环境。
0.21.0 测试版本,不包含安全性,不可用于生产。
2011年
0.20.203 包含security,但不包含append,RAID或者NameNode HA,稳定可用于生产,yahoo曾使用过。
0.20.205 对上个版本的改进,在security的基础上增加了append,有稳定版可使用。
0.22.0 仅考虑文件的安全性,没有考虑文件系统的安全性。不可用于生产。
0.23.0 上一个版本的改进。不可用于生产。
2012年
1.0.1~1.0.4 是0.20.205的改名,主要实现了bug修复和性能改进。稳定可使用。
2.00-alpha~2.0.2-alpha 是0.23.0版本的改名,特性和23差不多,是alpha版本,暂无稳定版,不支持企业使用。

版本下载链接:http://svn.apache.org/repos/asf/hadoop/common/branches/,可直接导入到eclipse中。



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值