BigData On OBS 环境搭建和配置指南
Huawei Technologies Co., Ltd.
华为技术有限公司All rights reserved
版权所有 侵权必究
1 配置样例的部署视图1、 Hadoop/Spark 对接 OBS 部署视图
2、 HBase 对接 OBS 部署视图
2 Hadoop分布式集群配置1、 在华为云上申请 4 台 ECS 服务器,分别命名为 ecs-bigdata-obs、ecs-bigdata-obs1、ecs-
bigdata-obs2 、 ecs-bigdata-obs3 , 其 hostname 分 别 为 ecs-bigdata-obs.novalocal 、 ecs-bigdata-obs1.novalocal、ecs-bigdata-obs2.novalocal、ecs-bigdata-obs3.novalocal。
2、 配置这 4 台服务器的互信模式
(1) 每台服务器在/etc/hosts 里面加入这 4 台服务器的 ip 和 hostname
(2) 每台服务器关闭防火墙命令:systemctl stop firewalld
systemctl disable firewalld
(3) 每台服务器添加文件/root/sshUtil.sh
(4) 每台服务器运行 sh sshUtil.sh,输入服务器密码,建立互信
3、 在每台服务器上安装 java 和 openjdk-devel命令:yum -y install java
#!/bin/bashssh-keygen -q -t rsa -N “” -f /root/.ssh/id_rsassh-copy-id -i localhostssh-copy-id -i ecs-bigdata-obs.novalocalssh-copy-id -i ecs-bigdata-obs1.novalocalssh-copy-id -i ecs-bigdata-obs2.novalocalssh-copy-id -i ecs-bigdata-obs3.novalocal
命令:yum -y install java-1.8.0-openjdk-devel.x86_64
4、 在/home 下面创建文件夹 modules,下载 hadoop-2.8.3.tar.gz 后进行解压缩命令:tar -zxvf hadoop-2.8.3.tar.gz
5、 在/etc/profile 中配置环境变量
6、 输入 source /etc/profile,使环境变量生效
7、 创建目录/home/modules/data/buf,用于配置 OBS 缓存目录8、 在 /home/modules/hadoop-2.8.3/etc/hadoop 目 录 中 配 置 core-site.xml , 可 采 用 样 例
(“spark&hive 配置文件”目录中)的 core-site.xml。 注:fs.defaultFS 、fs.obs.access.key、fs.obs.secret.key、fs.obs.endpoint 进行修改。
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jreexport HADOOP_HOME=/home/modules/hadoop-2.8.3export PATH=$JAVA_HOME/bin:$PATHexport PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexport HADOOP_CLASSPATH=/home/modules/hadoop-2.8.3/share/hadoop/tools/lib/*:$HADOOP_CLASSPATH
<configuration> <property> <name>fs.obs.readahead.inputstream.enabled</name> <value>true</value> </property> <property> <name>fs.obs.buffer.max.range</name> <value>6291456</value> </property> <property> <name>fs.obs.buffer.part.size</name> <value>2097152</value> </property> <property> <name>fs.obs.threads.read.core</name> <value>500</value> </property> <property> <name>fs.obs.threads.read.max</name> <value>1000</value> </property> <property> <name>fs.obs.write.buffer.size</name> <value>8192</value> </property> <property> <name>fs.obs.read.buffer.size</name> <value>8192</value> </property> <property> <name>fs.obs.connection.maximum</name> <value>1000</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://ecs-bigdata-obs.novalocal:8020</value> </property> <property> <name>hadoop.tmp.dir</name>
9、 在/home/modules/hadoop-2.8.3/etc/hadoop 目录中配置 hdfs-site.xml
10、 在/home/modules/hadoop-2.8.3/etc/hadoop 目录中配置 yarn-site.xml
11
、 11、 在/home/modules/hadoop-2.8.3/etc/hadoop 目录中配置 mapred-site.xml
<configuration> <property> <name>fs.obs.readahead.inputstream.enabled</name> <value>true</value> </property> <property> <name>fs.obs.buffer.max.range</name> <value>6291456</value> </property> <property> <name>fs.obs.buffer.part.size</name> <value>2097152</value> </property> <property> <name>fs.obs.threads.read.core</name> <value>500</value> </property> <property> <name>fs.obs.threads.read.max</name> <value>1000</value> </property> <property> <name>fs.obs.write.buffer.size</name> <value>8192</value> </property> <property> <name>fs.obs.read.buffer.size</name> <value>8192</value> </property> <property> <name>fs.obs.connection.maximum</name> <value>1000</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://ecs-bigdata-obs.novalocal:8020</value> </property> <property> <name>hadoop.tmp.dir</name>
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>ecs-bigdata-obs.novalocal:50090</value> </property> <property> <name>dfs.namenode.secondary.https-address</name> <value>ecs-bigdata-obs.novalocal:50091</value> </property></configuration>
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>ecs-bigdata-obs.novalocal</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>106800</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> <description>Whether virtual memory limits will be enforced for containers</description> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>4</value> <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description> </property> <property> <name>yarn.resourcemanager.scheduler.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value> </property></configuration>
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>ecs-bigdata-obs.novalocal:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>ecs-bigdata-obs.novalocal:19888</value> </property> <property> <name>mapred.task.timeout</name> <value>1800000</value> </property></configuration>
12、 在/home/modules/hadoop-2.8.3/etc/hadoop 目录中配置 slaves
13、 将 /home/modules/hadoop-2.8.3/share/hadoop/tools/lib 中 的 jar 包 拷 贝 到 /home/modules/hadoop-2.8.3/share/hadoop/common/lib 中
14、 将华为 SDK 和 hadoop 相关的 jar 包拷贝到各个目录进行替换(/home/modules/hadoop-2.8.3/share/hadoop/common/lib;/home/modules/hadoop-2.8.3/share/hadoop/tools/lib;/home/modules/hadoop-2.8.3/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib;/home/modules/hadoop-2.8.3/share/hadoop/hdfs/lib)
1) 删除 hadoop-2.8.3 所有目录中(find 查找)的 hadoop-aws-2.8.3.jar,并将 hadoop-huaweicloud-2.8.3.jar 和 esdk-obs-java-3.0.0.jar 拷贝到这些目录中进行替换
2) 删除 hadoop-2.8.3 所有目录中原有的 java-xmlbuilder-0.4.jar,okhttp-2.4.0.jar 和okio-1.4.0.jar,将 java-xmlbuilder-1.1.jar、okhttp-3.10.0.jar 和 okio-1.14.0.jar 拷贝到这些目录中进行替换
15、 在所有节点初始化 NameNode命令:hdfs namenode -format
16、 在 ecs-bigdata-obs 上启动 dfs 和 yarn,启动后,查看各服务器启动的进程
ecs-bigdata-obs1.novalocalecs-bigdata-obs2.novalocalecs-bigdata-obs3.novalocal
(1) dfs 启动,start-dfs.sh
(2) yarn 启动,start-yarn.sh
(3) 使用命令 jps 查看各服务器进程
3 Spark分布式集群配置1、 在/home/modules 下,下载 spark-2.3.0-bin-hadoop2.7.tgz 后,进行解压缩,并修改文件
夹名字为 spark-2.3.0
2、 在/etc/profile 中增加 spark 的环境变量export SPARK_HOME=/home/modules/spark-2.3.0export PATH=${SPARK_HOME}/bin:${SPARK_HOME}/sbin:$PATH
3、 输入 source /etc/profile,使环境变量生效
4、 将/home/modules/spark-2.3.0/jars 中的 hadoop 相关的 2.7.3 版本的 jar 包替换成 2.8.3 版本的 jar 包
5、 将华为 SDK 和 hadoop 相关的 jar 包拷贝到各个目录进行替换 (/home/modules/spark-2.3.0/jars/)
1) 删除 spark-2.3.0 所有目录中(find 查找)的 hadoop-aws-2.8.3.jar,并将 hadoop-huaweicloud-2.8.3.jar 和 esdk-obs-java-3.0.0.jar 拷贝到这些目录中进行替换
2) 删除 spark-2.3.0 所有目录中原有的 java-xmlbuilder-0.4.jar,okhttp-2.4.0.jar 和 okio-1.4.0.jar,将 java-xmlbuilder-1.1.jar、okhttp-3.10.0.jar 和 okio-1.14.0.jar 拷贝到这些
目录中进行替换
6、 配置 spark-env.sh
7、 启动 Spark,即可使用。
4 Hive配置1、 安装 mariadb-server
命令:yum -y install mariadb-server
2、 安装 mysql-connector-java命令:yum -y install mysql-connector-java
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jreexport SCALA_HOME=/home/modules/spark-2.3.0/examples/src/main/scalaexport HADOOP_HOME=/home/modules/hadoop-2.8.3export HADOOP_CONF_DIR=/home/modules/hadoop-2.8.3/etc/hadoopexport SPARK_HOME=/home/modules/spark-2.3.0export SPARK_DIST_CLASSPATH=$(/home/modules/hadoop-2.8.3/bin/hadoop classpath)
3、 在/home/modules 下,下载 apache-hive-2.3.3-bin.tar.gz 后,进行解压缩,并修改文件夹名字为 hive-2.3.3命令:tar -zxvf apache-hive-2.3.3-bin.tar.gz
4、 /etc/profile 中新增 hive 相关环境变量export HIVE_HOME=/home/modules/hive-2.3.3export PATH=${HIVE_HOME}/bin:$PATH
5、 输入 source /etc/profile,使环境变量生效
6、 将 mysql-connect-java.jar 拷贝到 hive 相关目录下
7、 配置 hive-site.xml 文件
8、 在 hive-env.sh 配置文件中增加 HADOOP_HOME 路径
8、 将华为 SDK 和 hadoop 相关的 jar 包拷贝到各个目录进行替换(/home/modules/hive-2.3.3/lib)
1) 删除 hive-2.3.3 所有目录中(find 查找)的 hadoop-aws-2.8.3.jar,并将 hadoop-huaweicloud-2.8.3.jar 和 esdk-obs-java-3.0.0.jar 拷贝到这些目录中进行替换
2) 删除 hive-2.3.3 所有目录中原有的 java-xmlbuilder-0.4.jar,okhttp-2.4.0.jar 和 okio-1.4.0.jar,将 java-xmlbuilder-1.1.jar、okhttp-3.10.0.jar 和 okio-1.14.0.jar 拷贝到这些目录中进行替换
HADOOP_HOME=/home/modules/hadoop-2.8.3
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://ecs-bigdata-obs.novalocal:3306/hive_metadata?createDatabaseIfNotExist=true</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>Huawei1234%^</value> </property> <property> <name>hive.strict.checks.cartesian.product</name> <value>false</value> </property></configuration>
9、 修改 mysql 的连接密码,密码修改为 hive-site.xml 中的配置(1) 启动数据库命令:systemctl start mariadb.service systemctl enable mariadb.service
(2) 登录数据库并设置密码(注:未设置密码前,可直接回车进入数据库)
(3) 重启数据库使之生效命令:systemctl stop mariadb.service
systemctl disable mariadb.servicesystemctl start mariadb.servicesystemctl enable mariadb.service
10、 初始化数据库命令:schematool -initSchema -dbType mysql
11、 启动 hive,即可使用
5 HBase配置1、 在/home/modules 下,下载 hbase-2.1.0.zip 后,进行解压缩,并修改文件夹名字为
hbase-2.1.0,所有节点的配置操作相同2、 在/etc/profile 中增加 hbase 的环境变量
3、 输入 source /etc/profile,使环境变量生效
4、 配置 hbase-env.sh
5、 配置 hbase-site.xml
export HBASE_HOME=/home/modules/hbase-2.1.0export PATH=${HBASE_HOME}/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre
<configuration> <property> <name>hbase.rootdir</name> <value>obs://obs-hbase001/hbasetest007</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/modules/hbase-2.1.0/data/zookeeper</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>ecs-bigdata-obs1.novalocal,ecs-bigdata-obs2.novalocal,ecs-bigdata-obs3.novalocal</value>
6、 配置 regionserver
7、 将样例(“hbase 配置文件”目录中)的 core-site.xml 拷贝到/hbase-2.1.0/conf 目录下。注:fs.defaultFS 、fs.obs.access.key、fs.obs.secret.key、fs.obs.endpoint 进行修改。
8、 将/hbase-2.1.0/conf 目录下 core-site.xml 拷贝到/home/modules/hadoop-2.8.3/etc/hadoop目录中,并重启 HDFS。
9、 将华为 SDK 和 hadoop 相关的 jar 包拷贝到各个目录进行替换(/home/modules/hbase-2.1.0/lib)
1) 删除 hbase-2.1.0 所有目录中(Find 查找)的 hadoop-aws-2.8.3.jar,并将 hadoop-huaweicloud-2.8.3.jar 和 esdk-obs-java-3.0.0.jar 拷贝到这些目录中进行替换
2) 删 除 hbase-2.1.0 所 有 目 录 中 原 有 的 java-xmlbuilder-0.4.jar , okhttp-2.4.0.jar 和okio-1.4.0.jar,将 java-xmlbuilder-1.1.jar、okhttp-3.10.0.jar 和 okio-1.14.0.jar 拷贝到这些目录中进行替换
9、 可以根据实际虚拟机的配置在 hbase-deamon.sh(/home/modules/hbase-2.1.0/bin)中对 GC 参数进行配置
10
<configuration> <property> <name>hbase.rootdir</name> <value>obs://obs-hbase001/hbasetest007</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/modules/hbase-2.1.0/data/zookeeper</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>ecs-bigdata-obs1.novalocal,ecs-bigdata-obs2.novalocal,ecs-bigdata-obs3.novalocal</value>
ecs-bigdata-obs1.novalocalecs-bigdata-obs2.novalocalecs-bigdata-obs3.novalocal
export SERVER_GC_OPTS="-Xms20480M -Xmx20480M -XX:NewSize=2048M -XX:MaxNewSize=2048M -XX:MetaspaceSize=512M -XX:MaxMetaspaceSize=512M -XX:MaxDirectMemorySize=2048M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=65 -XX:+PrintGCDetails -Dsun.rmi.dgc.client.gcInterval=0x7FFFFFFFFFFFFFE -Dsun.rmi.dgc.server.gcInterval=0x7FFFFFFFFFFFFFE -XX:-OmitStackTraceInFastThrow -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=1M"
在 master 节点上启动 hbase
11、 使用命令 jps 查看各服务器进程
start-hbase.sh
Top Related