首页 文章 精选 留言 我的

精选列表

搜索[单机],共5456篇文章
优秀的个人博客,低调大师

ubuntu1404_64单机安装Hadoop2.7.3

JDK、Hadoop、Hive官网下载,Hive默认(嵌入式derby 模式) http://hadoop.apache.org/releases.html http://www.apache.org/dyn/closer.cgi/hive/ http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 参考文档 http://www.powerxing.com/install-hadoop/ 创建用户和组,设置密码 root@hive:~# useradd -m hadoop -s /bin/bash root@hive:~# passwd hadoop Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 切换hadoop用户后,配置SSH免密登录 root@hive:~# su hadoop hadoop@hive:/root$ cd hadoop@hive:~$ ssh-keygen -t rsa -P '' #密钥默认存放在/home/hadoop/.ssh/目录下 hadoop@hive:~$ cat ./.ssh/id_rsa.pub >> ~/.ssh/authorized_keys hadoop@hive:~$ chmod 0600 !$ chmod 0600 ~/.ssh/authorized_keys 验证 配置Java环境 hadoop@hive:~# tar xvf jdk-8u111-linux-x64.tar.gz -C /usr/share/java/ hadoop@hive:~# vim .bash_profile hadoop@hive:~# cat !$ cat .bash_profile export JAVA_HOME=/usr/share/java/jdk1.8.0_111/ export PATH=$PATH:$JAVA_HOME/bin hadoop@hive:~# source !$ source .bash_profile hadoop@hive:~# java -version java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode) Hadoop配置 core-site.xml:包括HDFS、MapReduce的I/O以及namenode节点的url(协议、主机名、端口)等核心配置,datanode在namenode上注册后,通过此url跟client交互 hadoop@hive:~$ vim hadoop-2.7.3/etc/hadoop/core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> hdfs-site.xml: HDFS守护进程配置,包括namenode,secondary namenode,datanode hadoop@hive:~$ vim hadoop-2.7.3/etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> mapred-site.xml:MapReduce守护进程配置,包括jobtracker和tasktrackers hadoop@hive:~$ vim hadoop-2.7.3/etc/hadoop/mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 全局资源管理配置 http://www.cnblogs.com/gw811/p/4077318.html hadoop@hive:~$ vim hadoop-2.7.3/etc/hadoop/yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_suffle</value> </property> </configuration> 配置与hadoop运行环境相关的变量 hadoop@hive:~$ vim hadoop-2.7.3/etc/hadoop/hadoop-env.sh export JAVA_HOME=/usr/share/java/jdk1.8.0_111/ nameNode 格式化并启动,如果修改了hostname,/etc/hosts文件也需要添加本地解析,否则初始化会报错namenode unknown hadoop@hive:~$ hadoop-2.7.3/bin/hdfs namenode -format hadoop@hive:~$ hadoop-2.7.3/sbin/start-dfs.sh Starting namenodes on [localhost] localhost: starting namenode, logging to /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-namenode-hive.out localhost: starting datanode, logging to /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-datanode-hive.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /home/hadoop/hadoop-2.7.3/logs/hadoop-hadoop-secondarynamenode-hive.out 成功启动后,可访问web界面查看nameNode和datanode信息以及HDFS中的文件。 伪分布式启动 YARN为可选操作,启动后可以通过web界面查看任务运行情况 hadoop@hive:~$ hadoop-2.7.3/sbin/start-yarn.sh starting yarn daemons starting resourcemanager, logging to /home/hadoop/hadoop-2.7.3/logs/yarn-hadoop-resourcemanager-hive.out localhost: starting nodemanager, logging to /home/hadoop/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-hive.out root@hive:/home/hadoop# jps 5366 ResourceManager 5014 DataNode 4904 NameNode 7354 Jps 5214 SecondaryNameNode 7055 RunJar 监听端口 listen conf description 9000 core-site.xml NameNode RPC交互 9001 mapred-site.xml JobTracker交互 50030 mapred-site.xml Tracker Web管理 50060 mapred-site.xml TaskTracker HTTP 50070 hdfs-site.xml NameNode Web管理 50010 hdfs-site.xml DataNode控制端口 50020 hdfs-site.xml DataNode RPC交互 50075 hdfs-site.xml DataNode HTTP 50090 hdfs-site.xml Secondary NameNode Web管理 解压Hive安装包,配置运行环境变量 hadoop@hive:~$ tar xvf apache-hive-2.1.0-bin.tar.gz hadoop@hive:~$ tail -3 .bash_profile export HADDOP_HOME=/home/hadoop/hadoop-2.7.3/ export HIVE_HOME=/home/hadoop/apache-hive-2.1.0-bin/ export PATH=$PATH:$HADDOP_HOME/bin:$HADDOP_HOME/bin:$HIVE_HOME/bin hadoop@hive:~$ source !$ source .bash_profile HDFS上创建目录并设置权限 hadoop@hive:~$ hadoop fs -mkdir -p /tmp hadoop@hive:~$ hadoop fs -mkdir -p /user/hive/warehouse hadoop@hive:~$ hadoop fs -chmod g+w /tmp hadoop@hive:~$ hadoop fs -chmod g+w /user/hive/warehouse 初始化数据库 hadoop@hive:~$ schematool -dbType derby -initSchema SLF4J: Class path contains multiple SLF4J bindings. .......... Starting metastore schema initialization to 2.1.0 Initialization script hive-schema-2.1.0.derby.sql Initialization script completed schemaTool completed 测试 hive> show databases; OK default Time taken: 0.014 seconds, Fetched: 1 row(s) hive> CREATE TABLE ss7_traffic (DATA_DATE string, > CdPA_SSN int, CdPA_ID int, > CgPA_SSN int, CgPA_ID int, > otid string, dtid string, > OPCODE int, imsi string, > msisdn string, MSRN string, > MSCN string, VLRN string) > ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' > WITH SERDEPROPERTIES ( "separatorChar" = ',',"quoteChar" = '"', "escapeChar" = '"' ) > STORED AS TEXTFILE; OK Time taken: 2.747 seconds hive> LOAD DATA LOCAL INPATH './data.csv' OVERWRITE INTO TABLE ss7_traffic; Loading data to table default.ss7_traffic OK Time taken: 2.552 seconds hive> CREATE TABLE ss7_optype ( OPTYPE string, OPCODE int ) > ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' > WITH SERDEPROPERTIES ( > "separatorChar" = ',',"quoteChar" = '"', "escapeChar" = '"' ) > STORED AS TEXTFILE; OK Time taken: 0.142 seconds hive> LOAD DATA LOCAL INPATH './OPTYPE.csv' OVERWRITE INTO TABLE ss7_optype; Loading data to table default.ss7_optype OK Time taken: 0.512 seconds hive> CREATE TABLE ss7_gtlist ( GTN string, WB string ) > ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' > WITH SERDEPROPERTIES ( "separatorChar" = ',', "quoteChar" = '"', > "escapeChar" = '"' ) STORED AS TEXTFILE; OK Time taken: 0.155 seconds hive> SELECT t1.* FROM ss7_traffic t1 JOIN ss7_optype t2 ON t1.opcode = t2.opcode > AND t2.optype = 'intraPlmn' WHERE t1.CgPA_id NOT IN > ( SELECT gtn FROM ss7_gtlist WHERE wb = 'w');

优秀的个人博客,低调大师

Centos 7.X单机部署DB2 10.5

系统底层准备工作 安装jdk tar xvf jdk-7u79-linux-x64.tar.gz vi /etc/profile #设置JDK环境变量:vi /etc/profile 末尾添加JDK环境变量设置: JAVA_HOME=/usr/local/java JRE_HOME=/usr/local/java/jre CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME PATH CLASSPATH source /etc/profile#生效修改的配置文件 配置本地yum源 如果用的是网络源可忽略这一步 mount /dev/cdrom /media/ #挂载镜像 rpm --import /etc/pki/rpm-gpg/RPM* #引入K值 #配置yum源 vi /etc/yum.repos.d/rhel-media.repo [base] name=Server Local Sources baseurl=file:///media enable=1 gpcheck=0 安装依赖包 yum install -y librdmacm ibsim ibutils libcxgb3 libibmad libibumad libipathverbs libmthca libnes libibcm numactl 创建用户和组 groupadd -g 996 db2iadm1 groupadd -g 995 db2fadm1 groupadd -g 994 dasadm1 useradd -u 600 -g db2iadm1 -m -d /home/db2inst1 db2inst1 useradd -u 601 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1 useradd -u 602 -g dasadm1 -m -d /home/dasusr1 dasusr1 安装DB2软件包 tar xvfz DB2_Svr_10.5.0.1_Linux_x86-64.tar.gz 选择安装的功能这里选择SERVER您想安装DB2 PUSTRCALE功能吗?[是/否]这个地方选择no安装完成 创建DB2 instance cd /opt/ibm/db2/V10.5/instance/ ./db2icrt -u db2fenc1 db2inst1 查看实例是否创建成功 验证DB2数据库的安装 以db2inst1用户ID登录系统: su –u db2inst1 #启动数据库DB2: db2inst@linux:~> db2start #停掉DB2 db2inst@linux:~> db2stop DB2参数配置 以db2inst1用户ID登录系统: su –u db2inst1 执行以下命令设置DB2相关参数 db2set DB2_EXTENDED_OPTIMIZATION=ON #开启扩展优化 db2set DB2_DISABLE_FLUSH_LOG=ON #开启禁用刷新日志 db2set AUTOSTART=YES #开启自动启动 db2set DB2_STRIPED_CONTAINERS=ON #开启集装箱 db2set DB2_HASH_JOIN=YES #开启哈希连接 db2set DB2COMM=tcpip #使用TCP/IP db2set DB2_PARALLEL_IO=* #所有的都启动并行IO db2set DB2CODEPAGE=1208 #二进制代码采用那个数值 配置DB CFG中的SVCENAME 参数 db2 update dbm cfg using SVCENAME DB2_db2inst1 #设置端口

优秀的个人博客,低调大师

docker(15):以docker 方式启动 单机版 tidb

1,关于tidb tidb 其灵感来自于 Google 的 F1 和 Google spanner, TiDB 支持包括传统 RDBMS 和 NoSQL 的特性。 sql 完全支持mysql,同时人家还是一个分布式数据库。 什么分库分表都弱爆了,这个直接分,超级方便。而且还是开源的。 是国内的 技术大牛 黄东旭 的公司 pincap 开发的。 就是之前写 codis 那个人。 https://github.com/pingcap/tidb 很厉害的人,设计的很好的项目。 2,tidb安装&启动 docker pull pingcap/tidb #45.58 MB mkdir -p /data/tidb/data docker run --name tidb-server -d -v /data/tidb/data:/tmp/tidb -p 4000:4000 -p 10080:10080 pingcap/tidb:latest #设置数据文件,默认使用 goleveldb 存储。 启动成功默认端口 4000 ,也可以伪装成mysql,把端口修改成3306 。 # mysql -h 127.0.0.1 -P 4000 -u root -D test --prompt="tidb> " Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.1-TiDB-1.0 MySQL Community Server (GPL) Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. tidb> 登录成功,Server version: 5.7.1-TiDB-1.0 MySQL Community Server (GPL) tidb。 可以使用 10080 端口查看状态信息: # curl localhost:10080/status {"connections":1,"version":"5.7.1-TiDB-1.0","git_hash":"31bc1083fc9195181d187639efb847d19037d9de"} 感觉上应该是集群的时候使用的。 3,创建数据库&用户 创建数据库 demo 并创建用户 demo 赋值权限。 注意:这些sql 语句在 mysql & tidb 当中都key执行并成功分配权限&登录成功。 CREATE DATABASE demo CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'demo'@'%' IDENTIFIED BY 'demo'; GRANT ALL PRIVILEGES ON demo.* TO 'demo'@'%'; FLUSH PRIVILEGES; 使用golang进行数据库插入&查询数据: package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "database/sql" "time" "strconv" ) func main() { db, err := sql.Open("mysql", "demo:demo@tcp(127.0.0.1:4000)/demo") fmt.Println(db, err) // start := time.Now() loop := 10000 for i := 0; i < loop; i ++ { result, err := db.Exec( "INSERT INTO users(`name`, age) VALUES (?, ?)", "user"+strconv.Itoa(i), i, ) if i%(loop/10) == 0 { fmt.Println(result, err) } } end := time.Now() fmt.Println("测试插入时间:", end.Sub(start).Seconds()) } 4,总结 本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/70843679 未经博主允许不得转载。 博主地址是:http://blog.csdn.net/freewebsys tidb 是非常好的maridb的替代的产品。 可以完全的兼容

优秀的个人博客,低调大师

Hbase单机安装及使用hbase shell进行简单操作

一,配置环境变量 在etc/prifile中加入java环境变量及hbase环境变量: #set java environment JAVA_HOME=/usr/local/lhc/jdk1.8.0_111 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH #set hbase environment export HBASE_HOME=/app/hbase-1.2.4 export PATH=$PATH:$HBASE_HOME/bin 二,hbase-site.xml配置 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>hbase.rootdir</name> <value>file:///app/hbase-1.2.4/hbase-tmp</value> </property> </configuration> 三,使用hbase shell进行基本操作 HBase采用三维有序存储实现数据的有序存储,其三维指的是:rowkey(行主键),columnkey(columnFamily+qualifier),timestamp(时间戳)。HBase 的 Rowkey是数据行的唯一标识,必须通过它进行数据行访问,故在添加数据时,必须制定主键(Row Key)的值。 在添加数据时,HBase会自动为添加的数据添加一个时间戳,故在需要修改数据时,只需直接添加数据,HBase即会产生新的数据,而旧的数据依然会被保存,在进行查看操作时默认返回最新的数据版本,从而完成“改”操作。 [root@localhost bin]# hbase shell #进入shell输入 #创建student表 hbase(main):001:0> create 'student','Sname','Ssex','Sage','Sdept','course' 0 row(s) in 3.6780 seconds #查看student表描述 hbase(main):003:0> describe 'student' #存储一条数据 hbase(main):004:0> put 'student','Sname:','lhc' #删除数据 # 在HBase中用delete以及deleteall命令进行删除数据操作,它们的区别是:1、delete用于删除一个数据,是put 反向操作;2、deleteall操作用于删除一行数据。 hbase(main):008:0> delete 'student','95001','Ssex' hbase(main):011:0> deleteall 'student','95001' #查看数据 # 1、get命令,用于查看表的某一行数据;2、scan命令用于查看某个表的全部数据 get 'student','95001' scan 'student'

优秀的个人博客,低调大师

从单机到星群:微服务架构的本质与思考

### 一、为什么要拆分 几年前,我参与过一个典型的“大泥球”项目。一个WAR包,几十万行代码,编译需要五分钟,启动需要三分钟。最痛苦的是,每次上线都像拆弹——你改了订单模块,结果优惠券模块出了问题。没有人敢说“我完全理解这个系统”。 这不是代码质量的问题,而是认知负荷的问题。单个开发者的工作记忆是有限的,当系统复杂度超过这个阈值,我们就需要一种结构化的方式来降低认知成本。 微服务就是这样一个答案:把大的问题拆成小的问题,把复杂系统变成一组简单系统的组合。 ### 二、什么是微服务 简单来说,微服务是一种将单一应用程序划分为一组小型服务的方法。每个服务运行在自己的进程中,服务之间通过轻量级机制(通常是HTTP或消息队列)通信。 但比定义更重要的是理解它的设计哲学: - **围绕业务能力组织**:不是按技术分层(Controller-Service-DAO),而是按业务边界划分。订单、用户、商品是独立的服务。 - **独立部署**:每个服务可以独立发布、回滚、扩容,不依赖其他服务。 - **去中心化治理**:每个团队可以自由选择技术栈,只要遵循统一的通信协议。 你可以把单体应用想象成一个庞大的交响乐团,所有乐手必须严格同步;而微服务更像是一组爵士乐队,每个乐队有自己的节奏,通过标准化的乐谱(API)协作。 ### 三、带来什么 微服务的价值不在于技术本身,而在于它解锁的组织能力。 **首先是交付速度。** 当一个团队只需要维护几百行代码的订单服务时,从修改代码到部署上线可能只需要十分钟。高频部署成为可能,而不是每月一次的“发布日恐怖事件”。 **其次是故障隔离。** 用户服务挂了,订单服务可以降级处理,不影响整个系统。系统边界变成了故障边界。 **再次是技术多样性。** 推荐服务可以用Python写算法,订单服务用Java保证事务一致性,前端聚合层用Node.js。用合适的工具解决合适的问题。 **最后是扩展性。** 哪个服务压力大就扩哪个,不需要整体水平复制。 ### 四、代价与陷阱 天下没有免费的架构。微服务的成本往往被低估。 **第一个陷阱是分布式复杂性。** 在单体中,A调用B就是一次本地方法调用。在微服务中,变成了网络调用。网络不可靠,你需要考虑超时、重试、熔断、降级。更不用说分布式事务和分布式链路追踪了。 **第二个陷阱是运维负担。** 一个应用变成二十个服务,意味着二十个部署流水线、二十个日志流、二十个监控面板。没有自动化的CI/CD和容器编排,这条路走不远。 **第三个陷阱是数据一致性。** 订单服务和库存服务各自有自己的数据库,如何保证下单后库存准确扣减?最终一致性方案(如本地消息表、事务消息)比强一致性复杂得多。 **第四个陷阱是服务间调用地狱。** 一个前端请求可能触发多次服务间调用,延迟叠加。如果没有良好的缓存设计和异步处理,性能可能还不如单体。 > 业界有个经验法则:如果你没有足够的人手来维护多个独立团队,微服务可能不是最佳选择。对中小型团队来说,模块化单体往往是更务实的选择。 ### 五、核心实践 如果决定走微服务之路,有几个关键实践值得重视: **API优先。** 服务的边界由API定义。先设计好接口契约(如OpenAPI规范),再实现内部逻辑。这迫使团队在写代码之前就想清楚职责划分。 **去中心化的数据管理。** 每个服务拥有自己的数据库,其他服务只能通过API访问数据。这听起来效率低,但它保证了服务的松耦合。 **基础设施自动化。** 容器化(Docker)+ 编排(Kubernetes)几乎是标配。服务注册与发现、配置管理、日志聚合、监控告警,这些都需要从项目第一天就考虑。 **优雅的失败处理。** 网络会断,服务会挂。设计时要假设所有依赖都不可靠。实现熔断器模式、重试机制、超时控制,并提供有意义的错误响应。 下面是一个极简的熔断器示意(仅用于理解思想): ``` class CircuitBreaker: def __init__(self, failure_threshold=5): self.failure_count = 0 self.threshold = failure_threshold self.state = "closed" # closed / open / half-open def call(self, func): if self.state == "open": return "fallback response" # 快速失败 try: result = func() self.failure_count = 0 self.state = "closed" return result except Exception: self.failure_count += 1 if self.failure_count >= self.threshold: self.state = "open" # 熔断打开 return "fallback response" ``` 这个模式的核心价值在于:当依赖服务不可用时,我们主动失败而不是等待超时,从而避免资源耗尽。 ### 六、模式之外 写到这里,我想起一位架构师的比喻:微服务不是银弹,它更像是一把手术刀——在专业人士手中可以精准切割,在普通人手里可能造成更大的伤害。 架构决策本质上是权衡。选择微服务,意味着你选择用分布式复杂性换取局部独立性的提升。这个交易是否划算,取决于你的团队规模、业务领域和组织结构。 康威定律告诉我们:系统架构会映射组织沟通结构。如果你的团队是按业务线组织的,微服务会很自然;如果你的团队是按技术层级组织的(前端组、后端组、DBA组),微服务反而会制造摩擦。 所以,微服务不只是技术转型,更是组织转型。 ### 七、写在最后 从大型机到客户端-服务器,从SOA到微服务,软件架构的发展史就是一部对抗复杂度的历史。微服务是我们目前能找到的、在规模化和可控性之间较好的平衡点。 但它不会是终点。云原生、Serverless、FaaS等新范式正在兴起,未来的系统可能会更加“无服务化”——开发者甚至不需要关心服务实例的存在,只需要关心业务逻辑本身。 不管技术如何演变,有一点不会变:好的架构是让未来的变化变得容易,而不是困难。 微服务如是,其他亦然。

优秀的个人博客,低调大师

Apache Spark 1.6 Hadoop 2.6 Mac下单机安装配置

一、 下载资料 1. JDK 1.6 + 2. Scala 2.10.4 3. Hadoop 2.6.4 4. Spark 1.6 二、预先安装 1. 安装JDK 2.安装Scala 2.10.4 解压安装包即可 3. 配置sshd ssh-keygen-tdsa-P''-f~/.ssh/id_dsa cat~/.ssh/id_dsa.pub>>~/.ssh/authorized_keys mac 启动sshd sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist 查看启动 sudo launchctl list | grep ssh 输出-0com.openssh.sshd 表示启动成功 停止sshd服务 sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist 三、安装Hadoop 1. 创建Hadoop文件系统目录 mkdir -pv hadoop/workspace cd hadoop/workspace mkdir tmp mkdir -pv hdfs/data mkdir -pv hdfs/name 添加hadoop目录环境变量 vi ~/.bashrc HADOOP_HOME=/Users/ysisl/app/hadoop/hadoop-2.6.4 配置hadoop,都在$HADOOP_HOME/etc/hadoop 下 1. core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> <description>HDFS URI</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/Users/ysisl/app/hadoop/workspace/tmp</value> <description>namenode temp dir</description> </property> </configuration> 2.hdfs-site.xml <configuration> <property> <name>dfs.name.dir</name> <value>/Users/ysisl/app/hadoop/workspace/hdfs/name</value> <description>namenode上存储hdfs名字空间元数据</description> </property> <property> <name>dfs.data.dir</name> <value>/Users/ysisl/app/hadoop/workspace/hdfs/data</value> <description>datanode上数据块的物理存储位置</description> </property> <property> <name>dfs.replication</name> <value>1</value> <description>副本个数,配置默认是3,应小于datanode机器数量</description> </property> </configuration> 3. copy mapred-site.xml.template to mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 4. yarn-site.xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>localhost:8099</value> </property> </configuration> 5. 格式化HDFS文件系统 $HADOOP_HOME/bin/hdfs namenode -format 6. 进入sbin/ 执行 start-all.sh 7. 执行jps 查看是否正常启动 21472 30256 Jps 29793 DataNode 29970 SecondaryNameNode 29638 NameNode 30070 ResourceManager 30231 NodeManager 8. 打开http://localhost:50070/explorer.html 网页查看hadoop目录结构,说明安装成功 四、安装Spark 1. 解压spark压缩包 tar xvzf spark.1.6.tar.gz 2. 加入环境变量 vi ~/.bashrc SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4 SPARK_HOME=/Users/ysisl/app/spark/spark-1.6.1-bin-hadoop2.6 2. 设置配置文件 cd spar-1.6.1-bin-hadoop2.6/conf cp spark-env.sh.template spark-env.sh vi spar-env.sh 添加如下内容 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home export SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4 export HADOOP_CONF_DIR=/Users/ysisl/app/hadoop/hadoop-2.6.4/etc/hadoop export SPARK_MASTER_IP=localhost export SPARK_WORKER_CORES=2 export SPARK_WORKER_MEMORY=2g cp slaves.template slaves 默认slaves现在就主机一台 3. 启动 sbin/start-all.sh jps 查看到多出一个Master,worker进程 21472 29793 DataNode 29970 SecondaryNameNode 30275 Master 30468 SparkSubmit 29638 NameNode 30070 ResourceManager 30231 NodeManager 30407 Worker 30586 Jps 4. 配置scala 、spark 、 hadoop 环境变量加入PATH ,方便执行 vi ~/.bashrc export HADOOP_HOME=/Users/ysisl/app/hadoop/hadoop-2.6.4 export SCALA_HOME=/Users/ysisl/app/spark/scala-2.10.4 export SPARK_HOME=/Users/ysisl/app/spark/spark-1.6.1-bin-hadoop2.6 export PATH="${HADOOP_HOME}/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:$PATH" 五. 测试运行 1. 准备一个csv文件,路径 /Users/ysisl/app/hadoop/test.csv 2. 查看DFS文件系统结构, 执行 hadoop fs -lsr / 3. 新建目录 , hadoop fs -mkdir /test 4. 上传文件到目录, hadoop fs -put /Users/ysisl/app/hadoop/test.csv /test/ 5.hadoop fs -lsr / 查看已创建的目录文件 6. 执行 spark-shell scala >valfile=sc.textFile("hdfs:/test/test.csv") scala >valcount=file.flatMap(line=>line.split("")).map(word=>(word,1)).reduceByKey(_+_) scala >count.collect 7. 查看执行状态 a. localhost:8080 ,查看spark 集群运行情况。 此端口一般与其他端口冲突 在spark-env.sh 中加入export SPARK_MASTER_WEBUI_PORT=98080 来指定 b.http://localhost:4040/jobs/,查看 spark task job运行情况 c.http://localhost:50070/hadoop集群运行情况

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册