hadoop+hbase+hive+spark(分布式部署)

大数据平台搭建

版本

这个版本真的关键
hadoop:2.10.0
在这里插入图片描述

参考连接1
参考连接2

准备环境
新增用户,ssh免密登陆

如果配置分布式spark还需要
vi /etc/hostname
添加到下图

修改 vi /etc/hosts,三台机器都需要

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.208.129  该机器/etc/hostname的值  master
192.168.208.130  该机器/etc/hostname的值  slave1
192.168.208.131  该机器/etc/hostname的值  slave2

然后每个主机都创建一个用户hadoop,然后将目录的权限给这个用户:,切换到这个用户。创建用户的过程在虚拟机安装的时候就可以设置了(如果是vmware的话),跟着步骤走就好,实在不想搞直接用root也行。后面所有东西都往bigdata装。

useradd hadoop
passwd hadoop
su hadoop

chown hadoop -R /bigdata

接下来所有新建文件夹等操作都在hadoop用户组下进行
配置免密登陆(三台都要)
hadoop用户组

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

子机器就换成@master,分配给另外两台机器

ssh-copy-id hadoop@slave1
ssh-copy-id hadoop@slave2
hadoop配置文件

1.core-site

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
	<property>
		<name>hadoop.tmp.dir</name>
	<value>/tmp/XXX</value>
	</property>

<!-- 可选 -->
<property>
<name>dfs.data.dir</name>
    <value>/bigdata/data/datanode</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
  <value>*</value>
 </property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.hosts</name>
  <value>*</value>
 </property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>

</configuration>

2.hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
<property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
</property>
<property>

        <name>dfs.datanode.max.xcievers</name>

        <value>4096</value>

      <dedication> Datanode 有一个同时处理文件的上限,至少要有4096</dedication>
</property>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
</property>
<property>  <!--设置为true,可以在浏览器中IP+port查看-->

        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
</property>
</configuration>

3.mapred-site.xml

<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

<configuration>

<!-- Site specific YARN configuration properties -->
 <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>

<!--日志保存时间 默认保存3-7-->	
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property> <!--ResourceManager 对客户端暴露的地址--> 
<name>yarn.resourcemanager.address</name> 
<value>master:8032</value> 
	</property> 
	<property> <!--ResourceManager 对ApplicationMaster暴露的地址-->  
		<name>yarn.resourcemanager.scheduler.address</name> 
		<value>master:8030</value> 
	</property> 
	<property> <!--ResourceManager 对NodeManager暴露的地址--> 
		<name>yarn.resourcemanager.resource-tracker.address</name>  
		<value>master:8031</value> 
		</property> 	
	<property> <!--ResourceManager 对管理员暴露的地址--> 
		<name>yarn.resourcemanager.admin.address</name>   
		<value>master:8033</value> 
	</property> 
	<property> <!--ResourceManager 对外web暴露的地址,可在浏览器查看-->   
		<name>yarn.resourcemanager.webapp.address</name> 
		<value>master:8088</value> 
	</property>
</configuration>

修改yarn-env.sh和hadoop-env.sh

#将这句话放到带有java_home的位置,主要是有时候它就是不认你配置的java_home环境变量

export JAVA_HOME=/opt/jdk1.8.0_102

修改slaves文件

#删掉localhost不删掉的话datanode在master节点也会有
slave1
slave2

接下来我都是修改/etc/profile, 这两个文件差别就是一个修改系统,一个修改用户,正常应该是hadoop用户组,像参考博主用的是fay用户组,修改~/.bashrc 这样更规范

将hadoop添加到环境变量,修改~/.bashrc

export JAVA_HOME=/home/java/jdk/jdk1.8.0_221
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/

export HADOOP_HOME=/bigdata/binfile/hadoop-2.10.0
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

然后 source ~/.bashrc

另外两台机器就简单了,直接copy过去就好

scp -r /opt fay@slave1:/
scp -r /opt fay@slave2:/

理论上这一步没问题,但是你之前/opt权限没配置好就权限不足,那就弄好权限。
然后把环境变量文件也直接copy过去

scp ~/.bashrc hadoop@slave1:/home/fay/
scp ~/.bashrc hadoop@slave2:/home/fay/

两台机器上分别 source ~/.bashrc
然后在master节点上 初始化namenode:

hdfs namenode -format

然后启动hadoop

start-dfs.sh
start-yarn.sh

master节点上输入jps,看到如下显示:

[fay@master hadoop-2.8.5]$ jps
35184 SecondaryNameNode
34962 NameNode
35371 ResourceManager
35707 Jps

两个slave节点:

[fay@slave1 ~]$ jps
16289 Jps
16035 DataNode
16152 NodeManager

接下来按照参考链接2就可以完成了,遇到的问题如下

期间要下载mysql,我用docker安装

建议参考链接 docker安装mysql

此时只支持docker18.06
yum install -y yum-utils device-mapper-persistent-data lvm2
1.1.添加源:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.2.查看包:
yum list docker-ce.x86_64 --showduplicates | sort -r
1.3.安装docker
yum -y install docker-ce-18.06.0.ce-3.el7

docker pull mysql:latest

docker run \
    -p 3306:3306 \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -v /home/data/mysql/mysql-files:/var/lib/mysql-files:rw \
    -v /home/data/mysql/data:/var/lib/mysql:rw \
    -v /home/data/mysql/log:/var/log/mysql:rw \
    -v /home/data/mysql/config/my.cnf:/etc/mysql/my.cnf:rw \
    -v /etc/localtime:/etc/localtime:ro \
    --name mysql8 \
    --restart=always \
    -d mysql

提前要在提定的位置(我的位置是:/home/data)创建以下文件夹或文件:
/home/data/mysql/mysql-files:/var/lib/mysql-files:rw 挂载外部目录 就要挂载该目录
mysql/data 是数据库文件存放的地方。必须要挂载到容器外,否则容器重启一切数据消失。
mysql/log 是数据库主生的log。建议挂载到容器外。
mysql/config/my.cnf 是数据库的配置文件,在下面会放出来。
/etc/localtime:/etc/localtime:ro 是让容器的时钟与宿主机时钟同步,避免时区的问题,ro是read only的意思,就是只读。

docker exec -it mysql8 /bin/sh

配置远程连接

mysql

mysql -uroot -p(第一次进去是mysql,没用密码)

授权:

mysql> GRANT ALL ON *.* TO 'root'@'%';

刷新权限:

mysql> flush privileges;

更新加密规则:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

更新root用户密码:

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

刷新权限:

mysql> flush privileges;
遇到问题

hive启动失败
1:namenode未开启
重新启动hadoop

hdfs namenode -format 初始化

2.hive-site.xml未生效
查看路径是否正确
3.初始化数据库失败

schematool -dbType mysql -initSchema

查看mysql连接的jar包是否存在
下载地址
jar包下载地址
在这里插入图片描述
spark安装部署参考文档
spark连接前需要开启hive服务

hiveserver2 --service start&

spark-env.sh

# - OPENBLAS_NUM_THREADS=1   Disable multi-threading of OpenBLAS

export JAVA_HOME=/bigdata/software/jdk1.8.0_221
export SPARK_WORKER_MEMORY=4096m
export SPARK_WORKER_CORES=3
# 端口要和spark-defaults.conf中的spark.master一致
export SPARK_MASTER_PORT=7177
export SPARK_MASTER_IP=xx.xx.xx.xx
export SPARK_LOCAL_IP=xx.xx.xx.xx



spark-defaults.conf(可选)

cp ${SPARK_HOME}/conf/spark-defaults.conf.template  ${SPARK_HOME}/conf/spark-defaults.conf

vi ${SPARK_HOME}/conf/spark-defaults.conf


# Example:
spark.master                     spark://master:7177
spark.local.dir           /app/binfile/spark-2.4.5-bin-hadoop2.7/sparktmp
spark.debug.maxToStringFields    100
spark.driver.memory              6g
# spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
mapreduce.map.memory.mb 2g
mapreduce.reduce.memory.mb 4g
spark.executor.cores 1
spark.executor.memory 4g
spark.dynamicAllocation.enabled false
spark.dynamicAllocation.initialExecutors 1
spark.dynamicAllocation.maxExecutors 2
spark.sql.crossJoin.enabled true

 4 [yun@mini01 conf]$ tail spark-env.sh  # 修改环境变量配置
 5 # Options for native BLAS, like Intel MKL, OpenBLAS, and so on.
 6 # You might get better performance to enable these options if using native BLAS (see SPARK-21305).
 7 # - MKL_NUM_THREADS=1        Disable multi-threading of Intel MKL
 8 # - OPENBLAS_NUM_THREADS=1   Disable multi-threading of OpenBLAS
 9 
10 # 添加配置如下
11 # 配置JAVA_HOME
12 export JAVA_HOME=/app/jdk
13 # 设置Master的主机名
14 export SPARK_MASTER_IP=mini01
15 # 每一个Worker最多可以使用的内存,我的虚拟机就2g
16 # 真实服务器如果有128G,你可以设置为100G
17 # 所以这里设置为1024m或1g
18 export SPARK_WORKER_MEMORY=1024m
19 # 每一个Worker最多可以使用的cpu core的个数,我虚拟机就一个...
20 # 真实服务器如果有32个,你可以设置为32个
21 export SPARK_WORKER_CORES=1
22 # 提交Application的端口,默认就是这个,万一要改呢,改这里
23 export SPARK_MASTER_PORT=7077
24 
25 [yun@mini01 conf]$ pwd
26 /app/spark/conf
27 [yun@mini01 conf]$ cp -a slaves.template slaves 
28 [yun@mini01 conf]$ tail slaves  # 修改slaves 配置
29 # distributed under the License is distributed on an "AS IS" BASIS,
30 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31 # See the License for the specific language governing permissions and
32 # limitations under the License.
33 #
34 
35 # A Spark Worker will be started on each of the machines listed below.
vi slaves

# A Spark Worker will be started on each of the machines listed below.
master
slave1
slave2
slave3

连接hive
参考我自己的博客哈哈
hive+spark-shell

博主公众号
求关注
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 搭建大数据环境需要以下步骤: 1. 安装HadoopHadoop是一个分布式计算框架,用于处理大规模数据集。安装Hadoop需要下载Hadoop软件包,并进行配置。 2. 安装HiveHive是一个数据仓库工具,用于在Hadoop上进行数据分析和查询。安装Hive需要下载Hive软件包,并进行配置。 3. 安装SparkSpark是一个快速的大数据处理框架,用于在Hadoop上进行数据处理和分析。安装Spark需要下载Spark软件包,并进行配置。 4. 安装Zookeeper:Zookeeper是一个分布式协调服务,用于管理Hadoop集群中的节点。安装Zookeeper需要下载Zookeeper软件包,并进行配置。 5. 安装HBaseHBase是一个分布式的NoSQL数据库,用于存储和管理大规模数据。安装HBase需要下载HBase软件包,并进行配置。 以上是搭建大数据环境的基本步骤,需要根据实际情况进行具体的配置和调整。 ### 回答2: 随着互联网技术的不断发展,越来越多的数据被产生和需要处理,因此,搭建大数据环境成为了一项非常重要的工作。目前,HadoopHiveSpark、Zookeeper、Hbase等大数据技术成为了最为重要的技术。下面,我们来详细介绍这些技术的大数据环境搭建。 1. Hadoop的安装 Hadoop是一个开源的分布式文件系统和数据处理框架,可以处理大规模数据的存储和处理。Hadoop的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hadoop的二进制包; 3)解压Hadoop的二进制包,并配置环境变量; 4)修改Hadoop的相关配置文件; 5)启动Hadoop。 2. Hive的安装 Hive是一个基于Hadoop的数据仓库工具,提供了类似于SQL的查询语言,可以用于大规模数据仓库的创建和查询。Hive的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hive的二进制包; 3)解压Hive的二进制包,并配置环境变量; 4)修改Hive的相关配置文件; 5)启动Hive。 3. Spark的安装 Spark是一个快速而通用的大数据处理引擎,可以执行大规模数据处理任务,并支持分布式计算。Spark的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Spark的二进制包; 3)解压Spark的二进制包,并配置环境变量; 4)修改Spark的相关配置文件; 5)启动Spark。 4. Zookeeper的安装 Zookeeper是一个高性能分布式应用程序协调服务,可以用于协调和同步大规模集群中的应用程序。Zookeeper的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Zookeeper的二进制包; 3)解压Zookeeper的二进制包,并配置环境变量; 4)修改Zookeeper的相关配置文件; 5)启动Zookeeper。 5. Hbase的安装 Hbase是一个基于Hadoop分布式非关系型数据库,提供了类似于Google的Bigtable的基于列的存储方式。Hbase的安装主要包括以下几个步骤: 1)安装JDK环境; 2)下载Hbase的二进制包; 3)解压Hbase的二进制包,并配置环境变量; 4)修改Hbase的相关配置文件; 5)启动Hbase。 在完成上述大数据技术的安装后,我们还需在使用时将它们进行整合,以达到更加高效的数据处理和管理。这些技术之间的整合一般都需要配置相关的XML文件和环境变量,具体操作可根据实际情况去修改和设置。小编建议,初学者应该多参考一些大佬的经验,互联网上有很多大牛分享了上述技术的搭建方法,读者可以多花些时间去学习和了解。 ### 回答3: 随着现代信息技术的不断发展,大数据的应用越来越广泛。作为目前大数据环境的主流组件,HadoopHiveSpark、Zookeeper和HBase都是大数据领域的重要工具。为了能够更好地进行大数据分析和处理,需要对这些工具进行合理的搭建和配置。 1. Hadoop的搭建 Hadoop是一个分布式存储和计算的框架,搭建Hadoop需要安装JAVA环境,并下载相应的Hadoop压缩包。将Hadoop解压到本地目录,在安装文件中设置JAVA_HOME和HADOOP_HOME环境变量。启动Hadoop需要先启动NameNode和DataNode,然后启动JobTracker和TaskTracker。搭建好Hadoop后,还需要使用HDFS命令行或Hadoop API进行文件的上传、下载、删除等基本操作。 2. Hive的搭建 Hive是一个基于Hadoop的数据仓库工具,可以将结构化数据映射到Hadoop的存储系统中。Hive搭建需要先安装JAVA环境和Hadoop,然后下载并解压Hive压缩包。将HiveHadoop的配置文件进行关联,启动Hive服务时需要启动Metastore和HiveServer2服务。搭建完成后,可以使用HiveQL语句进行数据的查询、插入、删除等操作。 3. Spark的搭建 Spark是一个快速通用的大数据计算引擎,可用于数据分析、机器学习等场景。Spark搭建需要安装JAVA和Scala等相关组件,并下载Spark压缩包。将Spark解压到本地目录后,设置SPARK_HOME环境变量以及Hadoop和YARN的配置相关参数。启动Spark服务时需要先启动Master和Slave节点。搭建完成后,可以使用Spark Shell和Spark SQL进行数据处理和分析。 4. Zookeeper的搭建 Zookeeper是一个分布式的协调服务,可以用于管理各类分布式应用程序的配置和信息。将Zookeeper下载并解压到本地目录,设置ZOOKEEPER_HOME环境变量,并修改Zoo.cfg配置文件中的端口号、数据目录等相关参数。启动Zookeeper服务时需要先启动一个Leader和多个Follower。搭建完成后,可以使用ZooKeeper API对Zookeeper的节点进行管理和配置。 5. HBase的搭建 HBase是一个列存储数据库,可以在Hadoop上提供实时读写服务。HBase搭建需要安装JAVA环境、Hadoop和Zookeeper,并下载HBase压缩包。将HBase解压到本地目录,并进行相关配置,比如修改HBase-site.xml配置文件的参数、设置HBASE_HOME环境变量等。启动HBase服务前需要先启动Zookeeper服务。搭建完成后,可以使用Java API或HBase Shell进行数据的读写操作。 综上所述,搭建大数据环境需要先安装基础的JAVA环境和相关组件,然后根据各个工具的安装包进行相应的配置和启动,最后进行测试和调试。在搭建过程中需要注意版本、路径等问题,避免出现配置错误。经过搭建和调试后,可以使用这些工具进行海量数据的分析和处理,为企业的决策提供有力的支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值