【从零开始】基于CentOS 7 搭建的步骤和部分遇见的问题解决

由于我之前都是机遇CentOS 6进行学习和搭建的各种大数据的东东,比如Hive,Hbase,sqoop等等,但是目前普遍的都是使用的CentOS 7 所以我利用闲暇时间重新搭建了一次,并记录了下来,供参考,后续会再更新的 。。。

  1. 基础信息配置

    配置主机名
    su root
    vi /etc/hostname
    配置网络
    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    
  2. firewalld关闭

    启动: systemctl start firewalld
    关闭: systemctl stop firewalld
    查看状态: systemctl status firewalld
    开机禁用 : systemctl disable firewalld
    开机启用 : systemctl enable firewalld
    
  3. 转到Mac终端上进行操作

    先检查sshd服务 -> systemctl status sshd
    开启terminal连接 -> ssh root@10.211.55.10
    
  4. 配置sudo

    visudo
    
    进入后,找到第91行和102行。
    
    - 在91行的 root ALL=(ALL) ALL下面填写          		---配置这个,就可以使用sudo了。       
      hadoop  ALL=(ALL) ALL
    - 在102行的 #%whell  ALL=(ALL)  NOPASSWD:ALL下面填写	--配置这个,就可以不用再输入密码了
      hadoop  ALL=(ALL) NOPASSWD:ALL
      
      
    -解析:   hadoop  ALL=(ALL) ALL
    	第一列:使用sudo的账号
    	第二列:客户端计算机主机名
    	第三列:可切换的身份
    	第四列:可使用的指令,注意使用具体指令时需要使用绝对路径,多个指令用逗号分开
    
  5. 克隆虚拟机

    1. 删除/etc/udev/rules.d/70-persistent-net.rules文件(这个文件确定了网卡与MAC地址的绑定),在重启主机。
    命令:rm /etc/udev/rules.d/70-persistent-net.rules
    如果是PD中使用克隆centos 7 不需要配置以上步骤,PD会自动更新MAC地址(PD版本为15)
    
    配置各主机名
    
    
  6. 免密登陆认证

    1. 生成相关的文件
    	ssh-keygen -t rsa
    	输入后,一路回车即可
    2. 将公钥复制到另外一台需要免密登陆的机器上的用户的隐藏目录.ssh里,同时更名
    	scp ~/.ssh/id_rsa.pub hadoop@10.211.55.1X:~/.ssh/authorized_keys
    3. 确保authorized_keys的权限至少是600
    4. 确保.ssh的权限至少700
    5. 追加 cat authorized_keys1 >> authorized_keys
    
  7. 主机名和IP地址的映射关系配置

    sudo vi /etc/hosts
    scp ./hosts Xxxxxxxx
    
  8. 安装Mysql & JDK

    终极环境变量
    export PATH=$PATH:$HOME/bin
    #jdk env
    export JAVA_HOME=/opt/apps/jdk
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
    #hadoop env
    export HADOOP_HOME=/opt/apps/hadoop
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    #hive env
    export HIVE_HOME=/opt/apps/hive
    export PATH=$HIVE_HOME/bin:$PATH
    #zookeeper env
    export ZOOKEEPER_HOME=/opt/apps/zookeeper
    export PATH=$ZOOKEEPER_HOME/bin:$PATH
    #hbase environment
    export HBASE_HOME=/opt/apps/hbase
    export PATH=$HBASE_HOME/bin:$PATH
    #Sqoop environment
    export SQOOP_HOME=/opt/apps/sqoop
    export PATH=$SQOOP_HOME/bin:$PATH
    #datax env
    export DATAX_HOME=/opt/apps/datax
    export PATH=$DATAX_HOME/bin:$PATH
    #flume env
    export FLUME_HOME=/opt/apps/flume
    export PATH=$FLUME_HOME/bin:$PATH
    #phoenix env
    export PHOENIX_HOME=/opt/apps/phoenix
    export PATH=$PHOENIX_HOME/bin:$PATH
    #kylin env
    export KYLIN_HOME=/opt/apps/kylin
    export PATH=$KYLIN_HOME/bin:$PATH
    #zeepling env
    export ZEPPELIN_HOME=/opt/apps/zeppelin
    export PATH=$ZEPPELIN_HOME/bin:$PATH
    #spark env
    export SPARK_HOME=/opt/apps/spark
    export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH
    #kafka env
    export KAFKA_HOME=/opt/apps/kafka
    export PATH=$KAFKA_HOME/bin:$PATH
    
    查找默认密码:
    cat /var/log/mysqld.log | grep password
    mysql -u root -pXXXXXXXx
    
    修改mysql时,提示密码过于简单:则设置如下
    set global validate_password_policy=0; 
    set global validate_password_mixed_case_count=0; 
    set global validate_password_number_count=3; 
    set global validate_password_special_char_count=0; 
    set global validate_password_length=3; 
    
    修改密码:
    alter user root@localhost identified by 'newPwd';
    set password for root@localhost=password('root');
    
  9. 时间同步设置

    1.master : 
    sudo systemctl start ntpd
    2.开机自启动:
    	chkconfig ntpd on
    3. 配置相应文件:vi /etc/ntp.conf
    	
    	# Hosts on local network are less restricted.
    	#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
    	restrict 192.168.81.0 mask 255.255.255.0 nomodify notrap
    	// 添加集群中的网络段位
    
    	# Use public servers from the pool.ntp.org project.
    	# Please consider joining the pool (http://www.pool.ntp.org/join.html).
    	#server 0.centos.pool.ntp.org iburst    注释掉
    	#server 1.centos.pool.ntp.org iburst	注释掉
    	#server 2.centos.pool.ntp.org iburst    注释掉
    	#server 3.centos.pool.ntp.org iburst    注释掉
    	server 127.127.1.0     -master作为服务器
     4. 其他机器要保证安装ntpdate.x86_64
     5. 其他机器要使用root定义定时器
     		crontab  [-u username] -e
         */1 * * * * /usr/sbin/ntpdate -u master 
    
  10. Hadoop完全分布式搭建

解压Hadoop.tar.gz

步骤1)先配置core-site.xml文件

[hadoop@master ~]$ cd $HADOOP_HOME/etc/hadoop/
[hadoop@master hadoop]$ vi core-site.mxl
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/apps/hadoop/tmp</value>
    </property>
</configuration>

步骤2)再配置hdfs-site.xml文件

[hadoop@master hadoop]$ vi core-site.mxl
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
    </property>
</configuration>

步骤3)然后配置mapred-site.xml文件

[hadoop@master hadoop]$ vi mapred-site.mxl
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

步骤4)配置yarn-site.xml文件

[hadoop@master hadoop]$ vi yarn-site.mxl
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property> 
</configuration>

步骤5)配置hadoop-env.sh脚本文件

[hadoop@master hadoop]$ vi hadoop-env.sh
.........
# The java implementation to use.
export JAVA_HOME=/opt/apps/jdk
.........

步骤6)配置slaves文件,此文件用于指定datanode守护进程所在的机器节点主机名

[hadoop@master hadoop]$ vi slaves
slave1
slave2
slave3

步骤7)配置yarn-env.sh文件,此文件可以不配置,不过,最好还是修改一下yarn的jdk环境比较好

[hadoop@master hadoop]$ vi yarn-env.sh
........省略........
# some Java parameters
export JAVA_HOME=/opt/apps/jdk
........省略........
WebUI的查看
1. http://192.168.81.200:50070
2. http://192.168.81.200:8088
  1. YARN

    YARN的配置

    ​ 1 yarn属于hadoop的一个组件,不需要再单独安装程序,hadoop中已经存在配置文件的设置

    ​ 2 yarn也是一个集群,有主节点和从节点。

    ​ 3 在mapred-site.xml中的配置如下

    <!--用于执行MapReduce作业的运行时框架-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    

    ​ 4 在yarn-site.xml中的配置如下

    <!--配置resourcemanager的主机-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    
    <!--NodeManager上运行的附属服务-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <!--配置resourcemanager的scheduler的内部通讯地址-->
    <property>
    	<name>yarn.resourcemanager.scheduler.address</name>
    	<value>master:8030</value>
    </property>
    
    <!--配置resoucemanager的资源调度的内部通讯地址-->
    <property>
    	<name>yarn.resourcemanager.resource-tracker.address</name>
    	<value>master:8031</value>
    </property>
    
    <!--配置resourcemanager的内部通讯地址-->
    <property>
    	<name>yarn.resourcemanager.address</name>
    	<value>master:8032</value>
    </property>
    
    <!--配置resourcemanager的管理员的内部通讯地址-->
    <property>
    	<name>yarn.resourcemanager.admin.address</name>
    	<value>master:8033</value>
    </property>
    
    <!--配置resourcemanager的web ui 的监控页面-->
    <property>
    	<name>yarn.resourcemanager.webapp.address</name>
    	<value>master:8088</value>
    </property>
    
  2. Zookeeper

    修改zoo.cfg文件

    [hadoop@master conf]$ vi zoo.cfg
    tickTime=2000			#  定义的时间单元(单位毫秒),下面的两个值都是tickTime的倍数。
    initLimit=10			#follower连接并同步leader的初始化连接时间。
    syncLimit=5				#心跳机制的时间(正常情况下的请求和应答的时间)
    dataDir=/opt/apps/zookeeper/zkData       #修改zookeeper的存储路径
    clientPort=2181							 #客户端连接服务器的port
     # 添加三个服务器节点
    server.1=master:2888:3888    			
    server.2=slave1:2888:3888
    server.3=slave2:2888:3888 
    
    格式:Server.id=ip:port1:port2
    id:		服务器的id号,对应zkData/myid文件内的数字
    ip: 	服务器的ip地址
    port1:	follower与leader交互的port
    port2:	选举期间使用的port
    

    ​ 在**$ZK_HOME/zkData/**目录下添加myid文件,内容为server的id号

    ]$ pwd
    /opt/apps/zookeeper/zkData
    ]$ echo 1 >> myid
    

    搭建其他server节点的环境

  3. HIVE

    <!--hive仓库在hdfs的位置-->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
        <description>location of default database for the warehouse</description>
    </property>
    
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://slave2:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=latin1</value>
    </property>
    
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>
    <property>
    	<name>hive.metastore.uris</name> 
    	<value>thrift://slave1:9083</value>
    </property>
    
  4. Hbase

    1) 配置hbase的环境变量

    [hadoop@master software]$ tar -zxvf hbase-1.2.1-bin.tar.gz -C /opt/apps/
    [hadoop@master software]$ cd /opt/apps/
    [hadoop@master apps]$ mv hbase-1.2.1 hbase
    [hadoop@master apps]$ vi ~/.bash_profile
    .......省略.......
    #hbase environment
    export HBASE_HOME=/opt/apps/hbase
    export PATH=$HBASE_HOME/bin:$PATH
    
    [hadoop@master apps]$ source  ~/.bash_profile
    [hadoop@master apps]$ hbase version
    

    **2)**配置ssh无密码登陆(一般情况下,都在搭建HDFS时,完成)

    **3)**配置时间同步(非常重要,也应该在搭建HDFS时,完成,时间差不能超过30s)

    **4)**确认hbase-env.sh禁用内置的zookeeper

    [hadoop@master apps]$ vi $HBASE_HOME/conf/hbase-env.sh
    
    #找到下面内容,解开注释,添加具体路径
    
    # The java implementation to use.  Java 1.7+ required.
    export JAVA_HOME=/opt/apps/jdk
    
    # Tell HBase whether it should manage it's own instance of Zookeeper or not.
    export HBASE_MANAGES_ZK=false       #禁止内置zookeeper
    

    **5)**修改hbase-site.xml

    [hadoop@master apps]$ vi $HBASE_HOME/conf/hbase-site.sh
    
    <configuration>
        <!-- 修改hbase的存储路径为HDFS内-->
        <property>
            <name>hbase.rootdir</name>
            <value>hdfs://supercluster/hbase</value>
        </property>
    
        <!-- 开启用hbase集群模式 -->
        <property>
            <name>hbase.cluster.distributed</name>
            <value>true</value>
        </property>
    
        <!--将属性hbase.unsafe.stream.capability.enforce 改为true -->
        <property>
            <name>hbase.unsafe.stream.capability.enforce</name>
            <value>true</value>
        </property>
        <!-- 指定hbase使用的zookeeper集群 -->
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>master:2181,slave1:2181,slave2:2181</value>
        </property>
        <property>
            <name>hbase.zookeeper.property.dataDir</name>
            <value>/opt/apps/zookeeper/zkData</value>
        </property>
    </configuration>
    

    **6)**配置regionserver所在的节点信息

    [hadoop@master apps]$  vi $HBASE_HOME/conf/regionservers
    
    删除localhost
    添加:
    	master
        slave1
        slave2
    

    7)配置备份hmaster: 创建backup-masters文件

    [hadoop@master apps]$  cd $HBASE_HOME/conf/
    [hadoop@master conf]$  echo "slave1">> backup-masters
    

    **8)**将hadoop的core-site.xml和hdfs-site.xml放入conf目录内

    [hadoop@master apps]$  cd $HADOOP_HOME/etc/hadoop/
    [hadoop@master hadoop]$  cp core-site.xml hdfs-site.xml $HBASE_HOME/conf/
    
  5. Swoop datax 等数仓工具

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值