eclipse远程连接hadoop_macbook安装大数据组件(hadoop, hive, hbase, spark, kettle)

155eaf2ba521985c41edf124211f8ab0.png

最近尝试在自己的电脑上安装一些大数据组件,记录一下安装步骤和遇到的问题~

一、macbook系统:Mojave 10.14.6

二、安装各组件:

1、macbook安装hadoop、yarn

1.1 参考文献:

https://www.cnblogs.com/little-YTMM/p/4394981.html

https://blog.csdn.net/vbirdbest/article/details/88189753

1.2 安装条件

安装java8(注意java版本很重要,如果java版本不对可能yarn无法启动)

安装homebrew

1.3 安装步骤:

1.3.1 修改主机名:

sudo scutil --set HostName localhost

1.3.2 配置SSH localhost

  • 打开系统偏好设置-共享-远程登录(默认情况下关闭,将“远程登录打开即可”);
  • 生成密钥对,执行如下命令
$ ssh-keygen -t rsa #一路回车到结束
  • 执行如下命令,将在当前用户目录中的.ssh文件夹中生成id_rsa文件并且以后可以不使用密码登录:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 使用下面命令,测试是否可以不适用密码登录:
$ ssh localhost

1.3.3 执行如下命令

 brew install hadoop #我安装过程中,默认安装版本3.2.1

1.3.4 配置文件

1) 在目录/usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop下找到hadoop-env.sh文件中找到其中一行

修改export HADOOP_OPTS:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="

2)在目录/usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop下找到core-site.xml,插入如下代码:

<configuration>
  <property>
     <name>hadoop.tmp.dir</name>  
<value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
    <description>A base for other temporary directories.</description>
  </property>
  <property>
     <name>fs.default.name</name>                                     
     <value>hdfs://localhost:9000</value>                             
  </property>     
	<property>
        <name>hadoop.http.staticuser.user</name>
        <value>hadoop</value>(指定为用户名字,此处可以设为电脑的用户)
</property>                                                    
</configuration>

注意:如果不指定:hadoop.http.staticuser.user,则在网页http://localhost:9870/ 中utilities中browse the file system会报错“Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Server Error“

84e7900d3fa426081f7e2e9d9639a423.png

3)在目录/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop下找到hdfs-site.xml

 <configuration>
   <property>
     <name>dfs.replication</name>
     <value>1</value>
    </property>
</configuration>

4)在目录/usr/local/Cellar/hadoop/2.6.0/libexec/etc/hadoop下找到mapred-site.xml, 在其中添加:

<configuration>
      <property>
        <name>mapred.job.tracker</name>
        <value>localhost:9010</value>
      </property>
</configuration>

5) 格式化HDFS

在运行后台程序前, 必须格式化新安装的HDFS, 并通过创建存储目录和初始化元数据创新空的文件系统, 执行下面命令:
$ hdfs namenode -format

6) 启动hadoop

启动后台程序:在/usr/local/Cellar/hadoop/2.6.0/sbin目录下, 执行如下命令

  • $ start-dfs.sh #启动HDFS
  • $ stop-dfs.sh #停止HDFS

7) 查看Hadoop 是否成功

# 查看启动的服务,如果有下面的服务则启动hadoop成功
jps

DataNode
NameNode  
SecondaryNameNode

8) 打开网页 http://localhost:9870/

1.3.5 启动yarn

1)修改配置文件 libexec/etc/hadoop/mapred-site.xml

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

2)修改配置文件 libexec/etc/hadoop/yarn-site.xml

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

3)启动yarn

# 启动ResourceManager 和 NodeManager,启动成功后可以访问http://localhost:8088/cluster

sbin/start-yarn.sh

# 停止 sbin/stop-yarn.sh

# 可以通过start-all.sh 来同时启动start-dfs.sh和start-yarn.sh

2、安装mysql

2.1 参考文献:

https://blog.csdn.net/zx1245773445/article/details/82292191

2.2 安装步骤:

2.2.1 brew install mysql

2.2.2 在terminal中配置mysql的环境变量

     vim ~/.bash_profile

添加

     PATH="/usr/local/mysql/bin:${PATH}"
     export PATH

其中/usr/local/mysql/bin为mysql的地址,然后关掉terminal,重新点开terminal输入mysql -V即可查看是否配置好环境变量。这里一定要关掉terminal,在新的terminal窗口中输入,否则还是会出现-bash: mysql: command not found的错误。或者此处输入如下命令也可以:

source ~/.bash_profile

2.2.3 启动MySQL

mysql.server start

2.2.4 运行mysql_secure_installation

运行mysql_secure_installation会执行几个设置:
a)为root用户设置密码
b)删除匿名账号
c)取消root用户远程登录
d)删除test库和对test库的访问权限
e)刷新授权表使修改生效
2.2.5 安装workbench

Mysql管理工具为Workbench,版本 8.0.12

Workbench的下载地址链接 Download MySQL Workbench

下载好了,直接安装即可,此后可以在Application找到

e0cc9bd3e5c2a8649b941e15ca350300.png

Workbench连接Mysql数据库

点击MySQL Connnections旁边的加号就可以进入下图连接数据图的界面。按下图输入Hostname和Username即可。

1f6d3cb8e86e35c803affb9cff9b09ea.png

3、安装hive

3.1 参考文献

https://blog.csdn.net/zx1245773445/article/details/86221660

https://blog.csdn.net/GQB1226/article/details/102555820

3.2 安装条件

在安装hive之前需要安装hadoop,因为hive本身并没有提供数据存储功能。它的数据是存储在hadoop的HDFS上面的。

3.3 安装步骤

3.3.1 brew install hive

3.3.2 接着配置环境变量,在命令行中打开bash_profile文件

vim ~/.bash_profile

在里面添加下面几行:

export HIVE_HOME=/usr/local/Cellar/hive/3.1.1
export PATH=$HIVE_HOME/bin:$PATH

保存退出以后输入source ~/.bash_profile, 更新环境变量。

然后在命令行中输入hive,就可以看到下面的信息了。

Logging initialized using configuration in jar:file:/usr/local/Cellar/hive/3.1.1/libexec/lib/hive-common-3.1.1.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive> 

此处发生了如下错误:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/Cellar/hive/3.1.2/libexec/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/Cellar/hadoop/3.2.1/libexec/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
 at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)
 at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338)
 at org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:536)
 at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:554)
 at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:448)
 at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)
 at org.apache.hadoop.hive.conf.HiveConf.<init>(HiveConf.java:5099)
 at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:97)
 at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:81)
 at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:699)
 at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
 at org.apache.hadoop.util.RunJar.main(RunJar.java:236)

参考如下链接 :https://blog.csdn.net/GQB1226/article/details/102555820

关键在: com.google.common.base.Preconditions.checkArgument 这是因为hive内依赖的guava.jar和hadoop内的版本不一致造成的。 检验方法:

  1. 查看hadoop安装目录下share/hadoop/common/lib内guava.jar版本
  2. 查看hive安装目录下lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的 问题解决!

我的mac上两个版本分别为:hive:guava-19.0.jar,hadoop:guava-27.0-jre.jar,保留了27版本的。

3.3.3打开mysql,新建database

mysql -u root -p

在数据库里面新建一个database

mysql> create database metastore;

然后进入/usr/local/Cellar/hive/3.1.1/libexec/conf 目录下,键入vim hive-site.xml(此处需要创建文件), 将下面的代码粘贴进去,修改mysql用户名密码

<configuration>
  
  <property>
        <name>hive.metastore.local</name>
        <value>true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost/metastore</value>
    </property>
 
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
  <!--mysql用户名-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
  <!--mysql密码-->
  <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>mysql的密码</value>
    </property>
 
 <!-- hive用来存储不同阶段的map/reduce的执行计划的目录,同时也存储中间输出结果
,默认是/tmp/<user.name>/hive,我们实际一般会按组区分,然后组内自建一个tmp目录存>储 -->
 
    <property>
        <name>hive.exec.local.scratchdir</name>
        <value>/tmp/hive</value>
    </property>
 
 
    <property>
        <name>hive.downloaded.resources.dir</name>
            <value>/tmp/hive</value>
    </property>
 
    <property>
 
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
 
    <property>
        <name>hive.server2.logging.operation.log.location</name>
        <value>/tmp/hive</value>
    </property>
 
</configuration>

可以先在这里运行一下hive,看看粘贴的文件有没有问题。如果没有问题就可以进行下一步了。

3.3.4 在mysql的官网下载mysql-connector,选下面的操作系统。解压以后,再把jar文件复制到/usr/local/Cellar/hive/3.1.1/libexec/lib目录下面。

444d92140c8363eb5771f632fefa833f.png

如果没有下载mysql-connector,就会出现如下问题。

FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient 

3.3.5 最后执行schematool -initSchema -dbType mysql,出现下面的结果,就说明执行成功了。

Initialization script completed
schemaTool completed

3.3.6 运行hive,输入show database;

hive> show databases
    > ;
OK
default
Time taken: 0.675 seconds, Fetched: 1 row(s)
hive> 

4、安装hbase

4.1 参考文献

https://blog.csdn.net/vbirdbest/article/details/88232702

4.2 安装步骤:

4.2.1 brew install hbase

4.2.2 修改/usr/local/Cellar/hbase/1.2.9/libexec/conf/hbase-env.sh

在最后一行增加环境变量,hadoop和hbase的版本号修改成自己实际安装的版本号

export HBASE_CLASSPATH=/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop
export HBASE_MANAGES_ZK=true
export HBASE_HOME=/usr/local/Cellar/hbase/1.2.9/libexec
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_REGIONSERVERS=${HBASE_HOME}/conf/regionservers

4.2.3. 修改/usr/local/Cellar/hbase/1.2.9/libexec/conf/hbase-site.xml

我安装的版本为1.3.5,未修改此文件

4.2.4 修改/usr/local/Cellar/hbase/1.2.9/libexec/conf/regionservers

在regionservers文件中添加localhost, 如果有就不用再添加了

4.2.5. 配置HBase的环境变量

vi ~/.bash_profile

export HBASE_HOME=/usr/local/Cellar/hbase/1.2.9/libexec
export PATH=$PATH:${HBASE_HOME}/bin

source ~/.bash_profile

4.2.6. 启动HBase

cd /usr/local/Cellar/hbase/1.2.9/bin
# 停止HBase ./stop-hbase.sh
./start-hbase.sh

4.2.7 查看HBase状态,先进入hbase的shell:

hbase shell

然后执行:

hbase(main):001:0> status
1 active master, 0 backup masters, 1 servers, 0 dead, 2.0000 average load

hbase(main):002:0>

5、安装spark

5.1 参考文献:

https://cloud.tencent.com/developer/article/1423508

5.2 安装步骤

5.2.1 命令行执行:brew install scala

执行完成后,终端输入:scala -version 进行查看,如下表明安装成功:

jiangxingqideMacBook-Pro:~ jiangxingqi$ scala -version
Scala code runner version 2.12.8 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.

然后在环境变量中增加scala相关的变量,命令行输入:vim ~/.bash_profile进行编辑,增加环境变量:

export SCALA_HOME=/usr/local/Cellar/scala/2.12.8
export PATH=$PATH:$SCALA_HOME/bin

5.2.2 brew install apache-spark

vim ~/.bash_profile

export SPARK_PATH="/usr/local/Cellar/apache-spark/2.2.0"
export PATH="$SPARK_PATH/bin:$PATH"

source ~/.bash_profile

5.2.3 ./spark-shell出现如下界面表示成功:

622d9e6e783e30dd08f45ff09ea57146.png

6、安装kettle、配置

6.1 参考文献:

https://community.hitachivantara.com/s/article/data-integration-kettle

https://blog.csdn.net/cdmamata/article/details/56846895

https://blog.csdn.net/weinierzui/article/details/77931346

6.2安装步骤:

6.2.1、brew install kettle 总是不成功

6.2.2、前往如下网址进行下载:https://community.hitachivantara.com/s/article/data-integration-kettle ,After unzipping the downloaded file, you can launch Spoon by navigating to the folder /data-integration and double clicking on the "Data Integration" application icon.

6.2.3、配置一个简单的mysql到hdfs的数据转化:

参考https://blog.csdn.net/cdmamata/article/details/56846895 进行,配置结果如下:

70819925bc4304301d76ef513a78ccd4.png

4a4266144afad24b6fd86d2d12046e4c.png

点击测试出现如下结果:

a8d3eb43c87875246049d9b581bdad57.png

上图中虽然有错误,但是不影响数据的转化。

可能遇到的问题:

1)mysql报驱动错误,请下载如下版本的驱动:mysql-connector-java-5.1.46-bin.jar

2)测试不通过,可以将如下配置文件拷贝到:data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh510/目录下

494ffd5b944da83ec8dd07717bdf8677.png

转换成功可以从日志中看到:

d95505538f7d30935ecba4ecb0029c1a.png

此时会在hdfs上生成相应文件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值