由于我之前都是机遇CentOS 6进行学习和搭建的各种大数据的东东,比如Hive,Hbase,sqoop等等,但是目前普遍的都是使用的CentOS 7 所以我利用闲暇时间重新搭建了一次,并记录了下来,供参考,后续会再更新的 。。。
-
基础信息配置
配置主机名 su root vi /etc/hostname 配置网络 vi /etc/sysconfig/network-scripts/ifcfg-eth0
-
firewalld关闭
启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld
-
转到Mac终端上进行操作
先检查sshd服务 -> systemctl status sshd 开启terminal连接 -> ssh root@10.211.55.10
-
配置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的账号 第二列:客户端计算机主机名 第三列:可切换的身份 第四列:可使用的指令,注意使用具体指令时需要使用绝对路径,多个指令用逗号分开
-
克隆虚拟机
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) 配置各主机名
-
免密登陆认证
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
-
主机名和IP地址的映射关系配置
sudo vi /etc/hosts scp ./hosts Xxxxxxxx
-
安装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');
-
时间同步设置
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
-
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
-
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>
-
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节点的环境
-
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&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>
-
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/
-
Swoop datax 等数仓工具