hadoop--01(hadoop集群搭建)

1.什么是HADOOP?

     HADOOP是apache旗下的一套开源软件平台,HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理

  1. HADOOP的核心组件有
    1. HDFS(分布式文件系统)
    2. YARN(运算资源调度系统)
    3. MAPREDUCE(分布式运算编程框架)
  2. 广义上来说,HADOOP通常是指一个更广泛的概念——HADOOP生态圈

2.HADOOP在大数据、云计算中的位置和关系

     云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物。借助IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等业务模式,把强大的计算能力提供给终端用户。现阶段,云计算的两大底层支撑技术为“虚拟化”和“大数据技术”。而HADOOP则是云计算的PaaS层的解决方案之一,并不等同于PaaS,更不等同于云计算本身。

3.重点组建

HDFS:分布式文件系统

MAPREDUCE:分布式运算程序开发框架

HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具

HBASE:基于HADOOP的分布式海量数据库

ZOOKEEPER:分布式协调服务基础组件

Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库

Oozie:工作流调度框架

Sqoop:数据导入导出工具

Flume:日志数据采集框架

4.hadoop集群搭建

    三台虚拟机:系统centos6.5 hadoop2.6.4  jdk1.7

   1.准备Linux环境

      1.0先将虚拟机的网络模式选为NAT

      1.1修改主机名:vi /etc/sysconfig/network

         

     1.2修改IP:vim /etc/sysconfig/network-scripts/ifcfg-eth0   不修改也行

     1.3修改主机名和IP的映射关系:vim /etc/hosts

192.168.25.139   hadoop1
192.168.25.140   hadoop2
192.168.25.141   hadoop3

       1.4关闭防火墙

#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off

1.5 添加普通用户hadoop

     useradd hadoop

      #为storm用户添加密码:

       echo 123456| passwd --stdin hadoop

     #将hadoop添加到sudoers,这是重新创建一个用户组,他有着自己的home/ hadoop目录

     echo "hadoop ALL = (root) NOPASSWD:ALL" | tee /etc/sudoers.d/ hadoop

     chmod 0440 /etc/sudoers.d/ hadoop

     #修改配置文件sudo vim /etc/sudoers

      root ALL=(ALL) ALL

      hadoop ALL=(ALL) ALL

     给hadoop用户添加执行的权限然后强制保存
 

  2.安装jdk,

JAVA_HOME=/usr/local/jdk1.7.0_71
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

这些处理好了开始安装hadoop

   1.上传编译好的hadoop压缩包,并且解压

      tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz  -C apps/

     

    配置配置文件hadoop-env.sh    主要配置环境变量 

     export JAVA_HOME=/usr/local/jdk1.7.0_71

     

    配置配置文件 core-site.xml  主要指定hadoop的文件系统用哪个(fdfs),指定namenode是谁,端口是多少,配置集群里面每个进程工作的数据目录

<configuration>
		<property>
			<name>fs.defaultFS</name>
			<value>hdfs://hadoop1:9000</value>
		</property>

		<property>
			<name>hadoop.tmp.dir</name>
			<value>/home/hadoop/hdpdata</value>
    </property>
</configuration>

    

  配置hdfs-site.xml  配置hdfs的副本的数量

<configuration>
        <property>
			<name>dfs.replication</name>
			<value>2</value>
		</property>
         <property>
             <name>dfs.namenode.name.dir</name>
             <value>/home/hadoop/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>/home/hadoop/hdfs/data</value>
        </property>
</configuration>

               

配置mapred-site.xml.template 并改名字为mapred-site.xml

<configuration>
		<property>
			<name>mapreduce.framework.name</name>
			<value>yarn</value>
		</property>
</configuration>

    

配置yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

		<property>
			<name>yarn.resourcemanager.hostname</name>
			<value>hadoop1</value>
		</property>
	
		<property>
			<name>yarn.nodemanager.aux-services</name>
			<value>mapreduce_shuffle</value>
		</property>

</configuration>

    

  2.配置hadoop环境变量:

export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native  
export HADOOP_OPTS=-Djava.library.path=$HADOOP_PREFIX/lib

  3.分发apps文件夹到其他机器,配置环境变量

  4.格式化namenode(是对namenode进行初始化):hdfs namenode -format             (hadoop namenode -format)

              

5.    启动hadoop
       先启动HDFS
       sbin/start-dfs.sh

       查看datanode的启动情况:

        

       这里注意多次格式化namenode后可能出现datanode起不来的情况,把配置文件中dfs.datanode.data.dir在本地系统的路径下的current/VERSION中的clusterID改为与namenode一样。重启即可!这里就把dfs文件删掉就好了.(问题解决是hdfs配置文件的问题)

      再启动YARN
      sbin/start-yarn.sh

     查看yarn的启动情况:

    


        http://192.168.25.130:50070 (HDFS管理界面)

  只启动一个namenode或者datanode

  hadoop-daemon.sh start namenode     hadoop-daemon.sh start datanode

  配置slaves:

 

  配置免密登陆
  ssh-keygen -t rsa(回车)

  ssh-copy-id localhost

  cd .ssh

  cp id_rsa.pub authorized_keys

  chmod 600 authorized_keys

  测试本地免密登陆:ok 没有问题
   

  将密钥发送到hadoop2,hadoop3    ssh-copy-id hadoop2   ssh-copy-id hadoop3

   测试登陆hadoop2:    ok没问题
  

  停止hdfs:sbin/stop-dfs.sh

  上传一个文件:

   首先查根目录下有什么文件:hadoop fs -ls /

  

 什么也没有,现在上传一个文件:hadoop fs -put canglaoshi.avi /

 有了:

 命令查看也有了:

我们配置的备份数据是两份,这两份会存到哪个机器呢?首先就近就会存放一份这这台机器上,还有一个副本就放其他机器上

  根据所配置的配置文件来找到副本的数量,

 上传的小文件可以找到他所有的副本的数量,未满128M没有分片

                          

     上传大文件:被分成了两片,分别存于不同的机器上
                                  

    安装包传上去被切成了几块,就没法解压了,但是把他拼起来就有办法解压:

       

可以从fdfs上下载下来:hadoop fs -get /canglaoshi.avi

  

   

    

 

 

猜你喜欢

转载自blog.csdn.net/weixin_37650458/article/details/84501182